selftest: Confirm a demote of a real network works
authorAndrew Bartlett <abartlet@samba.org>
Fri, 23 Oct 2015 02:38:23 +0000 (15:38 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 26 Oct 2015 07:17:47 +0000 (08:17 +0100)
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Mon Oct 26 08:17:47 CET 2015 on sn-devel-104

selftest/tests.py
testprogs/blackbox/demote-saveddb.sh [new file with mode: 0755]

index 872fbaf0094992ae97b4b9f12eb0036d985883a0..0ae23c0f55b0428c85d6a4c7b11afd05460dd3df 100644 (file)
@@ -67,6 +67,10 @@ planpythontestsuite(
     "none", "wafsamba.tests.test_suite",
     extra_path=[os.path.join(samba4srcdir, "..", "buildtools"),
                 os.path.join(samba4srcdir, "..", "third_party", "waf", "wafadmin")])
+plantestsuite(
+    "samba4.blackbox.demote-saveddb", "none",
+    ["PYTHON=%s" % python, os.path.join(bbdir, "demote-saveddb.sh"),
+     '$PREFIX_ABS/demote', configuration])
 plantestsuite(
     "samba4.blackbox.dbcheck.alpha13", "none",
     ["PYTHON=%s" % python, os.path.join(bbdir, "dbcheck-oldrelease.sh"),
diff --git a/testprogs/blackbox/demote-saveddb.sh b/testprogs/blackbox/demote-saveddb.sh
new file mode 100755 (executable)
index 0000000..3d5fabd
--- /dev/null
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+if [ $# -lt 1 ]; then
+cat <<EOF
+Usage: demote.sh PREFIX RELEASE
+EOF
+exit 1;
+fi
+
+PREFIX_ABS="$1"
+shift 1
+
+. `dirname $0`/subunit.sh
+
+tree_dir=`dirname $0`/../../source4/selftest/provisions/multi-dc-samba-master-c596ac6
+
+undump() {
+       if test -x $BINDIR/tdbrestore;
+       then
+       `dirname $0`/../../source4/selftest/provisions/undump.sh $tree_dir $PREFIX_ABS $BINDIR/tdbrestore
+       else
+       `dirname $0`/../../source4/selftest/provisions/undump.sh $tree_dir $PREFIX_ABS
+       fi
+}
+
+demote() {
+       $PYTHON $BINDIR/samba-tool domain demote -H tdb://$PREFIX_ABS/private/sam.ldb --remove-other-dead-server=$1
+}
+
+
+if [ -d $tree_dir ]; then
+    testit "undump" undump
+    testit "demote-q-0-0" demote "q-0-0"
+    # The database was copied of q-0-1 so this will fail
+    # as we can't remove our own name
+    testit_expect_failure "demote-q-0-1" demote "q-0-1"
+    testit "demote-q-1-0" demote "q-1-0"
+    testit "demote-q-1-1" demote "q-1-1"
+else
+    subunit_start_test "undump"
+    subunit_skip_test "undump" <<EOF
+no test provision
+EOF
+
+    subunit_start_test "demote-q-0-0"
+    subunit_skip_test "demote-q-0-0" <<EOF
+no test provision
+EOF
+    subunit_start_test "demote-q-0-1"
+    subunit_skip_test "demote-q-0-1" <<EOF
+no test provision
+EOF
+    subunit_start_test "demote-q-1-1"
+    subunit_skip_test "demote-q-0-1" <<EOF
+no test provision
+EOF
+    subunit_start_test "demote-q-1-1"
+    subunit_skip_test "demote-q-1-1" <<EOF
+no test provision
+EOF
+fi
+
+if [ -d $PREFIX_ABS ]; then
+    rm -fr $PREFIX_ABS
+fi
+
+exit $failed