]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: Decouple preload code from main()
authorJiri Denemark <jdenemar@redhat.com>
Tue, 26 Apr 2016 13:00:24 +0000 (15:00 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Thu, 5 May 2016 08:01:55 +0000 (10:01 +0200)
The new VIRT_TEST_PRELOAD macro does not force the caller to create a
special main function which would need to be called through
virtTestMain().

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
tests/testutils.h

index 0417a0b9feba63af5fe38cf06de1eb85cbbc0014..123a4fb17bb58665aa362bc9cd09d0b294938c31 100644 (file)
@@ -110,8 +110,8 @@ int virtTestMain(int argc,
         return virtTestMain(argc, argv, func);  \
     }
 
-# define VIRT_TEST_MAIN_PRELOAD(func, lib)                              \
-    int main(int argc, char **argv) {                                   \
+# define VIRT_TEST_PRELOAD(lib)                                         \
+    do {                                                                \
         const char *preload = getenv("LD_PRELOAD");                     \
         if (preload == NULL || strstr(preload, lib) == NULL) {          \
             char *newenv;                                               \
@@ -128,6 +128,11 @@ int virtTestMain(int argc,
             setenv("LD_PRELOAD", newenv, 1);                            \
             execv(argv[0], argv);                                       \
         }                                                               \
+    } while (0)
+
+# define VIRT_TEST_MAIN_PRELOAD(func, lib)                              \
+    int main(int argc, char **argv) {                                   \
+        VIRT_TEST_PRELOAD(lib);                                         \
         return virtTestMain(argc, argv, func);                          \
     }