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;
+}