summaryrefslogtreecommitdiff
path: root/sal/test/unloading
diff options
context:
space:
mode:
authorJoachim Lingner <jl@openoffice.org>2001-06-18 09:31:45 +0000
committerJoachim Lingner <jl@openoffice.org>2001-06-18 09:31:45 +0000
commit3152e422b73ea08acc27e9f8c70745ddc4e3a511 (patch)
tree95b4152df2a5bf526006d10faa71dce7ae4d749b /sal/test/unloading
parent5614be29bf741430afe0d13a92f132dd0fcafcf4 (diff)
*** empty log message ***
Diffstat (limited to 'sal/test/unloading')
-rw-r--r--sal/test/unloading/unloadTest.cxx85
1 files changed, 63 insertions, 22 deletions
diff --git a/sal/test/unloading/unloadTest.cxx b/sal/test/unloading/unloadTest.cxx
index 45e883f9c..9921f5831 100644
--- a/sal/test/unloading/unloadTest.cxx
+++ b/sal/test/unloading/unloadTest.cxx
@@ -59,32 +59,36 @@ sal_Bool test5();
sal_Bool test6();
sal_Bool test7();
sal_Bool test8();
+sal_Bool test9();
void SAL_CALL listenerCallback( void* id);
void main(int argc, char* argv[])
{
- sal_Bool ret1= test1();
- if( ret1) printf( "\n Test 1 successful \n");
- else printf("\n !!!!!! Test 1 failed\n");
- sal_Bool ret2= test2();
- if( ret2) printf( "\n Test 2 successful \n");
- else printf("\n !!!!!! Test 2 failed\n");
- sal_Bool ret3= test3();
- if( ret3) printf( "\n Test 3 successful \n");
- else printf("\n !!!!!! Test 3 failed\n");
- sal_Bool ret4= test4();
- if( ret4) printf( "\n Test 4 successful \n");
- else printf("\n !!!!!! Test 4 failed\n");
- sal_Bool ret5= test5();
- if( ret5) printf( "\n Test 5 successful \n");
- else printf("\n !!!!!! Test 5 failed\n");
-// takes some time (10s)
- sal_Bool ret6= test6();
- sal_Bool ret7= test7(); // prints message itself
- sal_Bool ret8= test8();
- if( ret8) printf( "\n Test 8 successful \n");
- else printf("\n !!!!!! Test 8 failed\n");
+// sal_Bool ret1= test1();
+// if( ret1) printf( "\n Test 1 successful \n");
+// else printf("\n !!!!!! Test 1 failed\n");
+// sal_Bool ret2= test2();
+// if( ret2) printf( "\n Test 2 successful \n");
+// else printf("\n !!!!!! Test 2 failed\n");
+// sal_Bool ret3= test3();
+// if( ret3) printf( "\n Test 3 successful \n");
+// else printf("\n !!!!!! Test 3 failed\n");
+// sal_Bool ret4= test4();
+// if( ret4) printf( "\n Test 4 successful \n");
+// else printf("\n !!!!!! Test 4 failed\n");
+// sal_Bool ret5= test5();
+// if( ret5) printf( "\n Test 5 successful \n");
+// else printf("\n !!!!!! Test 5 failed\n");
+// // takes some time (10s)
+// sal_Bool ret6= test6();
+// sal_Bool ret7= test7(); // prints message itself
+// sal_Bool ret8= test8();
+// if( ret8) printf( "\n Test 8 successful \n");
+// else printf("\n !!!!!! Test 8 failed\n");
+ sal_Bool ret9= test9();
+ if( ret9) printf( "\n Test 9 successful: service manager is unloading listener\n");
+ else printf("\n !!!!! Test 9 failed\n");
}
/* Create an instance of SERVICENAME1, call a function and unload module.
@@ -523,4 +527,41 @@ sal_Bool test8()
void SAL_CALL listenerCallback( void* id)
{
printf(" listener called with id= %i\n", *(sal_Int32*)id);
-} \ No newline at end of file
+}
+
+/*
+
+ */
+sal_Bool test9()
+{
+ printf("Test 9 ####################################################\n");
+ oslModule handleMod=0;
+ sal_Bool retval=sal_False;
+ OUString lib1Name( RTL_CONSTASCII_USTRINGPARAM(LIBRARY1));
+
+ Reference<XMultiServiceFactory> serviceManager= createRegistryServiceFactory(
+ OUString( RTL_CONSTASCII_USTRINGPARAM("applicat.rdb")));
+
+ Reference<XInterface> xint= serviceManager->createInstance( OUString(
+ RTL_CONSTASCII_USTRINGPARAM(SERVICENAME1)));
+ // Release the service. The library refcount should be 1
+ xint=0;
+
+ handleMod= osl_loadModule( lib1Name.pData, 0);
+ osl_unloadModule( handleMod);
+ //-----------------------------------------------------------
+
+ // the service manager is still alive
+ rtl_unloadUnusedModules( NULL);
+ // Try to get a symbol, must fail
+ OUString sSymbol( RTL_CONSTASCII_USTRINGPARAM("component_getFactory"));
+ void* pSymbol= osl_getSymbol( handleMod, sSymbol.pData);
+
+ if( pSymbol)
+ {
+ retval= sal_False;
+ }
+ else
+ retval= sal_True;
+ return retval;
+}