From owner-p4-projects@FreeBSD.ORG Thu Aug 18 17:11:15 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 409CC10656A9; Thu, 18 Aug 2011 17:11:15 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 013E910656B5 for ; Thu, 18 Aug 2011 17:11:15 +0000 (UTC) (envelope-from cnicutar@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id E2EF18FC19 for ; Thu, 18 Aug 2011 17:11:14 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id p7IHBEaH008560 for ; Thu, 18 Aug 2011 17:11:14 GMT (envelope-from cnicutar@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p7IHBE9f008557 for perforce@freebsd.org; Thu, 18 Aug 2011 17:11:14 GMT (envelope-from cnicutar@freebsd.org) Date: Thu, 18 Aug 2011 17:11:14 GMT Message-Id: <201108181711.p7IHBE9f008557@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to cnicutar@freebsd.org using -f From: Catalin Nicutar To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197825 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Aug 2011 17:11:15 -0000 http://p4web.freebsd.org/@@197825?ac=10 Change 197825 by cnicutar@cnicutar_cronos on 2011/08/18 17:10:17 Clean up tests and remove duplicate code. Affected files ... .. //depot/projects/soc2011/cnicutar_tcputo_9/src/tools/regression/netinet/tcputo/Makefile.generic_uto#1 add .. //depot/projects/soc2011/cnicutar_tcputo_9/src/tools/regression/netinet/tcputo/Makefile.long_uto#2 delete .. //depot/projects/soc2011/cnicutar_tcputo_9/src/tools/regression/netinet/tcputo/Makefile.short_uto#2 delete .. //depot/projects/soc2011/cnicutar_tcputo_9/src/tools/regression/netinet/tcputo/generic_uto.c#1 add .. //depot/projects/soc2011/cnicutar_tcputo_9/src/tools/regression/netinet/tcputo/long_uto.c#3 delete .. //depot/projects/soc2011/cnicutar_tcputo_9/src/tools/regression/netinet/tcputo/runtest.sh#2 edit .. //depot/projects/soc2011/cnicutar_tcputo_9/src/tools/regression/netinet/tcputo/short_uto.c#2 delete Differences ... ==== //depot/projects/soc2011/cnicutar_tcputo_9/src/tools/regression/netinet/tcputo/runtest.sh#2 (text+ko) ==== @@ -1,5 +1,6 @@ #!/bin/sh + # Bring down two loopback interfaces lo_down() { @@ -7,7 +8,7 @@ ifconfig lo3 destroy } -# Create two loopback interfaces and assign example addresses +# Create two loopback interfaces and assign addresses lo_up() { # Just in case they are still around @@ -38,8 +39,6 @@ # Run a test and display results runtest() { - args=$1 # Test arguments - killall "$bin" > /dev/null 2>&1 if ! make -f "Makefile.${bin}" > /dev/null 2>&1 @@ -47,9 +46,11 @@ echo "not ok $no - $name # make failed" exit 1 fi - + # Finally run the test - if ./$bin > /dev/null 2>&1 $args + ./$bin $testargs >/dev/null 2>&1 + + if [ "$?" -eq "$expect" ] then echo "ok $no - $name" else @@ -58,77 +59,143 @@ lo_down > /dev/null 2>&1 } +# Setup loopback interfaces before starting the test program and bring them +# down afterwards. test_with_loopback() { - lo1=$1 - lo2=$2 - # Make sure we run as root needroot # Create loopback interfaces - lo_up $lo1 $lo2 > /dev/null 2>&1 + lo_up $client $server > /dev/null 2>&1 # Run the atual test - runtest "$lo1 $lo2 $PORT" + runtest # Destroy loopback interfaces lo_down > /dev/null 2>&1 } -PORT="1296" - no=$1 case "$no" in + # The test passes if the UTO values are correctly exchanged. "1") - name="Send UTO" + name="Send UTO IPv4" bin="send_uto" addr="127.0.0.1" - - runtest "$addr $PORT" + port="1296" + expect=0 # Normal exit + + testargs="$addr $port" + runtest ;; + # In this scenario the server imposes a very small timeout. After the + # handshake the connection is broken and the client can't receive data + # (and thus can't acknowledge it). * + # The server wait a period longer than UTO before trying to write again; + # this triggers an EPIPE error which means the connection is broken. + # + # The test passes if the program exits abnormally with EX_IOERR. "2") - name="short_uto" - bin="short_uto" + name="Short UTO IPv4" + bin="generic_uto" + expect=74 # EX_IOERR + + # Test arguments client="192.0.2.2" server="192.0.2.3" + port="1296" + client_snd="0" + client_rcv="1" + server_snd="10" + server_rcv="1" + downtime="20" - test_with_loopback $client $server + testargs="$client $server $port $client_snd $client_rcv + $server_snd $server_rcv $downtime" + + test_with_loopback ;; + + # In this scenario the client requests a large UTO value and the server + # accepts it. The network is unavailable for a period < UTO. After the + # network picks up, the client should eventually receive the data and + # acknowledge it. + # + # The test passes if the program exits normally. "3") - name="long_uto" - bin="long_uto" + name="Long UTO IPv4" + bin="generic_uto" + expect=0 # Normal exit + + # Test arguments client="192.0.2.2" server="192.0.2.3" + port="1296" + client_snd="1200" # 20 minutes UTO + client_rcv="1" + server_snd="0" + server_rcv="1" + downtime="300" # 5 minutes downtime - test_with_loopback $client $server + testargs="$client $server $port $client_snd $client_rcv + $server_snd $server_rcv $downtime" + + test_with_loopback ;; + # Same as test 1, with IPv6 "4") - name="send_uto_ipv6" + name="Send UTO IPv6" bin="send_uto" - addr="127.0.0.1" + addr="::1" + port="1296" + expect=0 # Normal exit - runtest "$addr $PORT" + testargs="$addr $port" + runtest ;; + # Same as test 2, with IPv6 "5") - name="short_utov6" - bin="short_uto" + name="Short UTO IPv6" + bin="generic_uto" + ipv6="yes" + expect=74 # EX_IOERR + + # Test arguments client="2001:db80:5::2" server="2001:db80:5::3" - ipv6="yes" + port="1296" + client_snd="0" + client_rcv="1" + server_snd="10" + server_rcv="1" + downtime="20" + + testargs="$client $server $port $client_snd $client_rcv + $server_snd $server_rcv $downtime" - test_with_loopback $client $server + test_with_loopback ;; + # Same as test 3, with IPv6 "6") - name="long_utov6" - bin="long_uto" + name="Long UTO IPv6" + bin="generic_uto" + ipv6="yes" + expect=0 # Normal exit + + # Test arguments client="2001:db80:5::2" server="2001:db80:5::3" - ipv6="yes" + port="1296" + client_snd="1200" # 20 minutes UTO + client_rcv="1" + server_snd="0" + server_rcv="1" + downtime="300" # 5 minutes downtime + + testargs="$client $server $port $client_snd $client_rcv + $server_snd $server_rcv $downtime" - test_with_loopback $client $server + test_with_loopback ;; - esac - -