]> git.saurik.com Git - apple/objc4.git/blobdiff - test/bigrc.m
objc4-818.2.tar.gz
[apple/objc4.git] / test / bigrc.m
index 419bbb60107439f00aa9e1e5b0a9e96b8466cefd..3918d8fd8956328d12989ddeb628c0720d8ce40f 100644 (file)
@@ -1,13 +1,4 @@
 // TEST_CONFIG MEM=mrc
-/*
-TEST_RUN_OUTPUT
-objc\[\d+\]: Deallocator object 0x[0-9a-fA-F]+ overreleased while already deallocating; break on objc_overrelease_during_dealloc_error to debug
-OK: bigrc.m
-OR
-no overrelease enforcement
-OK: bigrc.m
-END
- */
 
 #include "test.h"
 #include "testroot.i"
@@ -20,37 +11,15 @@ static size_t LOTS;
 -(void)dealloc 
 {
     id o = self;
-    size_t rc = 1;
 
 
-    testprintf("Retain a lot during dealloc\n");
+    testprintf("Retain/release during dealloc\n");
 
-    testassert(rc == 1);
-    testassert([o retainCount] == rc);
-    do {
-        [o retain];
-        if (rc % 0x100000 == 0) testprintf("%zx/%zx ++\n", rc, LOTS);
-    } while (++rc < LOTS);
-
-    testassert([o retainCount] == rc);
-
-    do {
-        [o release];
-        if (rc % 0x100000 == 0) testprintf("%zx/%zx --\n", rc, LOTS);
-    } while (--rc > 1);
-
-    testassert(rc == 1);
-    testassert([o retainCount] == rc);
-
-
-    testprintf("Overrelease during dealloc\n");
-
-    // Not all architectures enforce this.
-#if !SUPPORT_NONPOINTER_ISA
-    testwarn("no overrelease enforcement");
-    fprintf(stderr, "no overrelease enforcement\n");
-#endif
+    testassertequal([o retainCount], 0);
+    [o retain];
+    testassertequal([o retainCount], 0);
     [o release];
+    testassertequal([o retainCount], 0);
 
     [super dealloc];
 }