From 8daa83a594a2e98f39d764422bfbdbc62c9efd44 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Fri, 19 Apr 2024 19:20:00 +0200 Subject: Adding upstream version 2:4.20.0+dfsg. Signed-off-by: Daniel Baumann --- source3/script/tests/test_net_conf.sh | 1042 +++++++++++++++++++++++++++++++++ 1 file changed, 1042 insertions(+) create mode 100755 source3/script/tests/test_net_conf.sh (limited to 'source3/script/tests/test_net_conf.sh') diff --git a/source3/script/tests/test_net_conf.sh b/source3/script/tests/test_net_conf.sh new file mode 100755 index 0000000..7a70a9b --- /dev/null +++ b/source3/script/tests/test_net_conf.sh @@ -0,0 +1,1042 @@ +#!/bin/sh +# +# Blackbox test for net [rpc] conf. +# +# Copyright (C) 2011 Vicentiu Ciorbaru + +if [ $# -lt 3 ]; then + cat <>$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_showshare_case() +{ + echo '\nChecking case in net conf shareshare' >>$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 + } + + for share in UPPERCASE lowercase; do + + log_print $NETCMD conf addshare $share /tmp + $NETCMD conf addshare $share /tmp \ + >>$DIR/case_addshare_exp \ + 2>>$DIR/case_addshare_exp + + # Lookup share in different case, check that output has + # share name in correct case. + switch_case=$(echo $share | tr 'A-Za-z' 'a-zA-Z') + log_print $NETCMD conf showshare $switch_case + $NETCMD conf showshare $switch_case >$DIR/showshare_out + test "x$?" = "x0" || { + echo 'ERROR: net conf showshare failed.' | tee -a $LOG + return 1 + } + + grep "\[$share\]" $DIR/showshare_out >/dev/null 2>>$LOG + if [ "$?" = "1" ]; then + echo "ERROR: share not found" | tee -a $LOG + return 1 + fi + done + +} + +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_forbidden() +{ + FORBIDDEN_PARAMS="state directory +lock directory +lock dir +config backend +include" + + echo '\nTrying to set forbidden parameters' >>$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 + } + + OLD_IFS="$IFS" + IFS=' +' + for PARAM in $FORBIDDEN_PARAMS; do + IFS="$OLD_IFS" + echo "Trying to set parameter '$PARAM'" | tee -a $LOG + $NETCMD conf setparm global "$PARAM" "value" >$DIR/setparm_forbidden_out 2>&1 + log_print $NETCMD conf setparm global \""$PARAM"\" "value" + test "x$?" = "x0" && { + echo "ERROR: setting forbidden parameter '$PARAM' succeeded" | tee -a $LOG + return 1 + } + + echo "output of net command: " | tee -a $LOG + cat $DIR/setparm_forbidden_out | tee -a $LOG + + SEARCH="Parameter '$PARAM' not allowed in registry." + grep "$SEARCH" $DIR/setparm_forbidden_out >/dev/null 2>>$LOG + test "x$?" = "x0" || { + echo "ERROR: expected '$SEARCH'" | tee -a $LOG + return 1 + } + done + + IFS="$OLD_IFS" + return 0 +} + +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 "test_conf_showshare_case" \ + test_conf_showshare_case || + 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_forbidden" \ + test_conf_setparm_forbidden || + 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 -- cgit v1.2.3