Mercurial > projects > dstress
changeset 59:96cadd0da1ae
added invariant tests
author | thomask |
---|---|
date | Fri, 22 Oct 2004 20:29:58 +0000 |
parents | eedf04fffdc3 |
children | 0d02c5cd0a6f |
files | nocompile/invariant_03.d nocompile/invariant_04.d nocompile/invariant_05.d nocompile/invariant_06.d nocompile/invariant_07.d nocompile/invariant_08.d nocompile/invariant_09.d run/invariant_01.d run/invariant_02.d run/invariant_10.d run/invariant_11.d run/invariant_12.d run/invariant_13.d run/invariant_14.d run/invariant_15.d |
diffstat | 15 files changed, 318 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /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{}
--- /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; +}
--- /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++; +}
--- /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; +}
--- /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(); +}
--- /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(); +}
--- /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(); +}
--- /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; +}
--- /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; +}
--- /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; +}
--- /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; +} +
--- /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); +}
--- /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); +}
--- /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; +}
--- /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; +}