From 3aeee79096e7a3c4f1467228d5cbee6986866400 Mon Sep 17 00:00:00 2001 From: Tim Prouty Date: Sun, 25 Jan 2009 14:38:44 -0800 Subject: [PATCH] s3 make test: Add the ability to specify a custom smb.conf for make test - Adds new -c option to selftest.sh that when specified adds a line to make test's server.conf: "include " - Adds getopts processing to selftest.sh - Changes selftest.sh shrdir arg to use -s - Changes selftest.sh smbtorture4_path arg to use -t - Adds configure option --with-selftest-custom-conf= - Updates Makefile.in to take advantage of the new/changed parameters --- source3/Makefile.in | 18 +++++++++-- source3/m4/check_path.m4 | 19 +++++++++++ source3/script/tests/selftest.sh | 55 +++++++++++++++++++++++++------- 3 files changed, 79 insertions(+), 13 deletions(-) diff --git a/source3/Makefile.in b/source3/Makefile.in index cbbf821b2210..a1873eb6d5cb 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -19,6 +19,7 @@ datarootdir=@datarootdir@ selftest_prefix=@selftest_prefix@ selftest_shrdir=@selftest_shrdir@ smbtorture4_path=@smbtorture4_path@ +selftest_custom_conf=@selftest_custom_conf@ LIBS=@LIBS@ CC=@CC@ @@ -2928,9 +2929,22 @@ test_pam_modules:: pam_modules ## ## Targets for 'make test' ## + +ifdef smbtorture4_path +smbtorture4_path_arg=-t ${smbtorture4_path} +endif + +ifdef selftest_shrdir +selftest_shrdir_arg=-s ${selftest_shrdir} +endif + +ifdef selftest_custom_conf +selftest_custom_conf_arg=-c ${selftest_custom_conf} +endif + test:: all torture timelimit @echo Running Test suite - @LIB_PATH_VAR=$(LIB_PATH_VAR) PERL="$(PERL)" $(srcdir)/script/tests/selftest.sh ${selftest_prefix} all "${smbtorture4_path}" ${selftest_shrdir} + @LIB_PATH_VAR=$(LIB_PATH_VAR) PERL="$(PERL)" $(srcdir)/script/tests/selftest.sh ${selftest_prefix} all ${smbtorture4_path_arg} ${selftest_shrdir_arg} ${selftest_custom_conf_arg} valgrindtest:: all torture timelimit @echo Running Test suite with valgrind @@ -2939,7 +2953,7 @@ valgrindtest:: all torture timelimit WINBINDD_VALGRIND="xterm -n winbindd -e valgrind -q --db-attach=yes --num-callers=30" \ SMBD_VALGRIND="xterm -n smbd -e valgrind -q --db-attach=yes --num-callers=30" \ VALGRIND="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/valgrind.log" \ - PERL="$(PERL)" $(srcdir)/script/tests/selftest.sh ${selftest_prefix} all "${smbtorture4_path}" + PERL="$(PERL)" $(srcdir)/script/tests/selftest.sh ${selftest_prefix} all ${smbtorture4_path_arg} ${selftest_shrdir_arg} ${selftest_custom_conf_arg} SELFTEST_FORMAT = plain selftestdir = ../selftest diff --git a/source3/m4/check_path.m4 b/source3/m4/check_path.m4 index 444ea1c40105..962e2765a030 100644 --- a/source3/m4/check_path.m4 +++ b/source3/m4/check_path.m4 @@ -361,6 +361,25 @@ AC_ARG_WITH(smbtorture4_path, esac ]) +################################################# +# set custom conf for make test +selftest_custom_conf="" +AC_SUBST(selftest_custom_conf) +AC_ARG_WITH(selftest_custom_conf, +[AS_HELP_STRING([--with-selftest-custom-conf=PATH], [An optional custom smb.conf that is included in the server smb.conf during make test(none)])], +[ case "$withval" in + yes|no) + AC_MSG_ERROR([--with-selftest-custom-conf should take a path]) + ;; + * ) + selftest_custom_conf="$withval" + if test -z "$selftest_custom_conf" -a ! -f $selftest_custom_conf; then + AC_MSG_ERROR(['$selftest_custom_conf' does not exist!]) + fi + ;; + esac +]) + ## check for --enable-debug first before checking CFLAGS before ## so that we don't mix -O and -g debug=no diff --git a/source3/script/tests/selftest.sh b/source3/script/tests/selftest.sh index 94fd791b51c2..ea2260d32d8f 100755 --- a/source3/script/tests/selftest.sh +++ b/source3/script/tests/selftest.sh @@ -1,17 +1,44 @@ #!/bin/sh -if [ $# != 3 -a $# != 4 ]; then - echo "$0 []" +if [ $# -lt 2 ]; then + echo "$0 [-t ] [-s ] " \ + "[-c ]" exit 1 fi -SMBTORTURE4=$3 -SUBTESTS=$2 +## +## Setup the required args +## +DIRECTORY=$1; shift; +SUBTESTS=$1; shift; + +## +## Parse oprtional args +## +while getopts s:c:t: f +do + case $f in + t) SMBTORTURE4=$OPTARG;; + s) ALT_SHRDIR_ARG=$OPTARG;; + c) CUSTOM_CONF_ARG=$OPTARG;; + esac +done + +echo "Running selftest with the following" +echo "Selftest Directory:\t\t$DIRECTORY" +echo "Subtests to Run:\t\t$SUBTESTS" +echo "smbtorture4 Path:\t\t$SMBTORTURE4" +echo "Alternative Share Dir:\t\t$ALT_SHRDIR_ARG" +echo "Custom Configuration:\t\t$CUSTOM_CONF_ARG" + +if [ $CUSTOM_CONF_ARG ]; then + INCLUDE_CUSTOM_CONF="include = $CUSTOM_CONF_ARG" +fi ## ## create the test directory ## -PREFIX=`echo $1 | sed s+//+/+` +PREFIX=`echo $DIRECTORY | sed s+//+/+` mkdir -p $PREFIX || exit $? OLD_PWD=`pwd` cd $PREFIX || exit $? @@ -68,8 +95,10 @@ export WINBINDD_SOCKET_DIR WINBINDD_PRIV_PIPE_DIR PATH=bin:$PATH export PATH -SAMBA4BINDIR=`dirname $SMBTORTURE4` -SAMBA4SHAREDDIR="$SAMBA4BINDIR/shared" +if [ $SMBTORTRE4 ]; then + SAMBA4BINDIR=`dirname $SMBTORTURE4` + SAMBA4SHAREDDIR="$SAMBA4BINDIR/shared" +fi export SAMBA4SHAREDDIR export SMBTORTURE4 @@ -116,8 +145,8 @@ chmod 755 $WINBINDD_SOCKET_DIR ## ## Create an alternate shrdir if one was specified. ## -if [ $# = 4 ]; then - ALT_SHRDIR=`echo $4 | sed s+//+/+` +if [ $ALT_SHRDIR_ARG ]; then + ALT_SHRDIR=`echo $ALT_SHRDIR_ARG | sed s+//+/+` mkdir -p $ALT_SHRDIR || exit $? OLD_PWD=`pwd` cd $ALT_SHRDIR || exit $? @@ -200,8 +229,6 @@ cat >$SERVERCONFFILE<$SERVERCONFFILE<