[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-566-gfa5968a

Michael Adam obnox at samba.org
Mon Mar 31 22:11:04 GMT 2008


The branch, v3-2-test has been updated
       via  fa5968a26b552d7f13574a826e506ed2d6630feb (commit)
      from  e03d1dfdb80333c071b600245eb749ef5664aa22 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit fa5968a26b552d7f13574a826e506ed2d6630feb
Author: Michael Adam <obnox at samba.org>
Date:   Mon Mar 31 13:54:39 2008 +0200

    test: add test script for testing "net registry".
    
    Michael

-----------------------------------------------------------------------

Summary of changes:
 source/script/tests/test_net_registry.sh |  378 ++++++++++++++++++++++++++++++
 source/script/tests/tests_all.sh         |    7 +
 2 files changed, 385 insertions(+), 0 deletions(-)
 create mode 100755 source/script/tests/test_net_registry.sh


Changeset truncated at 500 lines:

diff --git a/source/script/tests/test_net_registry.sh b/source/script/tests/test_net_registry.sh
new file mode 100755
index 0000000..927882b
--- /dev/null
+++ b/source/script/tests/test_net_registry.sh
@@ -0,0 +1,378 @@
+#!/bin/sh
+
+# tests for the "net registry" command - local access to the registry db
+
+
+NET="$VALGRIND ${NET:-$BINDIR/net} $CONFIGURATION"
+
+NETREG="${NET} registry"
+
+incdir=`dirname $0`
+. $incdir/test_functions.sh
+
+failed=0
+
+test_enumerate()
+{
+	KEY="$1"
+
+	${NETREG} enumerate ${KEY}
+}
+
+test_getsd()
+{
+	KEY="$1"
+
+	${NETREG} getsd ${KEY}
+}
+
+test_enumerate_nonexisting()
+{
+	KEY="$1"
+	${NETREG} enumerate ${KEY}
+	if test "x$?" = "x0" ; then
+		echo "ERROR: enumerate succeeded with key '${KEY}'"
+		false
+	else
+		true
+	fi
+}
+
+test_enumerate_no_key()
+{
+	${NETREG} enumerate
+	if test "x$?" = "x0" ; then
+		echo "ERROR: enumerate succeeded without any key spcified"
+		false
+	else
+		true
+	fi
+}
+
+test_create_existing()
+{
+	KEY="HKLM"
+	EXPECTED="createkey opened existing ${KEY}"
+	OUTPUT=`${NETREG} createkey ${KEY}`
+	if test "x$?" = "x0" ; then
+		if test "$OUTPUT" = "$EXPECTED" ; then
+			true
+		else
+			echo "got '$OUTPUT', expected '$EXPECTED'"
+			false;
+		fi
+	else
+		echo -e "$OUTPUT"
+		false
+	fi
+}
+
+test_createkey()
+{
+	KEY="$1"
+	BASEKEY=`dirname $KEY`
+	SUBKEY=`basename $KEY`
+
+	${NETREG} createkey ${KEY}
+	if test "x$?" != "x0" ; then
+		false
+		return
+	fi
+
+	# check enumerate of basekey lists new key:
+	OUTPUT=`${NETREG} enumerate ${BASEKEY}`
+	if test "x$?" != "x0" ; then
+		echo "ERROR: failed to enumerate key '${BASEKEY}'"
+		echo "output:"
+		echo -e "$OUTPUT"
+		false
+		return
+	fi
+
+	EXPECTED="Keyname = ${SUBKEY}"
+	echo -e "$OUTPUT" | grep ^Keyname | grep ${SUBKEY}
+	if test "x$?" != "x0" ; then
+		echo "ERROR: did not find expexted '$EXPECTED' in output"
+		echo "output:"
+		echo -e "$OUTPUT"
+		false
+	fi
+
+	# check enumerate of new key works:
+	${NETREG} enumerate ${KEY}
+}
+
+test_deletekey()
+{
+	KEY="$1"
+	BASEKEY=`dirname ${KEY}`
+	SUBKEY=`basename ${KEY}`
+
+	test_createkey "${KEY}"
+
+	if test "x$?" != "x0" ; then
+		false
+		return
+	fi
+
+	${NETREG} deletekey ${KEY}
+
+	# check enumerate of basekey does not show key anymore:
+	OUTPUT=`${NETREG} enumerate ${BASEKEY}`
+	if test "x$?" != "x0" ; then
+		echo -e "$OUTPUT"
+		false
+		return
+	fi
+
+	UNEXPECTED="Keyname = ${SUBKEY}"
+	echo -e "$OUTPUT" | grep ^Keyname | grep ${SUBKEY}
+	if test "x$?" = "x0" ; then
+		echo "ERROR: found '$UNEXPECTED' after delete in output"
+		echo "output:"
+		echo -e "$OUTPUT"
+		false
+	fi
+
+	# check enumerate of key itself does not work anymore:
+	${NETREG} enumerate ${KEY}
+	if test "x$?" = "x0" ; then
+		echo "ERROR: 'enumerate ${KEY}' works after 'deletekey ${KEY}'"
+		false
+	else
+		true
+	fi
+}
+
+test_deletekey_nonexisting()
+{
+	KEY="$1"
+
+	test_deletekey "${KEY}"
+
+	if test "x$?" != "x0" ; then
+		false
+		return
+	fi
+
+	${NETREG} deletekey "${KEY}"
+	if test "x$?" = "x0" ; then
+		echo "ERROR: delete after delete succeeded for key '${KEY}'"
+		false
+	fi
+}
+
+test_createkey_with_subkey()
+{
+	KEY="$1"
+	KEY2=`dirname ${KEY}`
+	SUBKEYNAME2=`basename ${KEY}`
+	BASENAME=`dirname ${KEY2}`
+	SUBKEYNAME1=`basename ${KEY2}`
+
+	${NETREG} createkey ${KEY}
+
+	if test "x$?" != "x0" ; then
+		false
+		return
+	fi
+
+	# check we can enumerate to level key
+	${NETREG} enumerate ${KEY}
+	if test "x$?" != "x0" ; then
+		echo "ERROR: failed to enumerate '${KEY}' after creation"
+		false
+		return
+	fi
+
+	# clear:
+	${NETREG} deletekey ${KEY} && ${NETREG} deletekey ${KEY2}
+}
+
+test_deletekey_with_subkey()
+{
+	KEY="$1"
+	KEY2=`dirname ${KEY}`
+
+	${NETREG} createkey ${KEY}
+
+	if test "x$?" != "x0" ; then
+		false
+		return
+	fi
+
+	OUTPUT=`${NETREG} deletekey ${KEY2}`
+
+	if test "x$?" = "x0" ; then
+		echo "ERROR: delete of key with subkey succeeded"
+		echo "output:"
+		echo -e "$OUTPUT"
+		false
+		return
+	fi
+
+	${NETREG} deletekey ${KEY} && ${NETREG} deletekey ${KEY2}
+}
+
+test_setvalue()
+{
+	KEY="$1"
+	VALNAME="$2"
+	VALTYPE="$3"
+	VALVALUE="$4"
+
+	test_createkey ${KEY}
+	if test "x$?" != "x0" ; then
+		false
+		return
+	fi
+
+	${NETREG} setvalue ${KEY} ${VALNAME} ${VALTYPE} ${VALVALUE}
+	if test "x$?" != "x0" ; then
+		echo "ERROR: failed to set value testval in key ${KEY}"
+		false
+		return
+	fi
+
+	OUTPUT=`${NETREG} enumerate ${KEY}`
+	if test "x$?" != "x0" ; then
+		echo "ERROR: failure calling enumerate for key ${KEY}"
+		echo output:
+		echo -e "${OUTPUT}"
+		false
+		return
+	fi
+
+	echo -e "$OUTPUT" | {
+	FOUND=0
+	while read LINE ; do
+		SEARCH1=`echo $LINE | grep ^Valuename | grep ${VALNAME}`
+		if test "x$?" = "x0" ; then
+			read LINE
+			read LINE
+			SEARCH2=`echo $LINE | grep "^Value " | grep ${VALVALUE}`
+			if test "x$?" = "x0" ; then
+				FOUND=1
+				break
+			fi
+		fi
+	done
+
+	if test "x$FOUND" != "x1" ; then
+		echo "ERROR: did not find value '${VALNAME}' with enumerate"
+		echo "enumerate output:"
+		echo -e "$OUTPUT"
+		false
+		return
+	fi
+	}
+}
+
+test_deletevalue()
+{
+	KEY="$1"
+	VALNAME="$2"
+
+	${NETREG} deletevalue ${KEY} ${VALNAME}
+}
+
+test_deletevalue_nonexisting()
+{
+	KEY="$1"
+	VALNAME="$2"
+
+	${NETREG} deletevalue ${KEY} ${VALNAME}
+	if test "x$?" = "x0" ; then
+		echo "ERROR: succeeded deleting value ${VALNAME}"
+		false
+	else
+		true
+	fi
+}
+
+test_setvalue_twice()
+{
+	KEY="$1"
+	VALNAME="$2"
+	VALTYPE1="$3"
+	VALVALUE1="$4"
+	VALTYPE2="$5"
+	VALVALUE2="$6"
+
+	OUTPUT=`test_setvalue ${KEY} ${VALNAME} ${VALTYPE1} ${VALVALUE1}`
+	if test "x$?" != "x0" ; then
+		echo -e "$OUTPUT"
+		false
+		return
+	fi
+
+	${NETREG} setvalue ${KEY} ${VALNAME} ${VALTYPE2} ${VALVALUE2}
+}
+
+
+testit "enumerate HKLM" \
+	test_enumerate HKLM || \
+	failed=`expr $failed + 1`
+
+testit "enumerate nonexisting hive" \
+	test_enumerate_nonexisting XYZ || \
+	failed=`expr $failed + 1`
+
+testit "enumerate without key" \
+	test_enumerate_no_key || \
+	failed=`expr $failed + 1`
+
+testit "getsd HKLM" \
+	test_getsd HKLM || \
+	failed=`expr $failed + 1`
+
+testit "create existing HKLM" \
+	test_create_existing || \
+	failed=`expr $failed + 1`
+
+testit "create key" \
+	test_createkey HKLM/testkey || \
+	failed=`expr $failed + 1`
+
+testit "delete key" \
+	test_deletekey HKLM/testkey || \
+	failed=`expr $failed + 1`
+
+testit "delete^2 key" \
+	test_deletekey_nonexisting HKLM/testkey || \
+	failed=`expr $failed + 1`
+
+testit "enumerate nonexisting key" \
+	test_enumerate_nonexisting HKLM/testkey || \
+	failed=`expr $failed +1`
+
+testit "create key with subkey" \
+	test_createkey_with_subkey HKLM/testkey/subkey || \
+	failed=`expr $failed + 1`
+
+testit "delete key with subkey" \
+	test_deletekey_with_subkey HKLM/testkey/subkey || \
+	failed=`expr $failed + 1`
+
+testit "set value" \
+	test_setvalue HKLM/testkey testval sz moin || \
+	failed=`expr $failed + 1`
+
+testit "delete value" \
+	test_deletevalue HKLM/testkey testval || \
+	failed=`expr $failed + 1`
+
+testit "delete nonexisting value" \
+	test_deletevalue_nonexisting HKLM/testkey testval || \
+	failed=`expr $failed + 1`
+
+testit "set value to different type"
+	test_setvalue_twice HKLM/testkey testval sz moin dword 42 || \
+	failed=`expr $failed + 1`
+
+testit "delete key with value" \
+	test_deletekey HKLM/testkey || \
+	failed=`expr $failed + 1`
+
+testok $0 $failed
+
diff --git a/source/script/tests/tests_all.sh b/source/script/tests/tests_all.sh
index e2cfad6..5e21537 100755
--- a/source/script/tests/tests_all.sh
+++ b/source/script/tests/tests_all.sh
@@ -42,6 +42,12 @@ ntlm_auth_s3() {
 	|| failed=`expr $failed + $?`
 }
 
+net_registry() {
+	echo "RUNNING SUBTESTS net_registry"
+	$SCRIPTDIR/test_net_registry.sh \
+	|| failed=`expr $failed + $?`
+}
+
 posix_s3() {
 	echo "RUNNING SUBTESTS posix_s3"
 	eval "$LIB_PATH_VAR="\$SAMBA4SHAREDDIR:\$$LIB_PATH_VAR"; export $LIB_PATH_VAR"
@@ -66,6 +72,7 @@ if test "x$RUNTESTS" = "x" ; then
 	smbclient_s3_encrypted
 	wbinfo_s3
 	ntlm_auth_s3
+	net_registry
 	posix_s3
 else
 	for THIS_TEST in $RUNTESTS; do


-- 
Samba Shared Repository


More information about the samba-cvs mailing list