selftest: pass location of perl executable from waf to test-envs
authorUri Simchoni <uri@samba.org>
Thu, 21 Dec 2017 17:49:39 +0000 (19:49 +0200)
committerAndrew Bartlett <abartlet@samba.org>
Fri, 22 Dec 2017 02:30:12 +0000 (03:30 +0100)
Many perl scripts in the codebase are executables with a
"/usr/bin/perl" shebang. Running them as executables is not
portable as some OS's have a different location for the perl
interpreter.

During the configuration process, waf finds the location of the perl
interpreter. Some or all  invocations of perl scripts from within
test environment setup code are actually "$PERL <script>",
but since PERL env var is typically not set, this amounts to the
unportable "<script>", which invokes /usr/bin/perl.

This patch exports the location of perl as found by the configuration
process to the test environment, causing "$PERL <script>" to be
"<correct place of perl interpreter> <script>".

Signed-off-by: Uri Simchoni <uri@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
selftest/wscript

index 9f1fd4d3d7190dce8343e7d350a1998c58788e2c..8264d96c8a240beb41a7498a52a4d899538c4d05 100644 (file)
@@ -202,6 +202,9 @@ def cmd_testonly(opt):
     # tell build system where to find config.h
     os.environ['CONFIG_H'] = 'bin/default/include/config.h'
 
+    # tell the test system where perl is
+    os.environ['PERL'] = env.PERL
+
     st_done = os.path.join(env.SELFTEST_PREFIX, 'st_done')
     if os.path.exists(st_done):
         os.unlink(st_done)