mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
test: add test script for testing "net registry".
Michael
(This used to be commit fa5968a26b
)
This commit is contained in:
parent
161db3e8e8
commit
96801c3f63
378
source3/script/tests/test_net_registry.sh
Executable file
378
source3/script/tests/test_net_registry.sh
Executable file
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user