# HG changeset patch # User thomask # Date 1098476998 0 # Node ID 96cadd0da1ae3cd0dbe60fa19387c91b93a64ebc # Parent eedf04fffdc3cb70c1246e7ceb91947b7c488d17 added invariant tests diff -r eedf04fffdc3 -r 96cadd0da1ae nocompile/invariant_03.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/invariant_03.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,5 @@ +// invariant is only allowed in classes + +module dstress.nocompile.invariant_03; + +invariant{} diff -r eedf04fffdc3 -r 96cadd0da1ae nocompile/invariant_04.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/invariant_04.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,20 @@ +// invariant is only allowed in classes (dmd-0.104 documentation) + +module dstress.nocompile.invariant_04; + +struct MyStruct{ + int i; + + void test(){ + } + + invariant{ + assert(0); + } +} + +int main(){ + MyStruct s; + s.test(); + return 0; +} diff -r eedf04fffdc3 -r 96cadd0da1ae nocompile/invariant_05.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/invariant_05.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,17 @@ +// invariant is only allowed in classes (dmd-0.104 documentation) + +module dstress.nocompile.invariant_05; + +invariant{ + assert(0); +} + +int dummy; + +static this(){ + dummy=4; +} + +static ~this(){ + dummy++; +} diff -r eedf04fffdc3 -r 96cadd0da1ae nocompile/invariant_06.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/invariant_06.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,20 @@ +// invariant is only allowed in classes (dmd-0.104 documentation) + +module dstress.nocompile.invariant_06; + +union MyUnion{ + int i; + + void test(){ + } + + invariant{ + assert(0); + } +} + +int main(){ + MyUnion u; + u.test(); + return 0; +} diff -r eedf04fffdc3 -r 96cadd0da1ae nocompile/invariant_07.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/invariant_07.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,15 @@ +// invariant is only allowed in classes (dmd-0.104 documentation) + +module dstress.nocompile.invariant_07; + +int test() + body{ + return 0; + } + invariant{ + assert(0); + } + +int main(){ + return test(); +} diff -r eedf04fffdc3 -r 96cadd0da1ae nocompile/invariant_08.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/invariant_08.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,15 @@ +// invariant is only allowed in classes (dmd-0.104 documentation) + +module dstress.nocompile.invariant_08; + +int test() +{ + invariant{ + assert(0); + } + return 0; +} + +int main(){ + return test(); +} diff -r eedf04fffdc3 -r 96cadd0da1ae nocompile/invariant_09.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/invariant_09.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,17 @@ +// invariant is only allowed in classes (dmd-0.104 documentation) + +module dstress.nocompile.invariant_09; + +class MyClass{ + int test(){ + invariant{ + assert(0); + } + return 0; + } +} + +int main(){ + Myclass c = new MyClass(); + return c.test(); +} diff -r eedf04fffdc3 -r 96cadd0da1ae run/invariant_01.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/invariant_01.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,22 @@ +module dstress.run.invariant_01; + +class MyClass{ + int test; + + this(){} + + invariant{ + assert(test > 1); + } +} + +int main(){ + int success; + try{ + MyClass c = new MyClass(); + }catch{ + success++; + } + assert(success==1); + return 0; +} diff -r eedf04fffdc3 -r 96cadd0da1ae run/invariant_02.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/invariant_02.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,22 @@ +module dstress.run.invariant_02; +int status; + +class MyClass{ + int test; + + this(){ + test=2; + } + + invariant{ + assert(test > 1); + status++; + } +} + +int main(){ + assert(status==0); + MyClass c = new MyClass(); + assert(status==1); + return 0; +} diff -r eedf04fffdc3 -r 96cadd0da1ae run/invariant_10.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/invariant_10.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,13 @@ +// the name function name "_invariant" isn't forbidden (dmd-0.104 documentation) +module dstress.run.invariant_10; + +class MyClass{ + void _invariant(){ + assert(0); + } +} + +int main(){ + MyClass c = new MyClass(); + return 0; +} diff -r eedf04fffdc3 -r 96cadd0da1ae run/invariant_11.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/invariant_11.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,18 @@ +// the name function name "_invariant" isn't forbidden (dmd-0.104 documentation) +module dstress.run.invariant_11; + +class MyClass{ + void _invariant(){ + assert(0); + } + + invariant{ + assert(0); + } +} + +int main(){ + MyClass c = new MyClass(); + return 0; +} + diff -r eedf04fffdc3 -r 96cadd0da1ae run/invariant_12.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/invariant_12.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,31 @@ +module dstress.run.invariant_12.d; + +class Parent{ + int x; + + void test(){ + } + + invariant{ + // even number + assert(x&1==0); + } +} + +class Child : Parent{ +} + +class GrandChild : Child{ + this(){ + x=5; + } +} + +int main(){ + try{ + GrandChild gc = new GrandChild(); + }catch{ + return 0; + } + assert(0); +} diff -r eedf04fffdc3 -r 96cadd0da1ae run/invariant_13.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/invariant_13.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,35 @@ +module dstress.run.invariant_13.d; + +class Parent{ + int x; + + void test(){ + } + + invariant{ + // even number + assert(x&1==0); + } +} + +class Child : Parent{ +} + +class GrandChild : Child{ + this(int x){ + this.x=x; + } + + invariant{ + assert(x>2); + } +} + +int main(){ + try{ + GrandChild gc = new GrandChild(2); + }catch{ + return 0; + } + assert(0); +} diff -r eedf04fffdc3 -r 96cadd0da1ae run/invariant_14.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/invariant_14.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,33 @@ +module dstress.run.invariant_14.d; + +class Parent{ + + int x; + + this(){ + x=3; + } + + invariant{ + assert(x>2); + } +} + +class Child : Parent{ +} + +class GrandChild : Child{ + + this(){ + x=5; + } + + invariant{ + assert(x>4); + } +} + +int main(){ + GrandChild gc = new GrandChild(); + return 0; +} diff -r eedf04fffdc3 -r 96cadd0da1ae run/invariant_15.d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/invariant_15.d Fri Oct 22 20:29:58 2004 +0000 @@ -0,0 +1,35 @@ +module dstress.run.invariant_15.d; + +class Parent{ + + int x; + + this(){ + x=3; + } + + invariant{ + assert(x>2); + } +} + +class Child : Parent{ +} + +class GrandChild : Child{ + + int y; + + this(){ + y=5; + } + + invariant{ + assert(y>4); + } +} + +int main(){ + GrandChild gc = new GrandChild(); + return 0; +}