Mercurial > projects > dstress
changeset 379:60b4ba82210e
added tests for custom deallocators
author | thomask |
---|---|
date | Sat, 02 Apr 2005 10:59:10 +0000 |
parents | e555e1460d7e |
children | f07f77e65213 |
files | nocompile/delete_06.d nocompile/delete_07.d nocompile/delete_08.d norun/delete_03.d norun/delete_04.d norun/delete_05.d run/delete_01.d run/delete_02.d |
diffstat | 8 files changed, 161 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/delete_06.d Sat Apr 02 10:59:10 2005 +0000 @@ -0,0 +1,13 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// __DSTRESS_ELINE__ 10 + +module dstress.nocompile.delete_06; + +enum Enum{ + delete(void* p){ + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/delete_07.d Sat Apr 02 10:59:10 2005 +0000 @@ -0,0 +1,13 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// __DSTRESS_ELINE__ 10 + +module dstress.nocompile.delete_07; + +class MyClass{ + delete(int p){ + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/nocompile/delete_08.d Sat Apr 02 10:59:10 2005 +0000 @@ -0,0 +1,13 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// __DSTRESS_ELINE__ 10 + +module dstress.nocompile.delete_08; + +class MyClass{ + delete(void* p, int blah){ + } +} +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/norun/delete_03.d Sat Apr 02 10:59:10 2005 +0000 @@ -0,0 +1,18 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// __DSTRESS_ELINE__ 11 + +module dstress.run.delete_03; + +struct MyStruct{ + delete(void* p){ + assert(0); + } +} + +int main(){ + MyStruct t; + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/norun/delete_04.d Sat Apr 02 10:59:10 2005 +0000 @@ -0,0 +1,18 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// __DSTRESS_ELINE__ 11 + +module dstress.run.delete_04; + +class MyClass{ + delete(void* p){ + assert(0); + } +} + +int main(){ + MyClass o=new MyClass(); + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/norun/delete_05.d Sat Apr 02 10:59:10 2005 +0000 @@ -0,0 +1,18 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// __DSTRESS_ELINE__ 11 + +module dstress.run.delete_05; + +union MyUnion{ + delete(void* p){ + assert(0); + } +} + +int main(){ + MyUnion u; + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/delete_01.d Sat Apr 02 10:59:10 2005 +0000 @@ -0,0 +1,36 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @WARNING@ direct usage of Phobos's GC + +module dstress.run.delete_01; +import std.gc; + +int status; + +class MyClass{ + ~this(){ + assert(status==0); + status--; + } + + delete(void* p){ + assert(status==-1); + status--; + } +} + +void test(){ + MyClass c=new MyClass(); + assert(status==0); + delete c; +} + +int main(){ + test(); + assert(status<=-1); + std.gc.fullCollect(); + assert(status==-2); + return 0; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/run/delete_02.d Sat Apr 02 10:59:10 2005 +0000 @@ -0,0 +1,32 @@ +// $HeadURL$ +// $Date$ +// $Author$ + +// @WARNING@ direct usage of Phobos's GC + +module dstress.run.delete_02; + +import std.gc; + +int status; + +struct MyStruct{ + int i; + + delete(void* p){ + assert(status==0); + status--; + } +} + +int test(){ + MyStruct t; + return t.i; +} + +int main(){ + test(); + std.gc.fullCollect(); + assert(status==-1); + return 0; +}