public static void Main() { Klass k1 = li_std_auto_ptr.makeKlassAutoPtr("first"); if (k1.getLabel() != "first") { throw new Exception("wrong object label"); } Klass k2 = li_std_auto_ptr.makeKlassAutoPtr("second"); if (Klass.getTotal_count() != 2) { throw new Exception("number of objects should be 2"); } k1 = null; WaitForGC(); if (Klass.getTotal_count() != 1) { throw new Exception("number of objects should be 1"); } if (k2.getLabel() != "second") { throw new Exception("wrong object label"); } k2 = null; WaitForGC(); if (Klass.getTotal_count() != 0) { throw new Exception("no objects should be left"); } }
public static void Main() { Klass k1 = li_std_auto_ptr.makeKlassAutoPtr("first"); if (k1.getLabel() != "first") { throw new Exception("wrong object label"); } Klass k2 = li_std_auto_ptr.makeKlassAutoPtr("second"); if (Klass.getTotal_count() != 2) { throw new Exception("number of objects should be 2"); } k1 = null; { int countdown = 500; int expectedCount = 1; while (true) { WaitForGC(); if (--countdown == 0) { break; } if (Klass.getTotal_count() == expectedCount) { break; } } ; int actualCount = Klass.getTotal_count(); if (actualCount != expectedCount) { throw new ApplicationException("Expected count: " + expectedCount + " Actual count: " + actualCount); } } if (k2.getLabel() != "second") { throw new Exception("wrong object label"); } k2 = null; { int countdown = 500; int expectedCount = 0; while (true) { WaitForGC(); if (--countdown == 0) { break; } if (Klass.getTotal_count() == expectedCount) { break; } } int actualCount = Klass.getTotal_count(); if (actualCount != expectedCount) { throw new ApplicationException("Expected count: " + expectedCount + " Actual count: " + actualCount); } } }
public static void Main() { Klass k1 = li_std_auto_ptr.makeKlassAutoPtr("first"); if (k1.getLabel() != "first") { throw new Exception("wrong object label"); } Klass k2 = li_std_auto_ptr.makeKlassAutoPtr("second"); if (Klass.getTotal_count() != 2) { throw new Exception("number of objects should be 2"); } using (Klass k3 = li_std_auto_ptr.makeKlassAutoPtr("second")) { if (Klass.getTotal_count() != 3) { throw new Exception("number of objects should be 3"); } } if (Klass.getTotal_count() != 2) { throw new Exception("number of objects should be 2"); } k1 = null; { int countdown = 500; int expectedCount = 1; while (true) { WaitForGC(); if (--countdown == 0) { break; } if (Klass.getTotal_count() == expectedCount) { break; } } ; int actualCount = Klass.getTotal_count(); if (actualCount != expectedCount) { Console.Error.WriteLine("Expected count: " + expectedCount + " Actual count: " + actualCount); // Finalizers are not guaranteed to be run and sometimes they just don't } } if (k2.getLabel() != "second") { throw new Exception("wrong object label"); } k2 = null; { int countdown = 500; int expectedCount = 0; while (true) { WaitForGC(); if (--countdown == 0) { break; } if (Klass.getTotal_count() == expectedCount) { break; } } int actualCount = Klass.getTotal_count(); if (actualCount != expectedCount) { Console.Error.WriteLine("Expected count: " + expectedCount + " Actual count: " + actualCount); // Finalizers are not guaranteed to be run and sometimes they just don't } } }