Browse Source

fix(multithreading): Fix tests for windows

Ubuntu 5 years ago
parent
commit
cbf26d66ed

+ 0 - 1
tests/multithreading/check_mt_addDeleteObject.c

@@ -71,7 +71,6 @@ void server_deleteObject(void* value){
     UA_StatusCode ret = UA_STATUSCODE_GOOD;
     do {
         ret = UA_Server_deleteNode(tc.server, UA_NODEID_STRING(1, string_buf), true);
-        sleep(1); //for valgrind
     } while (ret != UA_STATUSCODE_GOOD);
 }
 

+ 0 - 1
tests/multithreading/check_mt_readWriteDeleteCallback.c

@@ -76,7 +76,6 @@ static void setup(void) {
 
 static
 void server_deleteValue(void *value) {
-    //UA_fakeSleep(100);
     UA_StatusCode ret = UA_Server_deleteNode(tc.server, pumpTypeId, true);
     ck_assert_int_eq(UA_STATUSCODE_GOOD, ret);
 }

+ 2 - 5
tests/multithreading/mt_testing.h

@@ -3,9 +3,6 @@
 
 #include <open62541/server_config_default.h>
 
-#define THREAD_CALLBACK_PARAM(name, param) static void * name(void *param)
-#define THREAD_CREATE_PARAM(handle, callback, param) pthread_create(&(handle), NULL, callback, (void*) &(param))
-
 typedef struct {
     void (*func)(void *param); //function to execute
     size_t counter; //index of the iteration
@@ -56,7 +53,7 @@ THREAD_CALLBACK_PARAM(workerLoop, val) {
         tmp.counter = i;
         tmp.func(&tmp);
     }
-    return NULL;
+    return 0;
 }
 
 THREAD_CALLBACK_PARAM(clientLoop, val) {
@@ -72,7 +69,7 @@ THREAD_CALLBACK_PARAM(clientLoop, val) {
     }
     UA_Client_disconnect(tc.clients[tmp.index]);
     UA_Client_delete(tc.clients[tmp.index]);
-    return NULL;
+    return 0;
 }
 
 static UA_INLINE void

+ 4 - 3
tests/testing-plugins/thread_wrapper.h

@@ -10,18 +10,19 @@
 #include <pthread.h>
 #define THREAD_HANDLE pthread_t
 #define THREAD_CREATE(handle, callback) pthread_create(&handle, NULL, callback, NULL)
+#define THREAD_CREATE_PARAM(handle, callback, param) pthread_create(&(handle), NULL, callback, (void*) &(param))
 #define THREAD_JOIN(handle) pthread_join(handle, NULL)
 #define THREAD_CALLBACK(name) static void * name(void *_)
-
+#define THREAD_CALLBACK_PARAM(name, param) static void * name(void *param)
 #else
 
 #include <windows.h>
 #define THREAD_HANDLE HANDLE
 #define THREAD_CREATE(handle, callback) { handle = CreateThread( NULL, 0, callback, NULL, 0, NULL); }
+#define THREAD_CREATE_PARAM(handle, callback, param) { handle = CreateThread( NULL, 0, callback,  (LPVOID) &param, 0, NULL); }
 #define THREAD_JOIN(handle) WaitForSingleObject(handle, INFINITE)
-
-
 #define THREAD_CALLBACK(name) static DWORD WINAPI name( LPVOID lpParam )
+#define THREAD_CALLBACK_PARAM(name, param) static DWORD WINAPI name( LPVOID param )
 
 #endif