]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
testutils: find perl early
authorJán Tomko <jtomko@redhat.com>
Mon, 11 Jul 2016 12:45:49 +0000 (14:45 +0200)
committerJán Tomko <jtomko@redhat.com>
Tue, 12 Jul 2016 10:15:50 +0000 (12:15 +0200)
Commit 843a70a changed test-wrap-argv.pl to use
/usr/bin/env perl
instead of
/usr/bin/perl

However when called from qemuxml2argvtest with
VIR_TEST_REGENERATE_OUTPUT, PATH is set to '/bin'.

Find the path to perl early in virTestMain, in case we
are going to need it later after we've overridden PATH.

tests/testutils.c

index be61e4d7ee9539fb73276ac800e01d2ef972a9d1..d699e1fbfe866cbfcce9151d59eb9a7f3044e538 100644 (file)
@@ -83,6 +83,7 @@ static size_t testCounter;
 static virBitmapPtr testBitmap;
 
 char *progname;
+static char *perl;
 
 bool virTestOOMActive(void)
 {
@@ -441,10 +442,15 @@ virTestRewrapFile(const char *filename)
     char *script = NULL;
     virCommandPtr cmd = NULL;
 
+    if (!perl) {
+        fprintf(stderr, "cannot rewrap %s: unable to find perl in path", filename);
+        return -1;
+    }
+
     if (virAsprintf(&script, "%s/test-wrap-argv.pl", abs_srcdir) < 0)
         goto cleanup;
 
-    cmd = virCommandNewArgList(script, "--in-place", filename, NULL);
+    cmd = virCommandNewArgList(perl, script, "--in-place", filename, NULL);
     if (virCommandRun(cmd, NULL) < 0)
         goto cleanup;
 
@@ -966,6 +972,9 @@ int virTestMain(int argc,
     }
 #endif /* TEST_OOM */
 
+    /* Find perl early because some tests override PATH */
+    perl = virFindFileInPath("perl");
+
     ret = (func)();
 
     virResetLastError();
@@ -974,6 +983,7 @@ int virTestMain(int argc,
             fprintf(stderr, "%*s", 40 - (int)(testCounter % 40), "");
         fprintf(stderr, " %-3zu %s\n", testCounter, ret == 0 ? "OK" : "FAIL");
     }
+    VIR_FREE(perl);
     return ret;
 }