aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJosh Rahm <rahm@google.com>2024-02-09 13:17:43 -0700
committerJosh Rahm <rahm@google.com>2024-02-09 13:17:43 -0700
commit50d91022f328c6f3dd7d166967732dec9734887c (patch)
treea88b5ae0485db6caf811b569162773ffa15ebc4d /src
parentebde8665851ca21ff00685eeaf5057ccec6eb05d (diff)
downloadwetterhorn-50d91022f328c6f3dd7d166967732dec9734887c.tar.gz
wetterhorn-50d91022f328c6f3dd7d166967732dec9734887c.tar.bz2
wetterhorn-50d91022f328c6f3dd7d166967732dec9734887c.zip
Move the harness to its own CMake project.
Diffstat (limited to 'src')
-rw-r--r--src/harness/main.c69
1 files changed, 0 insertions, 69 deletions
diff --git a/src/harness/main.c b/src/harness/main.c
deleted file mode 100644
index 1580bd6..0000000
--- a/src/harness/main.c
+++ /dev/null
@@ -1,69 +0,0 @@
-#include <stdio.h>
-
-#include <dlfcn.h>
-
-typedef void* dllib_t;
-
-typedef void* opqst_t;
-
-dllib_t open_library(const char* library, int* err)
-{
- dllib_t lib = dlopen(library, RTLD_LAZY);
-
- if (!lib) {
- fprintf(stderr, "Error opening shared library: %s\n", dlerror());
- *err = 1;
- }
- *err = 0;
- return lib;
-}
-
-void* getsym(dllib_t handle, char* sym, int* err)
-{
- void* ret = dlsym(handle, sym);
- if (!ret) {
- fprintf(stderr, "Unable to read symbol '%s'\n", sym);
- *err |= 1;
- return NULL;
- }
- return ret;
-}
-
-void use_library(int argc, char** argv, dllib_t lib, int* err)
-{
- *err = 0;
-
- opqst_t (*init)(int* argc, char*** argv) = getsym(lib, "plugin_init", err);
- void (*teardown)() = getsym(lib, "plugin_teardown", err);
- opqst_t (*sym)(opqst_t) = getsym(lib, "handle_thing", err);
-
- if (*err) {
- fprintf(stderr, "Unable to find symbol call_in.\n");
- return;
- }
-
- opqst_t st = init(&argc, &argv);
- for (int i = 0; i < 100000; ++ i) {
- st = sym(st);
- printf("stable_ptr: %p\n", st);
- }
- teardown();
-}
-
-int main(int argc, char** argv)
-{
- if (!argv[0] && !argv[1]) {
- fprintf(stderr, "Missing argument.\n");
- return 1;
- }
-
- int err = 0;
- dllib_t lib = open_library(argv[1], &err);
-
- if (err) {
- return err;
- }
-
- use_library(argc, argv, lib, &err);
- return 0;
-}