Bug 453164 - 'TestServMgr' : "mFreeCount : LEAKED 233 + mAdoptFreeCount : LEAKED 7"; r=benjamin
--- a/xpcom/tests/TestServMgr.cpp
+++ b/xpcom/tests/TestServMgr.cpp
@@ -140,36 +140,49 @@ AsyncNoShutdownTest(int testNumber)
return err;
}
////////////////////////////////////////////////////////////////////////////////
int
main(void)
{
- nsresult err;
+ nsresult err, rv = 0;
int testNumber = 0;
err = NS_InitXPCOM2(nsnull, nsnull, nsnull);
if (NS_FAILED(err)) {
printf("NS_InitXPCOM2 failed\n");
return -1;
}
err = SimpleTest(++testNumber);
- if (err != NS_OK)
- goto error;
+ if (err != NS_OK) {
+ printf("test %d failed\n", testNumber);
+ rv = -1;
+ }
- err = AsyncNoShutdownTest(++testNumber);
- if (err != NS_OK)
- goto error;
+ if (rv == 0) {
+ err = AsyncNoShutdownTest(++testNumber);
+ if (err != NS_OK) {
+ printf("test %d failed\n", testNumber);
+ rv = -1;
+ }
+ }
- AsyncShutdown(++testNumber);
+ if (rv == 0) {
+ err = AsyncShutdown(++testNumber);
+ if (err != NS_OK) {
+ printf("test %d failed\n", testNumber);
+ rv = -1;
+ }
+ }
- printf("there was great success\n");
- return 0;
+ if (rv == 0)
+ printf("there was great success\n");
- error:
- printf("test %d failed\n", testNumber);
- return -1;
+ err = NS_ShutdownXPCOM(nsnull);
+ NS_ASSERTION(NS_SUCCEEDED(err), "NS_ShutdownXPCOM failed");
+
+ return rv;
}
////////////////////////////////////////////////////////////////////////////////