From bf438c85e1734f70a414fdcdb50a93c09f2d0252 Mon Sep 17 00:00:00 2001 From: Andras Fekete Date: Fri, 18 Aug 2023 14:10:47 -0400 Subject: [PATCH 1/9] Add in a marker to the PCAP file --- scripts/dtls.test | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/dtls.test b/scripts/dtls.test index ebdd61c61..d95ccc527 100755 --- a/scripts/dtls.test +++ b/scripts/dtls.test @@ -10,6 +10,8 @@ DO_EXTENDED_SERVER_PERMUTATION_TEST=${DO_EXTENDED_SERVER_PERMUTATION_TEST:-0} DO_DELAY_TEST=${DO_DELAY_TEST:-0} # An example use would be: DTLS_VERSION=-v3 scripts/dtls.test +# Note the output also consists of a single PCAP file which has a set of +# three packets (1-byte, strlen()-byte, 1-byte payload) deliniating each test. #set -x # enable debug output From 307ce9d6233cd99880e8ac6cc0f87c0747fb6d94 Mon Sep 17 00:00:00 2001 From: Andras Fekete Date: Mon, 21 Aug 2023 09:52:34 -0400 Subject: [PATCH 2/9] Only drop the first Nth packet, not every --- scripts/dtls.test | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/dtls.test b/scripts/dtls.test index d95ccc527..fc902a4b9 100755 --- a/scripts/dtls.test +++ b/scripts/dtls.test @@ -76,8 +76,8 @@ run_test() { # usage: run_test "" "" "" " } test_dropping_packets () { - for i in $(seq 3 11);do - run_test "Dropping ${i}th packet" "-d $i" "-Ta" "" + for i in $(seq 0 11);do + run_test "Dropping ${i}th packet" "-f $i" "-Ta" "" done # dropping last ack would be client error as wolfssl_read doesn't support WANT_WRITE as returned error From e487b7380980dd69250a92018efd13519a9f616e Mon Sep 17 00:00:00 2001 From: Andras Fekete Date: Mon, 21 Aug 2023 13:37:34 -0400 Subject: [PATCH 3/9] Reduce likelihood of two tests running and saving to the PCAP dump --- scripts/dtls.test | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/dtls.test b/scripts/dtls.test index fc902a4b9..72c87ac6a 100755 --- a/scripts/dtls.test +++ b/scripts/dtls.test @@ -35,8 +35,12 @@ cleanup () { trap cleanup err exit -PROXY_PORT=1234 -SERVER_PORT=4321 +RANDOM_PORT_OFFSET=$(($RANDOM % 5000)) +echo "RANDOM=$RANDOM_PORT_OFFSET" +PROXY_PORT=$((1200+$RANDOM_PORT_OFFSET)) +SERVER_PORT=$((1201+$RANDOM_PORT_OFFSET)) +echo "PROXY_PORT=$PROXY_PORT" +echo "SERVER_PORT=$SERVER_PORT" KEY_UPDATE_SIZE=35 NUM_TESTS_FAILED=0 NUM_TESTS_RUN=0 From 88c32a510e0786cd915ef7a0d14edd8d601b5dbf Mon Sep 17 00:00:00 2001 From: Andras Fekete Date: Tue, 22 Aug 2023 09:30:51 -0400 Subject: [PATCH 4/9] Wrap script in a `bwrap` environment --- scripts/dtls.test | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/scripts/dtls.test b/scripts/dtls.test index 72c87ac6a..6d98667a2 100755 --- a/scripts/dtls.test +++ b/scripts/dtls.test @@ -15,6 +15,15 @@ DO_DELAY_TEST=${DO_DELAY_TEST:-0} #set -x # enable debug output +# bwrap execution environment to avoid port conflicts +if [ "${AM_BWRAPPED-}" != "yes" ]; then + bwrap_path="$(command -v bwrap)" + if [ -n "$bwrap_path" ]; then + export AM_BWRAPPED=yes + exec "$bwrap_path" --cap-add ALL --unshare-net --dev-bind / / "$0" "$@" + fi +fi + cleanup () { echo echo "Cleaning up..." @@ -35,12 +44,8 @@ cleanup () { trap cleanup err exit -RANDOM_PORT_OFFSET=$(($RANDOM % 5000)) -echo "RANDOM=$RANDOM_PORT_OFFSET" -PROXY_PORT=$((1200+$RANDOM_PORT_OFFSET)) -SERVER_PORT=$((1201+$RANDOM_PORT_OFFSET)) -echo "PROXY_PORT=$PROXY_PORT" -echo "SERVER_PORT=$SERVER_PORT" +PROXY_PORT=1234 +SERVER_PORT=4321 KEY_UPDATE_SIZE=35 NUM_TESTS_FAILED=0 NUM_TESTS_RUN=0 From 79d831c7128e3f920c8bc9259adcf0fdb2cfa202 Mon Sep 17 00:00:00 2001 From: Andras Fekete Date: Tue, 22 Aug 2023 09:32:51 -0400 Subject: [PATCH 5/9] Set customizable PCAP file name --- scripts/dtls.test | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/dtls.test b/scripts/dtls.test index 6d98667a2..99689a5b1 100755 --- a/scripts/dtls.test +++ b/scripts/dtls.test @@ -5,6 +5,7 @@ WOLFSSL_ROOT=${WOLFSSL_ROOT:-$(pwd)} UDP_PROXY_BIN=${UDP_PROXY_BIN:-"udp_proxy"} DTLS_VERSION=${DTLS_VERSION:-"-v4"} +PCAP_FILENAME=${PCAP_FILENAME:-"dtls${DTLS_VERSION}.pcap"} # Additionally, you can add the following tests by setting it to '1': DO_EXTENDED_SERVER_PERMUTATION_TEST=${DO_EXTENDED_SERVER_PERMUTATION_TEST:-0} DO_DELAY_TEST=${DO_DELAY_TEST:-0} @@ -138,7 +139,7 @@ EOF } echo "Starting capture" -tcpdump -i lo -n port ${SERVER_PORT} -w ./dtls${DTLS_VERSION}.pcap -U & +tcpdump -i lo -n port ${SERVER_PORT} -w ${PCAP_FILENAME} -U & TCPDUMP_PID=$! sleep 0.5 From c1821e9ed2ba8b36170207f96ff6aa14748a28df Mon Sep 17 00:00:00 2001 From: Andras Fekete Date: Tue, 22 Aug 2023 09:43:33 -0400 Subject: [PATCH 6/9] Decrease timeout to 1m. Most tests complete in seconds --- scripts/dtls.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/dtls.test b/scripts/dtls.test index 99689a5b1..0b03fbbe7 100755 --- a/scripts/dtls.test +++ b/scripts/dtls.test @@ -74,7 +74,7 @@ run_test() { # usage: run_test "" "" "" " UDP_PROXY_PID=$(($! - 1)) sleep 0.2 # Wrap this command in a timeout so that a deadlock won't bring down the entire test - timeout -s KILL 5m stdbuf -oL -eL $WOLFSSL_ROOT/examples/client/client -u -p$PROXY_PORT $DTLS_VERSION $4 2>&1 | prepend "[client] " + timeout -s KILL 1m stdbuf -oL -eL $WOLFSSL_ROOT/examples/client/client -u -p$PROXY_PORT $DTLS_VERSION $4 2>&1 | prepend "[client] " if [ $? != 0 ]; then echo "***Test failed***" ((NUM_TESTS_FAILED++)) From d321ae2fd53ba5ace43ff54d582b4d4a97cb0918 Mon Sep 17 00:00:00 2001 From: Andras Fekete Date: Tue, 22 Aug 2023 09:43:59 -0400 Subject: [PATCH 7/9] Don't run script un-bwrapped --- scripts/dtls.test | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/dtls.test b/scripts/dtls.test index 0b03fbbe7..363118c77 100755 --- a/scripts/dtls.test +++ b/scripts/dtls.test @@ -22,6 +22,7 @@ if [ "${AM_BWRAPPED-}" != "yes" ]; then if [ -n "$bwrap_path" ]; then export AM_BWRAPPED=yes exec "$bwrap_path" --cap-add ALL --unshare-net --dev-bind / / "$0" "$@" + exit $? fi fi From d54aa0dabdbd459648574a850e03dc763e6278fc Mon Sep 17 00:00:00 2001 From: Andras Fekete Date: Tue, 22 Aug 2023 09:51:42 -0400 Subject: [PATCH 8/9] Display test duration --- scripts/dtls.test | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/dtls.test b/scripts/dtls.test index 363118c77..3e5dedf07 100755 --- a/scripts/dtls.test +++ b/scripts/dtls.test @@ -166,4 +166,5 @@ else echo -e "\nThere were $NUM_TESTS_FAILED failures out of $NUM_TESTS_RUN tests\n" fi +echo "The script ran for $SECONDS seconds" exit $NUM_TESTS_FAILED From c4f91cdc8dccf177d98c3dc391f852acf4abc609 Mon Sep 17 00:00:00 2001 From: Andras Fekete Date: Tue, 22 Aug 2023 09:43:59 -0400 Subject: [PATCH 9/9] Revert "Don't run script un-bwrapped" This reverts commit d321ae2fd53ba5ace43ff54d582b4d4a97cb0918. --- scripts/dtls.test | 1 - 1 file changed, 1 deletion(-) diff --git a/scripts/dtls.test b/scripts/dtls.test index 3e5dedf07..2bf36d197 100755 --- a/scripts/dtls.test +++ b/scripts/dtls.test @@ -22,7 +22,6 @@ if [ "${AM_BWRAPPED-}" != "yes" ]; then if [ -n "$bwrap_path" ]; then export AM_BWRAPPED=yes exec "$bwrap_path" --cap-add ALL --unshare-net --dev-bind / / "$0" "$@" - exit $? fi fi