mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
28ad50e5fd
This makes it easier to reproduce these tests outside the test environment, as we rely less on environment variables. Andrew Bartlett
972 lines
24 KiB
Bash
Executable File
972 lines
24 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Blackbox test for net [rpc] conf.
|
|
#
|
|
# Copyright (C) 2011 Vicentiu Ciorbaru <cvicentiu@gmail.com>
|
|
|
|
if [ $# -lt 3 ]; then
|
|
cat <<EOF
|
|
Usage: test_net_conf.sh SCRIPTDIR SERVERCONFFILE NET CONFIGURATION [rpc]
|
|
EOF
|
|
exit 1;
|
|
fi
|
|
|
|
SCRIPTDIR="$1"
|
|
SERVERCONFFILE="$2"
|
|
NET="$3"
|
|
CONFIGURATION="$4"
|
|
RPC="$5"
|
|
|
|
LOGDIR_PREFIX="conf_test"
|
|
|
|
# remove old logs:
|
|
for OLDDIR in $(find ${PREFIX} -type d -name "${LOGDIR_PREFIX}_*") ; do
|
|
echo "removing old directory ${OLDDIR}"
|
|
rm -rf ${OLDDIR}
|
|
done
|
|
|
|
|
|
NET="$VALGRIND ${NET:-$BINDIR/net} $CONFIGURATION"
|
|
DIR=$(mktemp -d ${PREFIX}/${LOGDIR_PREFIX}_XXXXXX)
|
|
LOG=$DIR/log
|
|
|
|
|
|
if test "x${RPC}" = "xrpc" ; then
|
|
NETCMD="${NET} -U${USERNAME}%${PASSWORD} -I ${SERVER_IP} rpc"
|
|
else
|
|
NETCMD="${NET}"
|
|
fi
|
|
|
|
incdir=`dirname $0`/../../../testprogs/blackbox
|
|
. $incdir/subunit.sh
|
|
|
|
failed=0
|
|
|
|
SED_INVALID_PARAMS="{
|
|
s/lock directory/;&/g
|
|
s/lock dir/;&/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
|
|
s/postscript/;&/g
|
|
}"
|
|
|
|
REGPATH="HKLM\Software\Samba"
|
|
|
|
log_print() {
|
|
RC=$?
|
|
echo "CMD: $*" >>$LOG
|
|
echo "RC: $RC" >> $LOG
|
|
return $RC
|
|
# echo -n .
|
|
}
|
|
|
|
test_conf_addshare()
|
|
{
|
|
echo '\nTesting conf addshare' >> $LOG
|
|
echo ------------------------- >> $LOG
|
|
echo '\nDropping existing configuration' >> $LOG
|
|
|
|
$NETCMD conf drop
|
|
log_print $NETCMD conf drop
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
#create a lot of shares
|
|
for i in $(seq 1 100); do
|
|
if [ $(($i % 2)) -eq 0 ]; then
|
|
$NETCMD conf addshare share$i /tmp "writeable=y" "guest_ok=n" \
|
|
"test comment" >>$DIR/addshare_exp \
|
|
2>>$DIR/addshare_exp
|
|
log_print $NETCMD conf addshare share$i /tmp "writeable=y" "guest_ok=n" \
|
|
"test comment"
|
|
else
|
|
$NETCMD conf addshare share$i /tmp "writeable=n" "guest_ok=y" \
|
|
"test comment" >>$DIR/addshare_exp \
|
|
2>>$DIR/addshare_exp
|
|
log_print $NETCMD conf addshare share$i /tmp "writeable=n" "guest_ok=y" \
|
|
"test comment"
|
|
fi
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
done
|
|
|
|
$NETCMD conf listshares > $DIR/listshares_out
|
|
log_print $NETCMD conf listshares
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
for i in $(seq 1 100); do
|
|
grep "share$i" $DIR/listshares_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: share not found" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
done
|
|
|
|
#check the integrity of the shares
|
|
#if it fails, it can also point to an error in showshare
|
|
for i in $(seq 1 100); do
|
|
$NETCMD conf showshare share$i > $DIR/showshare_out
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "path" $DIR/showshare_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: share not found" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
|
|
if [ $(($i % 2)) -eq 0 ]; then
|
|
grep "read only *= *no" $DIR/showshare_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: share not set correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
else
|
|
grep "read only *= *yes" $DIR/showshare_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: share not set correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
if [ $(($i % 2)) -eq 0 ]; then
|
|
grep "guest ok *= *no" $DIR/showshare_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: share not set correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
else
|
|
grep "guest ok *= *yes" $DIR/showshare_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: share not set correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
fi
|
|
|
|
grep "comment *= *test comment" $DIR/showshare_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: share not set correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
done
|
|
|
|
echo '\nTaking a conf snapshot for later use' >> $LOG
|
|
$NETCMD conf list > $DIR/conf_import_in
|
|
log_print $NETCMD conf list
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
}
|
|
|
|
test_conf_addshare_existing()
|
|
{
|
|
#try adding an already existing share
|
|
echo '\nAdding an already existing share' >>$LOG
|
|
$NETCMD conf addshare share1 /tmp "writeable=n" "guest_ok=y" \
|
|
"test comment" >>$DIR/addshare_exp \
|
|
2>>$DIR/addshare_exp
|
|
log_print $NETCMD conf addshare share1 /tmp "writeable=n" "guest_ok=y" \
|
|
"test comment"
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
test -z `cat $DIR/addshare_exp` && {
|
|
echo "ERROR: addshare output does not match" >> $LOG
|
|
return 1
|
|
}
|
|
|
|
return 0
|
|
}
|
|
|
|
test_conf_addshare_usage()
|
|
{
|
|
#check to see if command prints usage
|
|
echo '\nChecking usage' >>$LOG
|
|
$NETCMD conf addshare > $DIR/addshare_usage_exp
|
|
log_print $NETCMD conf addshare
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 255' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "$RPC *conf addshare" $DIR/addshare_usage_exp >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: no/wrong usage message printed" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_delshare()
|
|
{
|
|
echo '\nTesting conf delshare' >>$LOG
|
|
echo ------------------------- >> $LOG
|
|
echo -n '\n' >> $LOG
|
|
|
|
$NETCMD conf delshare share1
|
|
log_print $NETCMD conf delshare share1
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf listshares > $DIR/listshares_out
|
|
log_print $NETCMD conf listshares
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "share1$" $DIR/listshares_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "0" ]; then
|
|
echo "ERROR: delshare did not delete 'share1'" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_delshare_empty()
|
|
{
|
|
echo '\nAttempting to delete non_existing share'
|
|
$NETCMD conf delshare share1
|
|
log_print $NETCMD conf delshare share1
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 255' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
}
|
|
|
|
test_conf_delshare_usage()
|
|
{
|
|
echo '\nChecking usage' >>$LOG
|
|
$NETCMD conf delshare > $DIR/delshare_usage_exp
|
|
log_print $NETCMD conf delshare
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 255' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "$RPC *conf delshare" $DIR/delshare_usage_exp >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: no/wrong usage message printed" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_drop()
|
|
{
|
|
|
|
echo '\nTesting conf drop' >> $LOG
|
|
echo ------------------------- >> $LOG
|
|
echo '\nDropping existing configuration' >> $LOG
|
|
|
|
$NETCMD conf drop
|
|
log_print $NETCMD conf drop
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
#check to see if listing the configuration yields a blank file
|
|
$NETCMD conf list 1>>$DIR/list_out
|
|
log_print $NETCMD conf list
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
test -z "`cat $DIR/list_out`" || {
|
|
echo "ERROR: Expected list output did not match" | tee -a $LOG
|
|
return 1
|
|
}
|
|
}
|
|
|
|
test_conf_drop_empty()
|
|
{
|
|
#Drop an empty config, see if conf drop fails
|
|
echo '\nAttempting to drop an empty configuration' >>$LOG
|
|
|
|
$NETCMD conf drop
|
|
log_print $NETCMD conf drop
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
#check to see if listing the configuration yields a blank file
|
|
$NETCMD conf list 1>>$DIR/list_out
|
|
log_print $NETCMD conf list
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
test -z "`cat $DIR/list_out`" || {
|
|
echo ERROR:Expected list output did not match >> $LOG
|
|
return 1
|
|
}
|
|
}
|
|
|
|
test_conf_drop_usage()
|
|
{
|
|
#check to see if command prints usage
|
|
echo '\nChecking usage' >>$LOG
|
|
$NETCMD conf drop extra_arg > $DIR/drop_usage_exp
|
|
log_print $NETCMD conf drop extra_arg
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "$RPC *conf drop" $DIR/drop_usage_exp >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: no/wrong usage message printed" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_setparm()
|
|
{
|
|
echo '\nTesting conf setparm' >> $LOG
|
|
echo ------------------------- >> $LOG
|
|
|
|
echo '\nDropping existing configuration' >> $LOG
|
|
$NETCMD conf drop
|
|
log_print $NETCMD conf drop
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf setparm share1 "read only" yes
|
|
log_print $NETCMD conf setparm share1 "read only" yes
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf setparm share1 "path" /tmp/test_path
|
|
log_print $NETCMD conf setparm share1 "path" /tmp/test_path
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf showshare share1 > $DIR/setparm_showshare_out
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "read only *= *yes" $DIR/setparm_showshare_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: setparm did not set correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
|
|
grep "path *= */tmp/test_path" $DIR/setparm_showshare_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: setparm did not set correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_setparm_existing()
|
|
{
|
|
|
|
echo '\nSetting already existing param with the same value'
|
|
$NETCMD conf setparm share1 "read only" yes
|
|
log_print $NETCMD conf setparm share1 "read only" yes
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf setparm share1 "read only" yes
|
|
log_print $NETCMD conf setparm share1 "read only" yes
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf showshare share1 > $DIR/setparm_existing_showshare_out
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "read only *= *yes" $DIR/setparm_existing_showshare_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: setparm did not set correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
|
|
$NETCMD conf setparm share1 "read only" no
|
|
log_print $NETCMD conf setparm share1 "read only" no
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf showshare share1 > $DIR/setparm_existing_showshare_out
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "read only *= *no" $DIR/setparm_existing_showshare_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: setparm did not set correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_setparm_usage()
|
|
{
|
|
echo '\nChecking usage' >>$LOG
|
|
$NETCMD conf setparm > $DIR/setparm_usage_exp
|
|
log_print $NETCMD conf setparm
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "$RPC *conf setparm" $DIR/setparm_usage_exp >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: setparm no/wrong usage message printed" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_delparm_delete_existing()
|
|
{
|
|
echo '\nTesting conf delparm' >> $LOG
|
|
echo ------------------------- >> $LOG
|
|
echo -n '\n' >>$LOG
|
|
|
|
$NETCMD conf drop
|
|
log_print $NETCMD conf drop
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf addshare share1 /tmp "writeable=y" "guest_ok=n" \
|
|
"test comment"
|
|
log_print $NETCMD conf addshare share$i /tmp "writeable=y" "guest_ok=n" \
|
|
"test comment"
|
|
|
|
$NETCMD conf delparm share1 "path"
|
|
log_print $NETCMD conf delparm share1 "path"
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf showshare share1 > $DIR/delparm_showshare_out
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
#test to see what delparm did delete and how
|
|
grep "read only *= *no" $DIR/delparm_showshare_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: delparm did not delete correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
|
|
grep "path *= */tmp" $DIR/delparm_showshare_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "0" ]; then
|
|
echo "ERROR: delparm did not delete correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_delparm_delete_non_existing()
|
|
{
|
|
echo '\nDelete non existing share' >> $LOG
|
|
|
|
$NETCMD conf drop
|
|
log_print $NETCMD conf drop
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf delparm share1 "path"
|
|
log_print $NETCMD conf delparm share1 "path"
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 255' | tee -a $LOG
|
|
return 1
|
|
}
|
|
}
|
|
|
|
test_conf_delparm_usage()
|
|
{
|
|
|
|
echo '\nChecking usage' >>$LOG
|
|
$NETCMD conf delparm > $DIR/delparm_usage_exp
|
|
log_print $NETCMD conf delparm
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 255' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "$RPC *conf delparm" $DIR/delparm_usage_exp >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: delparm no/wrong usage message printed" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
|
|
}
|
|
|
|
test_conf_getparm()
|
|
{
|
|
|
|
echo '\nTesting conf getparm' >> $LOG
|
|
echo ------------------------- >> $LOG
|
|
echo -n '\n' >>$LOG
|
|
|
|
$NETCMD conf drop
|
|
log_print $NETCMD conf drop
|
|
test "x$?" = "x0" || {
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf addshare share1 /tmp/path_test "writeable=n" "guest_ok=n" \
|
|
"test comment"
|
|
log_print $NETCMD conf addshare share$i /tmp/path_test "writeable=n" "guest_ok=n" \
|
|
"test comment"
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf getparm share1 "read only" >$DIR/getparm_out
|
|
log_print $NETCMD conf getparm share1 "read only"
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf getparm share1 "read only" >$DIR/getparm_out
|
|
log_print $NETCMD conf getparm share1 "read only"
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
echo yes >$DIR/getparm_exp
|
|
diff -q $DIR/getparm_out $DIR/getparm_exp >> $LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: getparm did not print correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
|
|
$NETCMD conf getparm share1 "path" >$DIR/getparm_out
|
|
log_print $NETCMD conf getparm share1 "path"
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
echo /tmp/path_test >$DIR/getparm_exp
|
|
diff -q $DIR/getparm_out $DIR/getparm_exp >> $LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: getparm did not print correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_getparm_usage()
|
|
{
|
|
echo '\nChecking usage' >>$LOG
|
|
$NETCMD conf getparm > $DIR/getparm_usage_exp
|
|
log_print $NETCMD conf getparm
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 255' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "$RPC *conf getparm" $DIR/getparm_usage_exp >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: getparm no/wrong usage message printed" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
|
|
}
|
|
|
|
test_conf_getparm_non_existing()
|
|
{
|
|
echo '\nTesting getparm non existing' >>$LOG
|
|
$NETCMD conf getparm fictional_share fictional_param
|
|
log_print $NETCMD conf getparm fictional_share fictional_param
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 255' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf getparm share1 fictional_param
|
|
log_print $NETCMD conf getparm share1 fictional_param
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 255' | tee -a $LOG
|
|
return 1
|
|
}
|
|
}
|
|
|
|
test_conf_setincludes()
|
|
{
|
|
echo '\nTesting conf setincludes' >> $LOG
|
|
echo ------------------------- >> $LOG
|
|
echo '\nDropping existing configuration' >> $LOG
|
|
|
|
$NETCMD conf drop
|
|
log_print $NETCMD conf drop
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf addshare tmp_share /tmp
|
|
log_print $NETCMD conf addshare tmp_share /tmp
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf setincludes tmp_share /tmp/include1 /tmp/include2 /tmp/include3
|
|
log_print $NETCMD conf setincludes tmp_share /tmp/include1 /tmp/include2 /tmp/include3
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf list > $DIR/setincludes_list_out
|
|
log_print $NETCMD conf list
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "include *= */tmp/include1$" $DIR/setincludes_list_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: setincludes did not set correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
|
|
grep "include *= */tmp/include2$" $DIR/setincludes_list_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: setincludes did not set correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
|
|
grep "include *= */tmp/include3$" $DIR/setincludes_list_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: setincludes did not set correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
|
|
}
|
|
|
|
test_conf_setincludes_usage()
|
|
{
|
|
echo '\nChecking usage' >>$LOG
|
|
$NETCMD conf setincludes > $DIR/setincludes_usage_exp
|
|
log_print $NETCMD conf setincludes
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 255' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "$RPC *conf setincludes" $DIR/setincludes_usage_exp >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: no/wrong usage message printed" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_getincludes()
|
|
{
|
|
$NETCMD conf getincludes tmp_share > $DIR/getincludes_out
|
|
log_print $NETCMD conf getincludes tmp_share
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "include *= */tmp/include1$" $DIR/getincludes_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: getincludes did not print correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
|
|
grep "include *= */tmp/include2$" $DIR/getincludes_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: getincludes did not print correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
grep "include *= */tmp/include3$" $DIR/getincludes_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: getincludes did not print correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_getincludes_usage()
|
|
{
|
|
$NETCMD conf getincludes > $DIR/getincludes_usage_exp
|
|
log_print $NETCMD conf getincludes
|
|
|
|
grep "$RPC *conf getincludes" $DIR/getincludes_usage_exp >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: no/wrong usage message printed" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_delincludes()
|
|
{
|
|
echo '\nTesting conf delincludes' >> $LOG
|
|
echo ------------------------- >> $LOG
|
|
|
|
$NETCMD conf delincludes tmp_share
|
|
log_print $NETCMD conf delincludes tmp_share
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf list > $DIR/delincludes_list_out
|
|
log_print $NETCMD conf list
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "include" $DIR/delincludes_list_out >/dev/null 2>>$LOG
|
|
if [ "$?" = "0" ]; then
|
|
echo "ERROR: delincludes did not delete correctly" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_delincludes_empty()
|
|
{
|
|
$NETCMD conf delincludes tmp_share
|
|
log_print $NETCMD conf delincludes tmp_share
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf delincludes fictional_share
|
|
log_print $NETCMD conf delincludes fictional_share
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 255' | tee -a $LOG
|
|
return 1
|
|
}
|
|
return 0
|
|
}
|
|
|
|
test_conf_delincludes_usage()
|
|
{
|
|
echo '\nChecking usage' >>$LOG
|
|
$NETCMD conf delincludes > $DIR/delincludes_usage_exp
|
|
log_print $NETCMD conf delincludes
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 255' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "$RPC *conf delincludes" $DIR/delincludes_usage_exp >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: no/wrong usage message printed" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_import()
|
|
{
|
|
echo '\nTesting conf import' >> $LOG
|
|
echo ------------------------- >> $LOG
|
|
echo '\nDropping existing configuration' >> $LOG
|
|
|
|
$NETCMD conf drop
|
|
log_print $NETCMD conf drop
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf import $DIR/conf_import_in
|
|
log_print $NETCMD conf drop
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
$NETCMD conf list > $DIR/conf_import_out
|
|
log_print $NETCMD conf list
|
|
test "x$?" = "x0" || {
|
|
echo 'ERROR: RC does not match, expected: 0' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
diff -q $DIR/conf_import_in $DIR/conf_import_out >> $LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: import failed" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
test_conf_import_usage()
|
|
{
|
|
echo '\nChecking usage' >>$LOG
|
|
$NETCMD conf import > $DIR/import_usage_exp
|
|
log_print $NETCMD conf import
|
|
test "x$?" = "x255" || {
|
|
echo 'ERROR: RC does not match, expected: 255' | tee -a $LOG
|
|
return 1
|
|
}
|
|
|
|
grep "$RPC *conf import" $DIR/import_usage_exp >/dev/null 2>>$LOG
|
|
if [ "$?" = "1" ]; then
|
|
echo "ERROR: conf import no/wrong usage message printed" | tee -a $LOG
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
CONF_FILES=$SERVERCONFFILE
|
|
|
|
testit "conf_drop" \
|
|
test_conf_drop \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_drop_empty" \
|
|
test_conf_drop_empty \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_drop_usage" \
|
|
test_conf_drop_usage \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_addshare" \
|
|
test_conf_addshare \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_addshare_existing" \
|
|
test_conf_addshare_existing \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_addshare_usage" \
|
|
test_conf_addshare_usage \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_delshare" \
|
|
test_conf_delshare \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_delshare_empty" \
|
|
test_conf_delshare_empty \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_delshare_usage" \
|
|
test_conf_delshare_usage \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_setparm" \
|
|
test_conf_setparm \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_setparm_existing" \
|
|
test_conf_setparm_existing \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_setparm_usage" \
|
|
test_conf_setparm_usage \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_delparm_delete_existing" \
|
|
test_conf_delparm_delete_existing \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_delparm_delete_non_existing" \
|
|
test_conf_delparm_delete_non_existing \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_delparm_delete_usage" \
|
|
test_conf_delparm_usage \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_getparm" \
|
|
test_conf_getparm \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_getparm_usage" \
|
|
test_conf_getparm_usage \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_setincludes" \
|
|
test_conf_setincludes \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_setincludes_usage" \
|
|
test_conf_setincludes_usage \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_getincludes" \
|
|
test_conf_getincludes \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_getincludes_usage" \
|
|
test_conf_getincludes_usage \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_delincludes" \
|
|
test_conf_delincludes \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_delincludes_empty" \
|
|
test_conf_delincludes_usage \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_delincludes_usage" \
|
|
test_conf_delincludes_empty \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_import" \
|
|
test_conf_import \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
testit "conf_import_usage" \
|
|
test_conf_import_usage \
|
|
|| failed=`expr $failed + 1`
|
|
|
|
if [ $failed -eq 0 ]; then
|
|
rm -r $DIR
|
|
fi
|
|
|
|
testok $0 $failed
|
|
|