]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
tests: Add some Genie tests to increase coverage feac71ef0fd6083bebc2a4818834a4351a7e4629
authorAlistair Thomas <astavale@yahoo.co.uk>
Mon, 25 Feb 2019 21:00:51 +0000 (21:00 +0000)
committerRico Tzschichholz <ricotz@ubuntu.com>
Tue, 26 Feb 2019 06:52:55 +0000 (07:52 +0100)
62 files changed:
tests/Makefile.am
tests/genie/class.gs [new file with mode: 0644]
tests/genie/control-flow-if-do.gs [new file with mode: 0644]
tests/genie/control-flow-if-else-if.gs [new file with mode: 0644]
tests/genie/control-flow-if-else.gs [new file with mode: 0644]
tests/genie/control-flow-if-greater-than.gs [new file with mode: 0644]
tests/genie/control-flow-if-identity.gs [new file with mode: 0644]
tests/genie/control-flow-if-less-than.gs [new file with mode: 0644]
tests/genie/control-flow-if.gs [new file with mode: 0644]
tests/genie/enum-with-keyword-values.gs [new file with mode: 0644]
tests/genie/enum.gs [new file with mode: 0644]
tests/genie/function-returns-closure.gs [new file with mode: 0644]
tests/genie/function-with-argument.gs [new file with mode: 0644]
tests/genie/function-with-return-value.gs [new file with mode: 0644]
tests/genie/function.gs [new file with mode: 0644]
tests/genie/indentation-with-spaces.gs [new file with mode: 0644]
tests/genie/init.gs [new file with mode: 0644]
tests/genie/literal-boolean-assignment.gs [new file with mode: 0644]
tests/genie/literal-boolean.gs [new file with mode: 0644]
tests/genie/literal-character.gs [new file with mode: 0644]
tests/genie/literal-hexadecimal.gs [new file with mode: 0644]
tests/genie/literal-integer-long-long-suffix.gs [new file with mode: 0644]
tests/genie/literal-integer.gs [new file with mode: 0644]
tests/genie/literal-null.gs [new file with mode: 0644]
tests/genie/literal-octal.gs [new file with mode: 0644]
tests/genie/literal-real.gs [new file with mode: 0644]
tests/genie/literal-regex.gs [new file with mode: 0644]
tests/genie/literal-template-string.gs [new file with mode: 0644]
tests/genie/literal-verbatim-string.gs [new file with mode: 0644]
tests/genie/operator-addition.gs [new file with mode: 0644]
tests/genie/operator-assignment-combined.gs [new file with mode: 0644]
tests/genie/operator-assignment.gs [new file with mode: 0644]
tests/genie/operator-bitwise-and.gs [new file with mode: 0644]
tests/genie/operator-bitwise-left-shift.gs [new file with mode: 0644]
tests/genie/operator-bitwise-not.gs [new file with mode: 0644]
tests/genie/operator-bitwise-or.gs [new file with mode: 0644]
tests/genie/operator-bitwise-right-shift.gs [new file with mode: 0644]
tests/genie/operator-bitwise-xor.gs [new file with mode: 0644]
tests/genie/operator-division.gs [new file with mode: 0644]
tests/genie/operator-equal.gs [new file with mode: 0644]
tests/genie/operator-greater-than-equal.gs [new file with mode: 0644]
tests/genie/operator-less-than-equal.gs [new file with mode: 0644]
tests/genie/operator-less-than.gs [new file with mode: 0644]
tests/genie/operator-logical-and.gs [new file with mode: 0644]
tests/genie/operator-logical-not.gs [new file with mode: 0644]
tests/genie/operator-logical-or.gs [new file with mode: 0644]
tests/genie/operator-modulo.gs [new file with mode: 0644]
tests/genie/operator-multiply.gs [new file with mode: 0644]
tests/genie/operator-not-equal.gs [new file with mode: 0644]
tests/genie/operator-post-decrement.gs [new file with mode: 0644]
tests/genie/operator-post-increment.gs [new file with mode: 0644]
tests/genie/operator-pre-decrement.gs [new file with mode: 0644]
tests/genie/operator-pre-increment.gs [new file with mode: 0644]
tests/genie/operator-subtraction.gs [new file with mode: 0644]
tests/genie/operator-ternary.gs [new file with mode: 0644]
tests/genie/operators-greater-than.gs [new file with mode: 0644]
tests/genie/preparser-and-expression.gs [new file with mode: 0644]
tests/genie/preparser-elif.gs [new file with mode: 0644]
tests/genie/preparser-equality-expression.gs [new file with mode: 0644]
tests/genie/preparser-not.gs [new file with mode: 0644]
tests/genie/preparser-or-expression.gs [new file with mode: 0644]
tests/genie/preparser.gs [new file with mode: 0644]

index 62b56163c690816df84d233e3d56427566350efe..1a5adc7f7d44f12e2a4e7bce41b255545c519f2e 100644 (file)
@@ -716,6 +716,70 @@ LINUX_TESTS = \
        posix/file-commandpipe.vala \
        $(NULL)
 
+GENIE_TESTS = \
+       genie/class.gs \
+       genie/control-flow-if-do.gs \
+       genie/control-flow-if-else.gs \
+       genie/control-flow-if-else-if.gs \
+       genie/control-flow-if-greater-than.gs \
+       genie/control-flow-if.gs \
+       genie/control-flow-if-identity.gs \
+       genie/control-flow-if-less-than.gs \
+       genie/enum.gs \
+       genie/enum-with-keyword-values.gs \
+       genie/function.gs \
+       genie/function-returns-closure.gs \
+       genie/function-with-argument.gs \
+       genie/function-with-return-value.gs \
+       genie/indentation-with-spaces.gs \
+       genie/init.gs \
+       genie/literal-boolean-assignment.gs \
+       genie/literal-boolean.gs \
+       genie/literal-character.gs \
+       genie/literal-hexadecimal.gs \
+       genie/literal-integer.gs \
+       genie/literal-integer-long-long-suffix.gs \
+       genie/literal-null.gs \
+       genie/literal-octal.gs \
+       genie/literal-real.gs \
+       genie/literal-regex.gs \
+       genie/literal-template-string.gs \
+       genie/literal-verbatim-string.gs \
+       genie/operator-addition.gs \
+       genie/operator-assignment-combined.gs \
+       genie/operator-assignment.gs \
+       genie/operator-bitwise-and.gs \
+       genie/operator-bitwise-left-shift.gs \
+       genie/operator-bitwise-not.gs \
+       genie/operator-bitwise-or.gs \
+       genie/operator-bitwise-right-shift.gs \
+       genie/operator-bitwise-xor.gs \
+       genie/operator-division.gs \
+       genie/operator-equal.gs \
+       genie/operator-greater-than-equal.gs \
+       genie/operator-less-than-equal.gs \
+       genie/operator-less-than.gs \
+       genie/operator-logical-and.gs \
+       genie/operator-logical-not.gs \
+       genie/operator-logical-or.gs \
+       genie/operator-modulo.gs \
+       genie/operator-multiply.gs \
+       genie/operator-not-equal.gs \
+       genie/operator-post-decrement.gs \
+       genie/operator-post-increment.gs \
+       genie/operator-pre-decrement.gs \
+       genie/operator-pre-increment.gs \
+       genie/operators-greater-than.gs \
+       genie/operator-subtraction.gs \
+       genie/operator-ternary.gs \
+       genie/preparser-and-expression.gs \
+       genie/preparser-elif.gs \
+       genie/preparser-equality-expression.gs \
+       genie/preparser.gs \
+       genie/preparser-not.gs \
+       genie/preparser-or-expression.gs \
+       $(NULL)
+
 check-TESTS: $(TESTS) $(NON_NULL_TESTS)
        @EXEEXT=$(EXEEXT) CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' TEST_CFLAGS='$(TEST_CFLAGS)' CC='$(CC)' \
                $(srcdir)/testrunner.sh $(TESTS)
@@ -725,11 +789,14 @@ if HAVE_LINUX
 endif
        @EXEEXT=$(EXEEXT) CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' TEST_CFLAGS='$(TEST_CFLAGS)' CC='$(CC)' \
                VALAFLAGS="--enable-experimental-non-null" $(srcdir)/testrunner.sh $(NON_NULL_TESTS)
+       @EXEEXT=$(EXEEXT) CFLAGS='$(CFLAGS)' CPPFLAGS='$(CPPFLAGS)' LDFLAGS='$(LDFLAGS)' TEST_CFLAGS='$(TEST_CFLAGS)' CC='$(CC)' \
+               $(srcdir)/testrunner.sh $(GENIE_TESTS)
 
 EXTRA_DIST = \
        testrunner.sh \
        $(TESTS) \
        $(NON_NULL_TESTS) \
        $(LINUX_TESTS) \
+       $(GENIE_TESTS) \
        $(NULL)
 
diff --git a/tests/genie/class.gs b/tests/genie/class.gs
new file mode 100644 (file)
index 0000000..954dc87
--- /dev/null
@@ -0,0 +1,6 @@
+init
+       var a = new Test()
+       assert( a.empty == "" )
+
+class Test
+       empty:string = ""
diff --git a/tests/genie/control-flow-if-do.gs b/tests/genie/control-flow-if-do.gs
new file mode 100644 (file)
index 0000000..cd365fe
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       if true do assert( true ); return
+       assert_not_reached()
diff --git a/tests/genie/control-flow-if-else-if.gs b/tests/genie/control-flow-if-else-if.gs
new file mode 100644 (file)
index 0000000..9bf776b
--- /dev/null
@@ -0,0 +1,7 @@
+init
+       if false
+               assert_not_reached()
+       else if true
+               assert( true )
+               return
+       assert_not_reached()
diff --git a/tests/genie/control-flow-if-else.gs b/tests/genie/control-flow-if-else.gs
new file mode 100644 (file)
index 0000000..fbe2de3
--- /dev/null
@@ -0,0 +1,7 @@
+init
+       if false
+               assert_not_reached()
+       else
+               assert( true )
+               return
+       assert_not_reached()
diff --git a/tests/genie/control-flow-if-greater-than.gs b/tests/genie/control-flow-if-greater-than.gs
new file mode 100644 (file)
index 0000000..2e77b03
--- /dev/null
@@ -0,0 +1,6 @@
+init
+       a:int = int.MAX
+       if a > 0
+               assert( true )
+               return
+       assert_not_reached()
diff --git a/tests/genie/control-flow-if-identity.gs b/tests/genie/control-flow-if-identity.gs
new file mode 100644 (file)
index 0000000..f87563b
--- /dev/null
@@ -0,0 +1,6 @@
+init
+       a:string = "test"
+       if a == "test"
+               assert( a == "test" )
+               return
+       assert_not_reached()
diff --git a/tests/genie/control-flow-if-less-than.gs b/tests/genie/control-flow-if-less-than.gs
new file mode 100644 (file)
index 0000000..99c661a
--- /dev/null
@@ -0,0 +1,6 @@
+init
+       a:int = -1
+       if a < 0
+               assert( true )
+               return
+       assert_not_reached()
diff --git a/tests/genie/control-flow-if.gs b/tests/genie/control-flow-if.gs
new file mode 100644 (file)
index 0000000..c9da072
--- /dev/null
@@ -0,0 +1,5 @@
+init
+       if true
+               assert( true )
+               return
+       assert_not_reached()
diff --git a/tests/genie/enum-with-keyword-values.gs b/tests/genie/enum-with-keyword-values.gs
new file mode 100644 (file)
index 0000000..dd39f43
--- /dev/null
@@ -0,0 +1,16 @@
+init
+       var a = Test.ONE
+       var b = Test.ABSTRACT
+       c:Test = Test.DEF
+       d:Test = Test.FOUR
+
+       assert( a == Test.ONE )
+       assert( b == Test.ABSTRACT )
+       assert( c == Test.DEF )
+       assert( d == Test.FOUR )
+
+enum Test
+       ONE
+       ABSTRACT
+       DEF
+       FOUR
diff --git a/tests/genie/enum.gs b/tests/genie/enum.gs
new file mode 100644 (file)
index 0000000..6f453a3
--- /dev/null
@@ -0,0 +1,6 @@
+init
+       var a = Test.ONE
+       assert( a == Test.ONE )
+
+enum Test
+       ONE
diff --git a/tests/genie/function-returns-closure.gs b/tests/genie/function-returns-closure.gs
new file mode 100644 (file)
index 0000000..27742c9
--- /dev/null
@@ -0,0 +1,8 @@
+delegate TestFunction():bool
+
+init
+       assert( test()() == true )
+
+def test():TestFunction
+       return def()
+               return true
diff --git a/tests/genie/function-with-argument.gs b/tests/genie/function-with-argument.gs
new file mode 100644 (file)
index 0000000..f9264a8
--- /dev/null
@@ -0,0 +1,5 @@
+init
+       test( 2 )
+
+def test( a:int )
+       assert( a == 2 )
diff --git a/tests/genie/function-with-return-value.gs b/tests/genie/function-with-return-value.gs
new file mode 100644 (file)
index 0000000..54a515c
--- /dev/null
@@ -0,0 +1,5 @@
+init
+       assert( test() == "passed" )
+
+def test():string
+       return "passed"
diff --git a/tests/genie/function.gs b/tests/genie/function.gs
new file mode 100644 (file)
index 0000000..c78c71d
--- /dev/null
@@ -0,0 +1,8 @@
+global:int = 0
+
+init
+       test()
+       assert( global == 1 )
+
+def test()
+       global += 1
diff --git a/tests/genie/indentation-with-spaces.gs b/tests/genie/indentation-with-spaces.gs
new file mode 100644 (file)
index 0000000..e3c7652
--- /dev/null
@@ -0,0 +1,3 @@
+[indent = 2]
+init
+  assert( true )
diff --git a/tests/genie/init.gs b/tests/genie/init.gs
new file mode 100644 (file)
index 0000000..cd9eb2a
--- /dev/null
@@ -0,0 +1,2 @@
+init
+       assert( true )
diff --git a/tests/genie/literal-boolean-assignment.gs b/tests/genie/literal-boolean-assignment.gs
new file mode 100644 (file)
index 0000000..8c89380
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       a:bool = true
+       assert( a == true )
diff --git a/tests/genie/literal-boolean.gs b/tests/genie/literal-boolean.gs
new file mode 100644 (file)
index 0000000..3935452
--- /dev/null
@@ -0,0 +1,5 @@
+init
+       if true
+               assert( true )
+       if !false
+               assert( !false )
diff --git a/tests/genie/literal-character.gs b/tests/genie/literal-character.gs
new file mode 100644 (file)
index 0000000..f311269
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       a:char = 'a'
+       assert( a == 'a' )
diff --git a/tests/genie/literal-hexadecimal.gs b/tests/genie/literal-hexadecimal.gs
new file mode 100644 (file)
index 0000000..1ac1498
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       var a = 0x10
+       assert( a == 16 )
diff --git a/tests/genie/literal-integer-long-long-suffix.gs b/tests/genie/literal-integer-long-long-suffix.gs
new file mode 100644 (file)
index 0000000..69b580e
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       a:int64 = 1234567890123456789LL
+       assert( a == 1234567890123456789 )
diff --git a/tests/genie/literal-integer.gs b/tests/genie/literal-integer.gs
new file mode 100644 (file)
index 0000000..eb1a20d
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       a:int = 101
+       assert( a == 101 )
diff --git a/tests/genie/literal-null.gs b/tests/genie/literal-null.gs
new file mode 100644 (file)
index 0000000..dc3f4b4
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       test:string? = null
+       assert( test == null )
diff --git a/tests/genie/literal-octal.gs b/tests/genie/literal-octal.gs
new file mode 100644 (file)
index 0000000..14068ca
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       var a = 022
+       assert( a == 18 )
diff --git a/tests/genie/literal-real.gs b/tests/genie/literal-real.gs
new file mode 100644 (file)
index 0000000..762431d
--- /dev/null
@@ -0,0 +1,4 @@
+init
+       a:double = 1.1
+       b:double = 1.2
+       assert( a + b > 2 )
diff --git a/tests/genie/literal-regex.gs b/tests/genie/literal-regex.gs
new file mode 100644 (file)
index 0000000..be99028
--- /dev/null
@@ -0,0 +1,4 @@
+init
+       var a = /^test/
+       var b = "test string"
+       assert( a.match( b ))
diff --git a/tests/genie/literal-template-string.gs b/tests/genie/literal-template-string.gs
new file mode 100644 (file)
index 0000000..87e75ae
--- /dev/null
@@ -0,0 +1,5 @@
+init
+       var a = "test"
+       var b = 100
+       var c = @"$( a )$b"
+       assert( c == "test100" )
diff --git a/tests/genie/literal-verbatim-string.gs b/tests/genie/literal-verbatim-string.gs
new file mode 100644 (file)
index 0000000..56ac976
--- /dev/null
@@ -0,0 +1,5 @@
+init
+       var a = """multi
+line
+string"""
+       assert( a == "multi\nline\nstring" )
diff --git a/tests/genie/operator-addition.gs b/tests/genie/operator-addition.gs
new file mode 100644 (file)
index 0000000..4faaee3
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       a:int = 1 + 1
+       assert( a == 2 )
diff --git a/tests/genie/operator-assignment-combined.gs b/tests/genie/operator-assignment-combined.gs
new file mode 100644 (file)
index 0000000..f031b66
--- /dev/null
@@ -0,0 +1,38 @@
+init
+       a:int = 2
+
+       a += 1
+       assert( a == 3 )
+
+       a -= 1
+       assert( a == 2 )
+
+       a /= 2
+       assert( a == 1 )
+
+       a *= 2
+       assert( a == 2 )
+
+       a %= 2
+       assert( a == 0 )
+
+       a++
+       assert( a == 1 )
+
+       a--
+       assert( a == 0 )
+
+       a |= 1
+       assert( a == 1 )
+
+       a &= 3
+       assert( a == 1 )
+
+       a ^= 3
+       assert( a == 2 )
+
+       a >>= 1
+       assert( a == 1 )
+
+       a <<= 1
+       assert( a == 2 )
diff --git a/tests/genie/operator-assignment.gs b/tests/genie/operator-assignment.gs
new file mode 100644 (file)
index 0000000..c56fe1f
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       a:int = 1
+       assert( a == 1 )
diff --git a/tests/genie/operator-bitwise-and.gs b/tests/genie/operator-bitwise-and.gs
new file mode 100644 (file)
index 0000000..c55684f
--- /dev/null
@@ -0,0 +1,4 @@
+init
+       a:int = 5
+       var b = a & 7
+       assert( b == 5 )
diff --git a/tests/genie/operator-bitwise-left-shift.gs b/tests/genie/operator-bitwise-left-shift.gs
new file mode 100644 (file)
index 0000000..718fb14
--- /dev/null
@@ -0,0 +1,4 @@
+init
+       a:int = 5
+       var b = a << 1
+       assert( b == 10 )
diff --git a/tests/genie/operator-bitwise-not.gs b/tests/genie/operator-bitwise-not.gs
new file mode 100644 (file)
index 0000000..0ccba04
--- /dev/null
@@ -0,0 +1,4 @@
+init
+       a:int = 5
+       var b = ~a
+       assert( b == -6 )
diff --git a/tests/genie/operator-bitwise-or.gs b/tests/genie/operator-bitwise-or.gs
new file mode 100644 (file)
index 0000000..1c145da
--- /dev/null
@@ -0,0 +1,4 @@
+init
+       a:int = 5
+       var b = a | 3
+       assert( b == 7 )
diff --git a/tests/genie/operator-bitwise-right-shift.gs b/tests/genie/operator-bitwise-right-shift.gs
new file mode 100644 (file)
index 0000000..c73f3d7
--- /dev/null
@@ -0,0 +1,4 @@
+init
+       a:int = 5
+       var b = a >> 1
+       assert( b == 2 )
diff --git a/tests/genie/operator-bitwise-xor.gs b/tests/genie/operator-bitwise-xor.gs
new file mode 100644 (file)
index 0000000..9eaab21
--- /dev/null
@@ -0,0 +1,4 @@
+init
+       a:int = 5
+       var b = a ^ 7
+       assert( b == 2 )
diff --git a/tests/genie/operator-division.gs b/tests/genie/operator-division.gs
new file mode 100644 (file)
index 0000000..d9ff080
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       a:int = 100 / 10
+       assert( a == 10 )
diff --git a/tests/genie/operator-equal.gs b/tests/genie/operator-equal.gs
new file mode 100644 (file)
index 0000000..ce27abc
--- /dev/null
@@ -0,0 +1,6 @@
+init
+       var a = "test"
+       if a == "test"
+               assert( a == "test" )
+       else
+               assert_not_reached()
diff --git a/tests/genie/operator-greater-than-equal.gs b/tests/genie/operator-greater-than-equal.gs
new file mode 100644 (file)
index 0000000..3a3e39f
--- /dev/null
@@ -0,0 +1,6 @@
+init
+       var a = 10
+       if a >= 10
+               assert( a >= 10 )
+       else
+               assert_not_reached()
diff --git a/tests/genie/operator-less-than-equal.gs b/tests/genie/operator-less-than-equal.gs
new file mode 100644 (file)
index 0000000..63b1e86
--- /dev/null
@@ -0,0 +1,6 @@
+init
+       var a = 10
+       if a <= 10
+               assert( a <= 10 )
+       else
+               assert_not_reached()
diff --git a/tests/genie/operator-less-than.gs b/tests/genie/operator-less-than.gs
new file mode 100644 (file)
index 0000000..7b51113
--- /dev/null
@@ -0,0 +1,6 @@
+init
+       var a = 10
+       if a < 11
+               assert( a < 11 )
+       else
+               assert_not_reached()
diff --git a/tests/genie/operator-logical-and.gs b/tests/genie/operator-logical-and.gs
new file mode 100644 (file)
index 0000000..23476ac
--- /dev/null
@@ -0,0 +1,5 @@
+init
+       a:bool = true
+       b:bool = true
+       assert( a and b )
+       assert( a && b )
diff --git a/tests/genie/operator-logical-not.gs b/tests/genie/operator-logical-not.gs
new file mode 100644 (file)
index 0000000..4c58b6a
--- /dev/null
@@ -0,0 +1,6 @@
+init
+       a:bool = false
+       if !a
+               assert( !a )
+       else
+               assert_not_reached()
diff --git a/tests/genie/operator-logical-or.gs b/tests/genie/operator-logical-or.gs
new file mode 100644 (file)
index 0000000..3827169
--- /dev/null
@@ -0,0 +1,5 @@
+init
+       a:bool = false
+       b:bool = true
+       assert( a or b )
+       assert( a || b )
diff --git a/tests/genie/operator-modulo.gs b/tests/genie/operator-modulo.gs
new file mode 100644 (file)
index 0000000..e96f6cd
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       a:int = 11 % 10
+       assert( a == 1 )
diff --git a/tests/genie/operator-multiply.gs b/tests/genie/operator-multiply.gs
new file mode 100644 (file)
index 0000000..40353e3
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       a:int = 1 * 2
+       assert( a == 2 )
diff --git a/tests/genie/operator-not-equal.gs b/tests/genie/operator-not-equal.gs
new file mode 100644 (file)
index 0000000..a7fa160
--- /dev/null
@@ -0,0 +1,6 @@
+init
+       var a = "not"
+       if a != "test"
+               assert( a != "test" )
+       else
+               assert_not_reached()
diff --git a/tests/genie/operator-post-decrement.gs b/tests/genie/operator-post-decrement.gs
new file mode 100644 (file)
index 0000000..c11b1f8
--- /dev/null
@@ -0,0 +1,5 @@
+init
+       a:int = 1
+       var b = a--
+       assert( a == 0 )
+       assert( b == 1 )
diff --git a/tests/genie/operator-post-increment.gs b/tests/genie/operator-post-increment.gs
new file mode 100644 (file)
index 0000000..f13e61b
--- /dev/null
@@ -0,0 +1,5 @@
+init
+       a:int = 1
+       var b = a++
+       assert( a == 2 )
+       assert( b == 1 )
diff --git a/tests/genie/operator-pre-decrement.gs b/tests/genie/operator-pre-decrement.gs
new file mode 100644 (file)
index 0000000..bf46485
--- /dev/null
@@ -0,0 +1,5 @@
+init
+       a:int = 1
+       var b = --a
+       assert( a == 0 )
+       assert( b == 0 )
diff --git a/tests/genie/operator-pre-increment.gs b/tests/genie/operator-pre-increment.gs
new file mode 100644 (file)
index 0000000..b74a7a2
--- /dev/null
@@ -0,0 +1,5 @@
+init
+       a:int = 1
+       var b = ++a
+       assert( a == 2 )
+       assert( b == 2 )
diff --git a/tests/genie/operator-subtraction.gs b/tests/genie/operator-subtraction.gs
new file mode 100644 (file)
index 0000000..aa5beed
--- /dev/null
@@ -0,0 +1,3 @@
+init
+       a:int = 2 - 1
+       assert( a == 1 )
diff --git a/tests/genie/operator-ternary.gs b/tests/genie/operator-ternary.gs
new file mode 100644 (file)
index 0000000..f7d89e5
--- /dev/null
@@ -0,0 +1,4 @@
+init
+       a:bool = false
+       b:string = a ? "true" : "false"
+       assert( b == "false")
diff --git a/tests/genie/operators-greater-than.gs b/tests/genie/operators-greater-than.gs
new file mode 100644 (file)
index 0000000..ec19ee8
--- /dev/null
@@ -0,0 +1,6 @@
+init
+       var a = 10
+       if a > 9
+               assert( a > 9 )
+       else
+               assert_not_reached()
diff --git a/tests/genie/preparser-and-expression.gs b/tests/genie/preparser-and-expression.gs
new file mode 100644 (file)
index 0000000..b16f99d
--- /dev/null
@@ -0,0 +1,6 @@
+init
+#if TEST && FOO
+       assert_not_reached()
+#else
+       assert( true )
+#endif
diff --git a/tests/genie/preparser-elif.gs b/tests/genie/preparser-elif.gs
new file mode 100644 (file)
index 0000000..e722072
--- /dev/null
@@ -0,0 +1,8 @@
+init
+#if TEST
+       assert_not_reached()
+#elif VALA_0_16
+       assert( true )
+#else
+       assert_not_reached()
+#endif
diff --git a/tests/genie/preparser-equality-expression.gs b/tests/genie/preparser-equality-expression.gs
new file mode 100644 (file)
index 0000000..fb50dd7
--- /dev/null
@@ -0,0 +1,6 @@
+init
+#if THIS_IS_NOT_SET == true
+       assert_not_reached()
+#else
+       assert( true )
+#endif
diff --git a/tests/genie/preparser-not.gs b/tests/genie/preparser-not.gs
new file mode 100644 (file)
index 0000000..80ee037
--- /dev/null
@@ -0,0 +1,6 @@
+init
+#if !VALA_0_16
+       assert_not_reached()
+#else
+       assert( true )
+#endif
diff --git a/tests/genie/preparser-or-expression.gs b/tests/genie/preparser-or-expression.gs
new file mode 100644 (file)
index 0000000..ba8713c
--- /dev/null
@@ -0,0 +1,6 @@
+init
+#if TEST || FOO
+       assert_not_reached()
+#else
+       assert( true )
+#endif
diff --git a/tests/genie/preparser.gs b/tests/genie/preparser.gs
new file mode 100644 (file)
index 0000000..ab4d401
--- /dev/null
@@ -0,0 +1,15 @@
+init
+       result:string = ""
+#if VALA_0_16
+       result = "0.16+"
+#else
+       result = "<0.16"
+#endif
+
+       assert( result != "" )
+
+#if VALA_0_16
+       assert( result == "0.16+" )
+#else
+       assert( result == "<0.16" )
+#endif