Testsuite: Auto-detect missing sbin directories
authorHeiko Schlittermann (HS12) <hs@schlittermann.de>
Tue, 7 Apr 2015 19:44:00 +0000 (21:44 +0200)
committerHeiko Schlittermann (HS12) <hs@schlittermann.de>
Sat, 25 Apr 2015 19:00:20 +0000 (21:00 +0200)
The runtest script maps bin directories to
matching sbin directories, if they are not already included
in the $PATH. This is mainly a comfort feature to find
ifconfig on some systems automatically.

test/runtest

index 6c98a70..0a2ede9 100755 (executable)
@@ -2207,6 +2207,15 @@ return $yield;            # Ran command and waited
 autoflush STDOUT 1;
 print "Exim tester $testversion\n";
 
+# extend the PATH with .../sbin
+# we map all (.../bin) to (.../sbin:.../bin)
+$ENV{PATH} = do {
+  my %seen = map { $_, 1 } split /:/, $ENV{PATH};
+  join ':' => map { m{(.*)/bin$} 
+                ? ( $seen{"$1/sbin"} ? () : ("$1/sbin"), $_) 
+                : ($_) } 
+      split /:/, $ENV{PATH};
+};
 
 ##################################################
 #      Some tests check created file modes       #