build: make make tests SCREEN=1 work on freebsd
authorMatthieu Patou <mat@freebsd.home.tridgell.net>
Sat, 9 Oct 2010 23:12:46 +0000 (10:12 +1100)
committerMatthieu Patou <mat@matws.net>
Sun, 10 Oct 2010 12:03:35 +0000 (16:03 +0400)
selftest/in_screen
selftest/target/Samba4.pm
source4/selftest/wscript

index 8a3cc5c601b43c60e5a4c12be76e5b73c61ceb05..927d83109bde5447269c33a03b43c673991e9689 100755 (executable)
@@ -1,10 +1,24 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 export TMPDIR="$SELFTEST_TMPDIR"
 
 SERVERNAME="$ENVNAME"
 [ -z "$SERVERNAME" ] && SERVERNAME="base"
 basedir=$TMPDIR
+osname=$(uname)
+if [ "$osname" = "Linux" ]; then
+       vars=$(mktemp)
+else
+       vars=$(mktemp -t tmpsmb)
+       function seq() {
+               dpt=$1
+               end=$2
+               while [ $dpt -le $end ]; do
+                       echo "$dpt"
+                       dpt=$(( $dpt + 1))
+               done
+       }
+fi
 
 [ -r $basedir/$SERVERNAME.pid ] && {
     for i in $(seq 2 100); do
@@ -19,7 +33,6 @@ rm -f $basedir/$SERVERNAME.*
 
 # set most of the environment vars we have in the screen session too
 _ENV=""
-vars=$(mktemp)
 printenv |
   egrep -v '^TERMCAP|^WINDOW|^SHELL|^STY|^SHLVL|^SAMBA_VALGRIND|\$' |
   egrep '^[A-Z]' |
index 36023f21c75a21fca3dbc2c87969cad92c9ad2f8..574c015a1111ad20bac5175c2a26f61c8040bcf7 100644 (file)
@@ -88,6 +88,7 @@ sub check_or_start($$$)
        POSIX::mkfifo($env_vars->{SAMBA_TEST_FIFO}, 0700);
        unlink($env_vars->{SAMBA_TEST_LOG});
        
+       my $pwd = `pwd`;
        print "STARTING SAMBA for $ENV{ENVNAME}\n";
        my $pid = fork();
        if ($pid == 0) {
@@ -138,9 +139,11 @@ sub check_or_start($$$)
                if (defined($ENV{SAMBA_PROCESS_MODEL})) {
                        $model = $ENV{SAMBA_PROCESS_MODEL};
                }
-               my $ret = system("$valgrind $samba $optarg $env_vars->{CONFIGURATION} -M $model -i");
+               chomp($pwd);
+               my $cmdline = "$valgrind ${pwd}/$samba $optarg $env_vars->{CONFIGURATION} -M $model -i";
+               my $ret = system("$cmdline");
                if ($ret == -1) {
-                       print "Unable to start $samba: $ret: $!\n";
+                       print "Unable to start $cmdline: $ret: $!\n";
                        exit 1;
                }
                my $exit = ($ret >> 8);
index 561baeb6e1174ee19831b1e6ea4e2c2c72a8708f..249db5e90b79196c1c407ebdf5b43d5dd981652a 100644 (file)
@@ -130,8 +130,8 @@ def cmd_testonly(opt):
         server_wrapper = '../selftest/gdb_run _DUMMY=X'
 
     if Options.options.SCREEN:
-        server_wrapper = '../selftest/in_screen %s' % server_wrapper
-        os.environ['TERMINAL'] = '../selftest/in_screen'
+        server_wrapper = '%s/../selftest/in_screen %s' % (os.getcwd(), server_wrapper)
+        os.environ['TERMINAL'] = '%s/../selftest/in_screen' % os.getcwd()
     elif server_wrapper != '':
         server_wrapper = 'xterm -n server -l -e %s' % server_wrapper