summaryrefslogtreecommitdiff
path: root/Examples/test-suite/d/cpp11_std_unique_ptr_runme.1.d
diff options
context:
space:
mode:
Diffstat (limited to 'Examples/test-suite/d/cpp11_std_unique_ptr_runme.1.d')
-rw-r--r--Examples/test-suite/d/cpp11_std_unique_ptr_runme.1.d123
1 files changed, 0 insertions, 123 deletions
diff --git a/Examples/test-suite/d/cpp11_std_unique_ptr_runme.1.d b/Examples/test-suite/d/cpp11_std_unique_ptr_runme.1.d
deleted file mode 100644
index b8e466414..000000000
--- a/Examples/test-suite/d/cpp11_std_unique_ptr_runme.1.d
+++ /dev/null
@@ -1,123 +0,0 @@
-module cpp11_std_unique_ptr_runme;
-
-import cpp11_std_unique_ptr.cpp11_std_unique_ptr;
-import cpp11_std_unique_ptr.Klass;
-import cpp11_std_unique_ptr.KlassInheritance;
-import std.conv;
-import std.algorithm;
-
-void checkCount(int expected_count) {
- int actual_count = Klass.getTotal_count();
- if (actual_count != expected_count)
- throw new Exception("Counts incorrect, expected:" ~ to!string(expected_count) ~ " actual:" ~ to!string(actual_count));
-}
-
-void main() {
- // Test raw pointer handling involving virtual inheritance
- {
- scope KlassInheritance kini = new KlassInheritance("KlassInheritanceInput");
- checkCount(1);
- string s = useKlassRawPtr(kini);
- if (s != "KlassInheritanceInput")
- throw new Exception("Incorrect string: " ~ s);
- }
- checkCount(0);
-
- // unique_ptr as input
- {
- scope Klass kin = new Klass("KlassInput");
- checkCount(1);
- string s = takeKlassUniquePtr(kin);
- checkCount(0);
- if (s != "KlassInput")
- throw new Exception("Incorrect string: " ~ s);
- if (!is_nullptr(kin))
- throw new Exception("is_nullptr failed");
- } // dispose should not fail, even though already deleted
- checkCount(0);
-
- {
- scope Klass kin = new Klass("KlassInput");
- checkCount(1);
- string s = takeKlassUniquePtr(kin);
- checkCount(0);
- if (s != "KlassInput")
- throw new Exception("Incorrect string: " ~ s);
- if (!is_nullptr(kin))
- throw new Exception("is_nullptr failed");
- bool exception_thrown = false;
- try {
- takeKlassUniquePtr(kin);
- } catch (Exception e) {
- if (!canFind(e.msg, "Cannot release ownership as memory is not owned"))
- throw new Exception("incorrect exception message: " ~ e.msg);
- exception_thrown = true;
- }
- if (!exception_thrown)
- throw new Exception("double usage of takeKlassUniquePtr should have been an error");
- } // dispose should not fail, even though already deleted
- checkCount(0);
-
- {
- scope Klass kin = new Klass("KlassInput");
- bool exception_thrown = false;
- Klass notowned = get_not_owned_ptr(kin);
- try {
- takeKlassUniquePtr(notowned);
- } catch (Exception e) {
- if (!canFind(e.msg, "Cannot release ownership as memory is not owned"))
- throw new Exception("incorrect exception message: " ~ e.msg);
- exception_thrown = true;
- }
- if (!exception_thrown)
- throw new Exception("Should have thrown 'Cannot release ownership as memory is not owned' error");
- checkCount(1);
- }
- checkCount(0);
-
- {
- scope KlassInheritance kini = new KlassInheritance("KlassInheritanceInput");
- checkCount(1);
- string s = takeKlassUniquePtr(kini);
- checkCount(0);
- if (s != "KlassInheritanceInput")
- throw new Exception("Incorrect string: " ~ s);
- if (!is_nullptr(kini))
- throw new Exception("is_nullptr failed");
- } // dispose should not fail, even though already deleted
- checkCount(0);
-
- takeKlassUniquePtr(null);
- takeKlassUniquePtr(make_null());
- checkCount(0);
-
- // overloaded parameters
- if (overloadTest() != 0)
- throw new Exception("overloadTest failed");
- if (overloadTest(null) != 1)
- throw new Exception("overloadTest failed");
- if (overloadTest(new Klass("over")) != 1)
- throw new Exception("overloadTest failed");
- checkCount(0);
-
-
- // unique_ptr as output
- Klass k1 = makeKlassUniquePtr("first");
- if (k1.getLabel() != "first")
- throw new Exception("wrong object label");
-
- Klass k2 = makeKlassUniquePtr("second");
- checkCount(2);
-
- k1.dispose();
- checkCount(1);
-
- if (k2.getLabel() != "second")
- throw new Exception("wrong object label");
-
- k2.dispose();
- checkCount(0);
-
- if (makeNullUniquePtr() !is null)
- throw new Exception("null failure");
-}