aboutsummaryrefslogtreecommitdiff
path: root/src/testing
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-11-09 23:45:21 -0800
committerGarrett D'Amore <garrett@damore.org>2024-11-11 11:03:12 -0800
commit713b80f440cb414cd0b856bde0ea1b31f939777f (patch)
tree1186c42418559c85719023bde3e919aa2df7fcef /src/testing
parentcbe9a27ef7485977fbc7c713376b096b6723da3d (diff)
downloadnng-713b80f440cb414cd0b856bde0ea1b31f939777f.tar.gz
nng-713b80f440cb414cd0b856bde0ea1b31f939777f.tar.bz2
nng-713b80f440cb414cd0b856bde0ea1b31f939777f.zip
refactor initialization/finalization
Applications must now call nng_init(), but they can supply a set of parameters optionally. The code is now safe for multiple libraries to do this concurrently, meaning nng_fini no longer can race against another instance starting up. The nni_init checks on all public APIs are removed now.
Diffstat (limited to 'src/testing')
-rw-r--r--src/testing/nuts.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/testing/nuts.h b/src/testing/nuts.h
index 7a60aa32..1c1f4595 100644
--- a/src/testing/nuts.h
+++ b/src/testing/nuts.h
@@ -23,13 +23,18 @@ extern void nuts_logger(
nng_log_level, nng_log_facility, const char *, const char *);
// Call nng_fini during test finalization -- this avoids leak warnings.
-extern void nng_fini(void);
+#ifndef TEST_FINI
#define TEST_FINI nng_fini()
+#endif
+
+#ifndef TEST_INIT
#define TEST_INIT \
do { \
+ nng_init(NULL); \
nng_log_set_logger(nuts_logger); \
nng_log_set_level(NNG_LOG_NONE); \
} while (0)
+#endif
#include "acutest.h"
#include <stdbool.h>