summaryrefslogtreecommitdiff
path: root/source3/script
diff options
context:
space:
mode:
Diffstat (limited to 'source3/script')
-rwxr-xr-xsource3/script/tests/test_net_registry.sh88
1 files changed, 88 insertions, 0 deletions
diff --git a/source3/script/tests/test_net_registry.sh b/source3/script/tests/test_net_registry.sh
index 0d5916ebba..525e13a811 100755
--- a/source3/script/tests/test_net_registry.sh
+++ b/source3/script/tests/test_net_registry.sh
@@ -345,6 +345,93 @@ take_administrative_rights()
fi
}
+SED_INVALID_PARAMS="{
+s/lock directory/;&/g
+s/modules dir/;&/g
+s/logging/;&/g
+s/status/;&/g
+s/logdir/;&/g
+s/read prediction/;&/g
+s/mkprofile/;&/g
+s/valid chars/;&/g
+s/timesync/;&/g
+s/sambaconf/;&/g
+s/logtype/;&/g
+s/servername/;&/g
+}"
+
+REGPATH="HKLM\Software\Samba"
+
+conf_roundtrip_step() {
+ echo $* >>$LOG
+ $@ 2>>$LOG
+# echo -n .
+}
+
+conf_roundtrip()
+{
+ local DIR=$(mktemp -d --tmpdir=$PREFIX conf_roundtrip_XXXX)
+ local LOG=$DIR/log
+
+ echo conf_roundtrip $1 > $LOG
+
+ sed -e "$SED_INVALID_PARAMS" $1 >$DIR/conf_in
+
+ conf_roundtrip_step $NET conf drop
+ test -z "$($NET conf list)" 2>>$LOG
+ if [ "$?" = "1" ]; then
+ echo "ERROR: conf drop failed" | tee -a $LOG
+ return 1
+ fi
+
+ conf_roundtrip_step $NET conf import $DIR/conf_in
+ conf_roundtrip_step $NET conf list > $DIR/conf_exp
+
+ grep "\[global\]" $DIR/conf_exp >/dev/null 2>>$LOG
+ if [ "$?" = "1" ]; then
+ echo "ERROR: conf import => conf export failed" | tee -a $LOG
+ return 1
+ fi
+
+ conf_roundtrip_step $NET -d10 registry export $REGPATH $DIR/conf_exp.reg
+
+ conf_roundtrip_step $NET conf drop
+ test -z "$($NET conf list)" 2>>$LOG
+ if [ "$?" = "1" ]; then
+ echo "ERROR: conf drop failed" | tee -a $LOG
+ return 1
+ fi
+
+ conf_roundtrip_step $NET registry import $DIR/conf_exp.reg
+
+ conf_roundtrip_step $NET conf list >$DIR/conf_out
+ diff -q $DIR/conf_out $DIR/conf_exp >> $LOG
+ if [ "$?" = "1" ]; then
+ echo "ERROR: registry import => conf export failed" | tee -a $LOG
+ return 1
+ fi
+
+ conf_roundtrip_step $NET registry export $REGPATH $DIR/conf_out.reg
+ diff -q $DIR/conf_out.reg $DIR/conf_exp.reg >>$LOG
+ if [ "$?" = "1" ]; then
+ echo "Error: registry import => registry export failed" | tee -a $LOG
+ return 1
+ fi
+ rm -r $DIR
+}
+
+CONF_FILES=${CONF_FILES:-$(find $SRCDIR/.. -name *.conf | xargs grep -l "\[global\]")}
+
+for conf_file in $CONF_FILES
+do
+ conf_file=${conf_file#$SRCDIR/}
+ testit "conf_roundtrip $conf_file" \
+ conf_roundtrip $conf_file \
+ || failed=`expr $failed + 1`
+done
+
+
+
if test "x${RPC}" = "xrpc" ; then
testit "giving user ${USERNAME} administrative rights" \
give_administrative_rights
@@ -439,5 +526,6 @@ testit "taking administrative rights from user ${USERNAME}" \
failed=`expr $failed + 1`
fi
+
testok $0 $failed