diff options
Diffstat (limited to 'testdata/tls_reuse.tdir/tls_reuse.test')
-rw-r--r-- | testdata/tls_reuse.tdir/tls_reuse.test | 308 |
1 files changed, 308 insertions, 0 deletions
diff --git a/testdata/tls_reuse.tdir/tls_reuse.test b/testdata/tls_reuse.tdir/tls_reuse.test new file mode 100644 index 000000000000..0f392fba81fe --- /dev/null +++ b/testdata/tls_reuse.tdir/tls_reuse.test @@ -0,0 +1,308 @@ +# #-- tls_reuse.test --# +# source the master var file when it's there +[ -f ../.tpkg.var.master ] && source ../.tpkg.var.master +# use .tpkg.var.test for in test variable passing +[ -f .tpkg.var.test ] && source .tpkg.var.test + +PRE="../.." +. ../common.sh + +get_make +(cd $PRE; $MAKE streamtcp) + +echo "> query www1.example.com." +$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT www1.example.com. A IN >outfile 2>&1 +cat outfile +if test "$?" -ne 0; then + echo "exit status not OK" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi +if grep "www1.example.com" outfile | grep "10.20.30.41"; then + echo "content OK" +else + echo "result contents not OK, for www1.example.com" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "result contents not OK, for www1.example.com" + exit 1 +fi +echo "OK" +echo "" + +# this should be reused on the same tcp stream: +echo "> query www2.example.com." +$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT www2.example.com. A IN >outfile 2>&1 +cat outfile +if test "$?" -ne 0; then + echo "exit status not OK" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi +if grep "www2.example.com" outfile | grep "10.20.30.42"; then + echo "content OK" +else + echo "result contents not OK, for www2.example.com" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "result contents not OK, for www2.example.com" + exit 1 +fi + +echo "> query refuse.net." +$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT refuse.net. A IN >outfile 2>&1 +cat outfile +if test "$?" -ne 0; then + echo "exit status not OK" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi +if grep "rcode: SERVFAIL" outfile; then + echo "content OK" +else + echo "result contents not OK, for refuse.net" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "result contents not OK, for refuse.net" + exit 1 +fi + +echo "> query www3.example.com." +echo "> query www4.example.com." +echo "> query www5.example.com." +echo "> query www6.example.com." +$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT www3.example.com. A IN >outfile3 2>&1 & +$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT www4.example.com. A IN >outfile4 2>&1 & +$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT www5.example.com. A IN >outfile5 2>&1 & +$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT www6.example.com. A IN >outfile6 2>&1 & +wait +if test "$?" -ne 0; then + echo "exit status not OK" + echo "> cat logfiles" + cat outfile3 + cat outfile4 + cat outfile5 + cat outfile6 + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi +if grep "www3.example.com" outfile3 | grep "10.20.30.43"; then + echo "content OK" +else + echo "result contents not OK, for www3.example.com" + echo "> cat logfiles" + cat outfile3 + cat outfile4 + cat outfile5 + cat outfile6 + cat unbound2.log + cat unbound.log + echo "result contents not OK, for www3.example.com" + exit 1 +fi +if grep "www4.example.com" outfile4 | grep "10.20.30.44"; then + echo "content OK" +else + echo "result contents not OK, for www4.example.com" + echo "> cat logfiles" + cat outfile3 + cat outfile4 + cat outfile5 + cat outfile6 + cat unbound2.log + cat unbound.log + echo "result contents not OK, for www4.example.com" + exit 1 +fi +if grep "www5.example.com" outfile5 | grep "10.20.30.45"; then + echo "content OK" +else + echo "result contents not OK, for www5.example.com" + echo "> cat logfiles" + cat outfile3 + cat outfile4 + cat outfile5 + cat outfile6 + cat unbound2.log + cat unbound.log + echo "result contents not OK, for www5.example.com" + exit 1 +fi +if grep "www6.example.com" outfile6 | grep "10.20.30.46"; then + echo "content OK" +else + echo "result contents not OK, for www6.example.com" + echo "> cat logfiles" + cat outfile3 + cat outfile4 + cat outfile5 + cat outfile6 + cat unbound2.log + cat unbound.log + echo "result contents not OK, for www6.example.com" + exit 1 +fi + +echo "> query a1.more.net a2.more.net a3.more.net a4.more.net a5.more.net" +$PRE/streamtcp -a -f 127.0.0.1@$UNBOUND_PORT a1.more.net A IN a2.more.net A IN a3.more.net A IN a4.more.net A IN a5.more.net A IN >outfile 2>&1 +if test "$?" -ne 0; then + echo "exit status not OK" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi +cat outfile +for x in a1.more.net a2.more.net a3.more.net a4.more.net a5.more.net; do + if grep "$x" outfile | grep "10.20.30.40"; then + echo "content OK for $x" + else + echo "result contents not OK, for $x" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "result contents not OK, for $x" + exit 1 + fi +done + +# make the server timeout to drop the upstream connection +echo "> sleep 15" +sleep 15 +# see if we are still up. +echo "> query a7.more.net" +$PRE/streamtcp -a -f 127.0.0.1@$UNBOUND_PORT a7.more.net A IN >outfile 2>&1 +if test "$?" -ne 0; then + echo "exit status not OK" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi +cat outfile +for x in a7.more.net; do + if grep "$x" outfile | grep "10.20.30.40"; then + echo "content OK for $x" + else + echo "result contents not OK, for $x" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "result contents not OK, for $x" + exit 1 + fi +done + +# dropconn.drop.net make the server drop the connection. +echo "> query a11.more.net a12.more.net dropconn.drop.net a14.more.net a15.more.net" +$PRE/streamtcp -a -f 127.0.0.1@$UNBOUND_PORT a11.more.net A IN a12.more.net A IN dropconn.drop.net A IN a14.more.net A IN a15.more.net A IN >outfile 2>&1 +if test "$?" -ne 0; then + echo "exit status not OK" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi +cat outfile +# cannot really check outfile, because it may or may not have answers depending +# on how fast the other server responds or the drop happens, but there are +# a bunch of connection drops, whilst resolving the other queries. + +echo "> query drop.net." +$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT drop.net. A IN >outfile 2>&1 +cat outfile +if test "$?" -ne 0; then + echo "exit status not OK" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi +if grep "rcode: SERVFAIL" outfile; then + echo "content OK" +else + echo "result contents not OK, for drop.net" + echo "> cat logfiles" + cat outfile + cat unbound2.log + cat unbound.log + echo "result contents not OK, for drop.net" + exit 1 +fi + +# timeouts at the end. (so that the server is not marked as failed for +# the other tests). +echo "> query q1.drop.net." +echo "> query q2.drop.net." +$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT q1.drop.net. A IN >outfile1 2>&1 & +$PRE/streamtcp -f 127.0.0.1@$UNBOUND_PORT q2.drop.net. A IN >outfile2 2>&1 & +wait +if test "$?" -ne 0; then + echo "exit status not OK" + echo "> cat logfiles" + cat outfile1 + cat outfile2 + cat unbound2.log + cat unbound.log + echo "Not OK" + exit 1 +fi +cat outfile1 +cat outfile2 +if grep "rcode: SERVFAIL" outfile1; then + echo "content OK" +else + echo "result contents not OK, for q1.drop.net" + echo "> cat logfiles" + cat outfile1 + cat outfile2 + cat unbound2.log + cat unbound.log + echo "result contents not OK, for q1.drop.net" + exit 1 +fi +if grep "rcode: SERVFAIL" outfile2; then + echo "content OK" +else + echo "result contents not OK, for q2.drop.net" + echo "> cat logfiles" + cat outfile1 + cat outfile2 + cat unbound2.log + cat unbound.log + echo "result contents not OK, for q2.drop.net" + exit 1 +fi + +echo "OK" +exit 0 |