summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2012-08-29 09:10:40 +1000
committerAndrew Bartlett <abartlet@samba.org>2012-08-29 09:10:40 +1000
commit3a303ae5ab2bfef58e0ea281e3a99406ff8fd53f (patch)
treec5fc12de72ba9691ac71368bddd044d4274ea430
parentbcc29f9e7317601737858184f5ec6243552e0c0c (diff)
downloadsamba-3a303ae5ab2bfef58e0ea281e3a99406ff8fd53f.tar.gz
samba-3a303ae5ab2bfef58e0ea281e3a99406ff8fd53f.tar.bz2
samba-3a303ae5ab2bfef58e0ea281e3a99406ff8fd53f.zip
selftest: Add a test for smbclient --machine-pass without secrets.tdb
Errors in handling the upgrade case without a matching secrets.tdb caused segfaults in the server. This essentially tests both sides. Andrew Bartlett
-rw-r--r--selftest/target/Samba4.pm9
-rwxr-xr-xsource4/selftest/tests.py2
2 files changed, 10 insertions, 1 deletions
diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm
index 5442281766..28b40added 100644
--- a/selftest/target/Samba4.pm
+++ b/selftest/target/Samba4.pm
@@ -672,6 +672,7 @@ nogroup:x:65534:nobody
LOCKDIR => $ctx->{lockdir},
STATEDIR => $ctx->{statedir},
CACHEDIR => $ctx->{cachedir},
+ PRIVATEDIR => $ctx->{privatedir},
SERVERCONFFILE => $ctx->{smb_conf},
CONFIGURATION => $configuration,
SOCKET_WRAPPER_DEFAULT_IFACE => $ctx->{swiface},
@@ -1450,6 +1451,14 @@ sub provision_chgdcpass($$)
warn("Unable to add wins configuration");
return undef;
}
+
+ # Remove secrets.tdb from this environment to test that we still start up
+ # on systems without the new matching secrets.tdb records
+ unless (unlink("$ret->{PRIVATEDIR}/secrets.tdb")) {
+ warn("Unable to remove $ret->{PRIVATEDIR}/secrets.tdb added during provision");
+ return undef;
+ }
+
$ret->{DC_SERVER} = $ret->{SERVER};
$ret->{DC_SERVER_IP} = $ret->{SERVER_IP};
$ret->{DC_NETBIOSNAME} = $ret->{NETBIOSNAME};
diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py
index f205fe4745..b9944cb799 100755
--- a/source4/selftest/tests.py
+++ b/source4/selftest/tests.py
@@ -304,7 +304,7 @@ planpythontestsuite("s3dc", "samba.tests.libsmb_samba_internal");
# the API. These mainly test that the various command-line options of commands
# work correctly.
-for env in ["s3member", "s4member", "dc"]:
+for env in ["s3member", "s4member", "dc", "chgdcpass"]:
plantestsuite("samba4.blackbox.smbclient(%s:local)" % env, "%s:local" % env, [os.path.join(samba4srcdir, "utils/tests/test_smbclient.sh"), '$SERVER', '$SERVER_IP', '$USERNAME', '$PASSWORD', '$DOMAIN', smbclient])
planpythontestsuite("none", "samba.tests.blackbox.ndrdump")