aboutsummaryrefslogtreecommitdiff
path: root/test cases/common/85 plusassign
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2020-11-02 19:23:18 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2020-11-03 21:05:20 +0200
commit9d1e747d17c75a288d0b58a8ac973dab1712afbf (patch)
tree15dedfab78da4ad20ce272e65d7a7876ae717181 /test cases/common/85 plusassign
parentff50f724bbf49739abbee9cbb4c8e6200849738f (diff)
downloadmeson-9d1e747d17c75a288d0b58a8ac973dab1712afbf.zip
meson-9d1e747d17c75a288d0b58a8ac973dab1712afbf.tar.gz
meson-9d1e747d17c75a288d0b58a8ac973dab1712afbf.tar.bz2
Condense test directory names again.
Diffstat (limited to 'test cases/common/85 plusassign')
-rw-r--r--test cases/common/85 plusassign/meson.build70
1 files changed, 70 insertions, 0 deletions
diff --git a/test cases/common/85 plusassign/meson.build b/test cases/common/85 plusassign/meson.build
new file mode 100644
index 0000000..ac477e7
--- /dev/null
+++ b/test cases/common/85 plusassign/meson.build
@@ -0,0 +1,70 @@
+project('plusassign', 'c')
+
+x = []
+
+x += 'a'
+
+if x.length() != 1
+ error('Incorrect append')
+endif
+
+if x[0] != 'a'
+ error('Incorrect append 2.')
+endif
+
+y = x
+
+x += 'b'
+
+if y.length() != 1
+ error('Immutability broken.')
+endif
+
+if y[0] != 'a'
+ error('Immutability broken 2.')
+endif
+
+if x.length() != 2
+ error('Incorrect append 3')
+endif
+
+if x[0] != 'a'
+ error('Incorrect append 4.')
+endif
+
+if x[1] != 'b'
+ error('Incorrect append 5.')
+endif
+
+# Now with evil added: append yourself.
+
+x += x
+
+if x.length() != 4
+ error('Incorrect selfappend.')
+endif
+
+# += on strings
+
+bra = 'bra'
+foo = 'A'
+foo += bra
+foo += 'cada'
+foo += bra
+assert (foo == 'Abracadabra', 'string += failure [@0@]'.format(foo))
+assert (bra == 'bra', 'string += modified right argument!')
+foo += ' ' + foo
+assert (foo == 'Abracadabra Abracadabra', 'string += failure [@0@]'.format(foo))
+
+# += on ints
+
+foo = 5
+foo += 6
+assert (foo == 11, 'int += failure [@0@]'.format(foo))
+bar = 99
+foo += bar
+assert (foo == 110, 'int += failure [@0@]'.format(foo))
+assert (bar == 99, 'int += modified right argument"')
+bar += foo + 1
+assert (bar == 210, 'int += failure [@0@]'.format(bar))
+assert (foo == 110, 'int += modified right argument"')