blob: e4d94d4402a53b8bbbb512ef7063923f3ccff2d6 [file]
if echo -n | grep n > /dev/null 2>&1; then
prompt() {
echo "$*\c"
}
else
prompt() {
echo -n "$*"
}
fi
if ps auxw > /dev/null 2>&1; then
PS='ps auxw'
else
PS='ps -ef'
fi
if (whoami) > /dev/null 2>&1; then
USER=`whoami`
elif (id) > /dev/null 2>&1; then
USER=`id | cut -d'(' -f2 | cut -d')' -f1`
# the remaining two tests work only if "su -" was used
# perhaps delete them
elif (logname) > /dev/null 2>&1; then
USER=`logname`
elif (who am i) > /dev/null 2>&1; then
USER=`who am i | cut -d' ' -f1 | cut -d'!' -f2`
else
echo "Could not determine current user name, using 'nobody'"
USER='nobody'
fi
SQLUSER='' # must be empty
# Set if we've found bug from old version
BUG=''
# Use subdb plugin
SUBDB=''
# process arguments
while [ ! -z "$1" ]; do # not everyone has getopt :-(
case "$1" in
-s)
SUBDB="$2"; shift; shift;;
-d)
DB="$2"; shift; shift;;
-h)
SQLHOST="$2"; shift; shift;;
-p)
PW="$2"; shift; shift;;
-u)
SQLUSER="$2"; shift; shift;;
-t)
TABLE="$2"; shift; shift;;
--)
shift; break;;
*)
echo "$i"
echo "Usage: ezmlm-test [-/]" \
"[-s plugin [-p sqlpassword] [-u sqluser] [-d sqldb]" \
"[-t sqltable] [-h sqlhost]]"
echo
echo "args have to be separated from switches!"
echo
echo "defaults: -s [empty - use standard subdb]"
echo " -d ezmlm"
echo " -h [empty => plugin default]"
echo " -p [empty]"
echo " -s 1 [run test from beginning]"
echo " -t list"
echo " -u eztest"
echo
exit 99;;
esac
done
# calculate position in LIST where [normally] default starts
LISTLEN=`echo "$LIST-" | wc -c | sed 's/ //g'`
REJLEN=`echo "$LIST-reject-" | wc -c | sed 's/ //g'`
ACCLEN=`echo "$LIST-accept-" | wc -c | sed 's/ //g'`
DOT="$DIR/dot.qmail-$LIST"
HOST="example.com"
# test addresses.
SND="sender"
MOD="moderator"
DIG="digest"
MAN="manager"
BNC="bouncer"
if [ ! -x "${EZBIN}/ezmlm-make" ]; then
echo "can't execute ${EZBIN}/ezmlm-make. Most likely, you"
echo "doen't have execute permission to files in directory"
echo "``${EZBIN}''. Adjust permissions or execute the script"
echo "as a user with the appropriate permissions."
exit 99
fi
########################
# remove old test list #
########################
if [ -n "$SUBDB" ]; then
${EZBIN}/ezmlm-unsub "$DIR" digest "${MAN}@$HOST" "${DIG}@$HOST" \
>"$ERR" 2>&1
${EZBIN}/ezmlm-unsub "$DIR" mod "${MOD}@$HOST" \
>"$ERR" 2>&1
${EZBIN}/ezmlm-unsub "$DIR" allow "aaa@bbb" "ccc@ddd" "eee@fff" \
>"$ERR" 2>&1
fi
rm -rf "$DIR" "$ERR" >/dev/null 2>&1
test -e "$DIR" \
&& fatal "Could not remove old list"
#################
# check version #
#################
THIS_VER=`${EZBIN}/ezmlm-make -V 2>&1` || \
fatal "This program only works with ezmlm-idx"
THIS_VER=`echo "$THIS_VER" | cut -d' ' -f3`
if [ "$THIS_VER" != "$VER" ]; then
echo "Warning: These tests were built for $VER but the programs being"
echo " tested are version $THIS_VER. Some errors may result from"
echo " this version mis-match."
fi
# Set BADUNSET if unset doesn't do the job
A='a'
export A
unset A
[ -z "$A" ] || BADUNSET='y'
unset DEFAULT
QMAILHOME="$DIR"
QMAILQUEUE="$QQTEST"
EZMLM_BIN="$EZBIN"
EZMLM_ETC="$EZBIN"/lang
EZMLM_LIB="$EZBIN"
export DEFAULT LOCAL QMAILHOME QMAILQUEUE SENDER EZMLM_BIN EZMLM_ETC EZMLM_LIB