#/bin/sh # -h news-muc1.de.cw.net # -h news-ffm2.de.cw.net # -h news-dus2.de.cw.net # -h news.ecrc.de # -h dev16 post1000 () { for h in 0 1 2 3 4 5 6 7 8 9 do for z in 0 1 2 3 4 5 6 7 8 9 do for e in 0 1 2 3 4 5 6 7 8 9 do echo -n $h$z$e newmsg sendmail cat $STDIN \ | sendmail -i posting+$h$z$e@dev12.dev.de.cw.net done done done } lmtp() { newmsg lmtp cat $STDIN \ | ../lmtp2nntp -l $1:$FILE -w 1 -d $2 -g $2 -b dev12 -h dev16,141.1.23.116:nntp -h dev16.de.cw.net:119 $3 >/dev/null; echo $? #| ../lmtp2nntp -l $1:$FILE -w 1 -d 255/2.5.5 -g $3 -b 127.0.0.1 $4 >/dev/null; echo $? #| ../lmtp2nntp -l $1:$FILE -w 1 -d $2 -g $3 -b 127.0.0.1 -h 127.0.0.2 $4 >/dev/null; echo $? } sendmaildup() { newmsg sendmail cat $STDIN \ | sendmail -i posting+cw.de.sd.apps.dev.test@dev12.dev.de.cw.net cat $STDIN \ | sendmail -i posting+cw.de.sd.apps.dev.test@dev12.dev.de.cw.net } newmsg() { if [ -r testmessage.via$1 ] then awk " } /^Subject:/ { gotit = 1; print "Subject: [" pid "] " $2 } { if (gotit == 0) { print }; gotit = 0 } ' | tee 2>&1 >/dev/null $STDIN else echo "ERROR: file testmessage.via$1 not readable!" exit 1 fi } prolog () { h="H" z="Z" e="E" for i in $FILE $STDIN $STDOUT $STDERR dmalloc.log do if [ -e $i ]; then rm -f $i fi touch $i chmod 666 $i done } epilog () { if [ -r $FILE ] then read DUMMY less -S $FILE fi if [ -r dmalloc.log ] then read DUMMY less -S dmalloc.log fi } # lmtp feed arg # lmtp post envelope '*.test.* cw.*.dev.*' # lmtp post header '*.test.* cw.*.dev.* *foo*' # lmtp feed envelope # lmtp post envelope # sendmaildup # post1000 LOG="trace" FILE="stdlog" STDIN="stdin" STDOUT="stdout" STDERR="stderr" LOCAL="0.0.0.0" HOST="0.0.0.0" GROUP="my.test" MFILT=".+@(?:[^.]+\.)*cw\.com" NODE="gateway" # make check with automatic succeed/ fail message. # more samples and testing below. newmsg lmtp # check -v option prints out version, typical output: lmtp2nntp 0.9.4 # (30-Aug-2001) prolog ../lmtp2nntp -v >$STDOUT 2>$STDERR RC=`cat $STDOUT | egrep 'lmtp2nntp[ ]+[0-9]+\.[0-9]\.[0-9][ ]+\([0-9]+-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-[0-9]{4}\)' | wc -l` if [ $RC -ne 1 -o -s $STDERR ]; then echo "CHECK ERROR: version test failed $RC" exit 1; fi echo "CHECK version test succeeded" # check -? option prints out usage, typical output: USAGE: ../lmtp2nntp # lmtp2nntp [-b bindaddr[:port]] [-d deliverymode] [-g groupmode] [-h # host[:port][,host[:port], ...]] [-m mailfrom] [-n nodename] [-s size] [-l # level[:logfile]] [-v] [-w waittime] newsgroup [newsgroup ...] prolog ../lmtp2nntp -? >$STDOUT 2>$STDERR RC=`cat $STDERR | egrep -- '-b.*-d.*-g.*-h.*-m.*-n.*-s.*-l.*-v.*-w.*newsgroup' | wc -l` if [ $RC -ne 1 -o -s $STDOUT ]; then echo "CHECK ERROR: usage test failed" exit 1; fi echo "CHECK usage test succeeded" # check dummy posting #set -v -x prolog newmsg lmtp ../lmtp2nntp <$STDIN -b $LOCAL -d 250/2.0.0 -g arg -h $HOST -l $LOG:$FILE -m "$MFILT" -n $NODE -s 1000 -w 1 $GROUP >$STDOUT 2>$STDERR ; RC=$ set +v +x RC=""; if [ 1 -eq `cat $STDOUT | egrep '^220[ ]+LMTP Service ready' | wc -l` ]; then RC="${RC}LHLO "; fi if [ 1 -eq `cat $STDOUT | egrep '^250 2.1.0 Sender ok' | wc -l` ]; then RC="${RC}MAIL "; fi if [ 3 -eq `cat $STDOUT | egrep '^250 2.1.5 Recipient accepted' | wc -l` ]; then RC="${RC}RCPT "; fi if [ 1 -eq `cat $STDOUT | egrep '^354 Enter mail' | wc -l` ]; then RC="${RC}DATA "; fi if [ 3 -eq `cat $STDOUT | egrep '^250-2.0.0 NNTP noop fake' | wc -l` ]; then RC="${RC}post "; fi if [ 1 -eq `cat $STDOUT | egrep '^221 2.0.0.+closing.+channel' | wc -l` ]; then RC="${RC}QUIT "; fi if [ "$RC" != "LHLO MAIL RCPT DATA post QUIT " ]; then echo "CHECK ERROR: fake post test failed" exit 1; fi echo "CHECK fake post test succeeded" echo "CHECK COMPLETE AND PASSED" exit 0 # # BELOW ARE INTERAL TESTS. CONSIDER THEM AS EXAMPLE. # HOST="dev16,141.1.23.116:nntp -h dev16.de.cw.net:119" GROUP="cw.de.sd.apps.dev.test" newmsg lmtp ../lmtp2nntp <$STDIN -b $LOCAL -d post -g arg -h $HOST -l $LOG:$FILE -m "$MFILT" -n $NODE -s 1000 -w 1 $GROUP >$STDOUT 2>$STDERR ; RC=$ #./lmtp2nntp <$STDIN -b $LOCAL -d 250/2.0.0 -g arg -h $HOST -l $LOG:$FILE -m "$MFILT" -n $NODE -s 1000 -w 1 $GROUP >$STDOUT 2>$STDERR ; RC=$ /dev/null; echo $? #newmsg sendmail # sendmail -i <$STDIN -V nase123baer posting+$GROUP@$LOCAL after exit 0