summaryrefslogtreecommitdiff
path: root/qa/589
diff options
context:
space:
mode:
Diffstat (limited to 'qa/589')
-rwxr-xr-xqa/58987
1 files changed, 87 insertions, 0 deletions
diff --git a/qa/589 b/qa/589
new file mode 100755
index 0000000..215a8c0
--- /dev/null
+++ b/qa/589
@@ -0,0 +1,87 @@
+#!/bin/sh
+# PCP QA Test No. 589
+# make sure that telnet-probe does what its supposed to
+#
+# Copyright (c) 1995-2002 Silicon Graphics, Inc. All Rights Reserved.
+#
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+# get standard environment, filters and checks
+. ./common.product
+. ./common.filter
+. ./common.check
+
+host=`./getpmcdhosts -L -n 1 2>$seq.notrun`
+if [ -z "$host" ]
+then
+ cat $seq.notrun
+ exit
+fi
+rm -f $seq.notrun
+
+status=1 # failure is the default!
+trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
+
+_filter()
+{
+ sed -e 's;/[^ ]*/telnet-probe\([: ]\);.../telnet-probe\1;'
+}
+
+_filter2()
+{
+ sed \
+ -e 's/__pmGetAddrInfo/gethostbyname/g' \
+ -e 's/__pmGetHostByName/gethostbyname/g' \
+ -e '/gethostbyname:/s/ Resolver Error 0 (no error)/ Unknown host/' \
+ -e 's/No route to host/Connection refused/'
+}
+
+# real QA test starts here
+
+# simple error test
+echo; echo === 1st test
+echo quit | $PCP_BINADM_DIR/telnet-probe $host abc >$tmp.out 2>&1
+sts=$?
+cat $tmp.out | _filter
+echo "exit status is $sts (should be 1 with error msg)"
+echo quit | $PCP_BINADM_DIR/telnet-probe 1 2 3 >$tmp.out 2>&1
+sts=$?
+cat $tmp.out | _filter
+echo "exit status is $sts (should be 1 with error msg)"
+
+# should exit with good status
+echo; echo === 2nd test
+echo quit | $PCP_BINADM_DIR/telnet-probe localhost 22
+echo "exit status is $? (should be 0)"
+echo quit | $PCP_BINADM_DIR/telnet-probe $host 22
+echo "exit status is $? (should be 0)"
+
+# should fail to connect
+#
+# Note: [port] 26 below is unassigned by IANA although
+# http://www.speedguide.net reports it may be used for RSFTP (simple
+# FTP-like service) and perhaps an SMTP alternate ... for our
+# purposes we're looking for a port that has no one listening
+# on the remote end
+# Another note: some firewalls will respond with "No route to host"
+# rather than "Connection refused", so treat these as equivalent
+#
+echo; echo === 3rd test
+echo quit | $PCP_BINADM_DIR/telnet-probe -v localhost 26 >$tmp.out 2>$tmp.err
+sts=$?
+cat $tmp.err $tmp.out | _filter2
+echo "exit status is $sts (should be 1 with verbosity)"
+echo quit | $PCP_BINADM_DIR/telnet-probe -v $host 26 >$tmp.out 2>$tmp.err
+sts=$?
+cat $tmp.err $tmp.out | _filter2
+echo "exit status is $sts (should be 1 with verbosity)"
+echo quit | $PCP_BINADM_DIR/telnet-probe -v no.such.host 26 >$tmp.out 2>$tmp.err
+sts=$?
+cat $tmp.err $tmp.out | _filter2
+echo "exit status is $sts (should be 1 with verbosity)"
+
+# success, all done
+status=0
+exit