summary refs log tree commit diff stats
path: root/tests/realtimeGC
diff options
context:
space:
mode:
Diffstat (limited to 'tests/realtimeGC')
-rw-r--r--tests/realtimeGC/cmain.c69
-rw-r--r--tests/realtimeGC/readme.txt10
-rw-r--r--tests/realtimeGC/tmain.nim10
3 files changed, 9 insertions, 80 deletions
diff --git a/tests/realtimeGC/cmain.c b/tests/realtimeGC/cmain.c
deleted file mode 100644
index 4bc5bd026..000000000
--- a/tests/realtimeGC/cmain.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* xxx consider removing, this seems redundant with tmain.nim */
-
-#ifdef WIN
-#include <windows.h>
-#else
-#include <dlfcn.h>
-#include <unistd.h> /* for sleep(3) */
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-#include <time.h>
-
-#define RUNTIME (15*60)
-
-
-typedef void (*pFunc)(void);
-
-int main(int argc, char* argv[])
-{
-    int i;
-    void* hndl;
-    pFunc status;
-    pFunc count;
-    pFunc checkOccupiedMem;
-
-#ifdef WIN
-    hndl = (void*) LoadLibrary((char const*)"./tests/realtimeGC/shared.dll");
-    status = (pFunc)GetProcAddress((HMODULE) hndl, (char const*)"status");
-    count = (pFunc)GetProcAddress((HMODULE) hndl, (char const*)"count");
-    checkOccupiedMem = (pFunc)GetProcAddress((HMODULE) hndl, (char const*)"checkOccupiedMem");
-#else /* OSX || NIX xxx: OSX assumes dylib*/
-    hndl = (void*) dlopen((char const*)"./tests/realtimeGC/libshared.so", RTLD_LAZY);
-    status = (pFunc) dlsym(hndl, (char const*)"status");
-    count = (pFunc) dlsym(hndl, (char const*)"count");
-    checkOccupiedMem = (pFunc) dlsym(hndl, (char const*)"checkOccupiedMem");
-#endif
-
-    assert(hndl);
-    assert(status);
-    assert(count);
-    assert(checkOccupiedMem);
-
-    time_t startTime = time((time_t*)0);
-    time_t runTime = (time_t)(RUNTIME);
-    time_t accumTime = 0;
-    while (accumTime < runTime) {
-        for (i = 0; i < 10; i++)
-            count();
-        /* printf("1. sleeping...\n"); */
-        sleep(1);
-        for (i = 0; i < 10; i++)
-            status();
-        /* printf("2. sleeping...\n"); */
-        sleep(1);
-        checkOccupiedMem();
-        accumTime = time((time_t*)0) - startTime;
-        /* printf("--- Minutes left to run: %d\n", (int)(runTime-accumTime)/60); */
-    }
-    printf("Cleaning up the shared object pointer...\n");
-#ifdef WIN
-    FreeLibrary((HMODULE)hndl);
-#else /* OSX || NIX */
-    dlclose(hndl);
-#endif
-    printf("Done\n");
-    return 0;
-}
diff --git a/tests/realtimeGC/readme.txt b/tests/realtimeGC/readme.txt
deleted file mode 100644
index c5837ee14..000000000
--- a/tests/realtimeGC/readme.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Test the realtime GC without linking nimrtl.dll/so.
-
-To build by hand and run the test for 35 minutes:
-    $ nim r --threads:on -d:runtimeSecs:2100 tests/realtimeGC/nmain.nim
-
-```
-xxx do we still need tests/realtimeGC/cmain.c?
-if so, tests/realtimeGC/cmain.c needs to updated and factorized with nmain.nim to avoid duplication (even if it's a C file)
-```
-    $ gcc -o tests/realtimeGC/cmain tests/realtimeGC/cmain.c -ldl
\ No newline at end of file
diff --git a/tests/realtimeGC/tmain.nim b/tests/realtimeGC/tmain.nim
index f1515a549..ca0177e3d 100644
--- a/tests/realtimeGC/tmain.nim
+++ b/tests/realtimeGC/tmain.nim
@@ -9,6 +9,13 @@ these dont' seem needed --debuginfo
 nor these from the previous main.nim.cfg: --app:console
 ]#
 
+#[
+Test the realtime GC without linking nimrtl.dll/so.
+
+To build by hand and run the test for 35 minutes:
+`nim r --threads:on -d:runtimeSecs:2100 tests/realtimeGC/tmain.nim`
+]#
+
 import times, os, strformat, strutils
 from stdtest/specialpaths import buildDir
 # import threadpool
@@ -16,9 +23,10 @@ from stdtest/specialpaths import buildDir
 const runtimeSecs {.intdefine.} = 5
 
 const file = "shared.nim"
-const dllname = buildDir / (DynlibFormat % file)
+const dllname = buildDir / (DynlibFormat % "shared_D20210524T180506")
 
 static:
+  # D20210524T180826:here we compile the dependency on the fly
   let nim = getCurrentCompilerExe()
   let (output, exitCode) = gorgeEx(fmt"{nim} c -o:{dllname} --debuginfo --app:lib --threads:on -d:release -d:useRealtimeGC {file}")
   doAssert exitCode == 0, output