selftest: Print error message when smbd does not have ADS support
authorChristof Schmitt <christof.schmitt@us.ibm.com>
Wed, 3 Jul 2013 19:49:43 +0000 (12:49 -0700)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 27 Jul 2013 06:31:14 +0000 (08:31 +0200)
When smbd cannot be compiled with ADS support, setting up the s3member
environment fails with:

samba: using 'standard' process model
Samba can't provide environment 's3member' at /test/samba/selftest/target/Samba.pm line 44.
Can't use string ("UNKNOWN") as a HASH ref while "strict refs" in use at /test/samba/selftest/selftest.pl line 852.
samba: EOF on stdin - terminating

Add an explicit error message for the missing ADS support to make this
easier to debug and also avoid the warning about the hash reference:

samba: using 'standard' process model
Samba can't provide environment 's3member' at /test/samba/selftest/target/Samba.pm line 44.
Unable to setup environment s3member at /test/samba/selftest/selftest.pl line 851.
smbd does not have ADS support
samba: EOF on stdin - terminating

Signed-off-by: Christof Schmitt <christof.schmitt@us.ibm.com>
Reviewed-by: Andreas Schneider <asn@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Sat Jul 27 08:31:14 CEST 2013 on sn-devel-104

selftest/selftest.pl
selftest/target/Samba3.pm

index cc947a15ed9961d5dab8d3890c569fc786d8130c..b60b76228d04199a9b2e8c9cc042175bf8aed37a 100755 (executable)
@@ -847,7 +847,9 @@ if ($opt_testenv) {
 
        my $testenv_vars = setup_env($testenv_name, $prefix);
 
-       die("Unable to setup environment $testenv_name") unless ($testenv_vars);
+       if (not $testenv_vars or $testenv_vars eq "UNKNOWN") {
+               die("Unable to setup environment $testenv_name");
+       }
 
        $ENV{PIDDIR} = $testenv_vars->{PIDDIR};
        $ENV{ENVNAME} = $testenv_name;
index 26f5e92898a63c62fd9580ae3145f5ea484e7eb7..20587bf94dd69c4af2440a75f9fcd6537977546e 100755 (executable)
@@ -25,6 +25,7 @@ sub have_ads($) {
        close IN;
 
        # If we were not built with ADS support, pretend we were never even available
+       print "smbd does not have ADS support\n" unless $found_ads;
        return $found_ads;
 }