aboutgitcodebugslistschat
diff options
context:
space:
mode:
authorDavid Gibson <david@gibson.dropbear.id.au>2022-06-10 12:32:45 +1000
committerStefano Brivio <sbrivio@redhat.com>2022-06-18 09:05:06 +0200
commit41c02e10db8bc0f4e89ec9e5bd23cf39162f5f68 (patch)
tree72840e547df6a1a3a351125c0a9a9667e40017bf
parente48373382f7c84175a0f61890e8f0164cdd2d329 (diff)
downloadpasst-41c02e10db8bc0f4e89ec9e5bd23cf39162f5f68.tar
passt-41c02e10db8bc0f4e89ec9e5bd23cf39162f5f68.tar.gz
passt-41c02e10db8bc0f4e89ec9e5bd23cf39162f5f68.tar.bz2
passt-41c02e10db8bc0f4e89ec9e5bd23cf39162f5f68.tar.lz
passt-41c02e10db8bc0f4e89ec9e5bd23cf39162f5f68.tar.xz
passt-41c02e10db8bc0f4e89ec9e5bd23cf39162f5f68.tar.zst
passt-41c02e10db8bc0f4e89ec9e5bd23cf39162f5f68.zip
tests: Use nmap-ncat instead of openbsd netcat for pasta tests
A number of the testcases use options specific the OpenBSD version of netcat. That's available in Debian, but not easily available in Fedora. Switch the pasta tests to using the nmap version of netcat (a.k.a. ncat). This is easily available in both Debian and Fedora, and appears to be a bit more modern and maintained as well. ncat generally requires explicit listen addresses (which is good for clarity anywhere). Its default options appear to remove the need for the -N and -q options. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> [sbrivio: changed one ncat listening address to IPv6 loopback] Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
-rw-r--r--test/README.md2
-rw-r--r--test/demo/pasta12
-rw-r--r--test/tcp/pasta52
-rw-r--r--test/udp/pasta29
4 files changed, 48 insertions, 47 deletions
diff --git a/test/README.md b/test/README.md
index 362690c..201332b 100644
--- a/test/README.md
+++ b/test/README.md
@@ -29,7 +29,7 @@ on a system, i.e. common utilities such as a shell are not included here.
Example for Debian, and possibly most Debian-based distributions:
build-essential git jq strace iperf3 qemu-system-x86 tmux sipcalc bc
- clang-tidy cppcheck isc-dhcp-common psmisc linux-cpupower
+ clang-tidy cppcheck isc-dhcp-common psmisc linux-cpupower ncat
netcat-openbsd fakeroot lz4 lm-sensors qemu-system-arm qemu-system-ppc
qemu-system-misc qemu-system-x86 valgrind
diff --git a/test/demo/pasta b/test/demo/pasta
index e2517ed..754b320 100644
--- a/test/demo/pasta
+++ b/test/demo/pasta
@@ -100,9 +100,9 @@ nl
say pasta detects bound ports and forwards them.
sleep 3
-nsb nc -6 -l -p 31337
+nsb ncat -6 -l ::1 31337
sleep 2
-host echo "Hello from the host" | nc -N ::1 31337
+host echo "Hello from the host" | ncat ::1 31337
sleep 5
nl
@@ -111,9 +111,9 @@ say Now the other way around...
nl
say we can use a loopback address
sleep 2
-hostb nc -l -p 31337
+hostb ncat -l ::1 31337
sleep 2
-ns echo "Hello from the namespace" | nc -N 127.0.0.1 31337
+ns echo "Hello from the namespace" | ncat ::1 31337
sleep 5
nl
@@ -121,9 +121,9 @@ say or the address of the default gateway.
sleep 2
nsout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway'
sleep 5
-hostb nc -l -p 31337
+hostb ncat -l 0.0.0.0 31337
sleep 2
-ns echo "Hello from the namespace" | nc -N __GW__ 31337
+ns echo "Hello from the namespace" | ncat __GW__ 31337
sleep 3
nl
diff --git a/test/tcp/pasta b/test/tcp/pasta
index 2fece32..531da04 100644
--- a/test/tcp/pasta
+++ b/test/tcp/pasta
@@ -12,31 +12,31 @@
# Author: Stefano Brivio <sbrivio@redhat.com>
onlyfor pasta
-htools dd nc ip jq cat md5sum cut
-nstools nc ip jq cat md5sum cut
+htools dd ncat ip jq cat md5sum cut
+nstools ncat ip jq cat md5sum cut
test TCP/IPv4: host to ns: big transfer
temp TEMP_BIG
temp TEMP_NS_BIG
-nsb nc -4 -l 10002 > __TEMP_NS_BIG__
+nsb ncat -4 -l 127.0.0.1 10002 > __TEMP_NS_BIG__
host dd if=/dev/urandom bs=1M count=10 > __TEMP_BIG__
-host cat __TEMP_BIG__ | nc -N 127.0.0.1 10002
+host cat __TEMP_BIG__ | ncat 127.0.0.1 10002
nsw
hout MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1
nsout NS_MD5_BIG md5sum __TEMP_NS_BIG__ | cut -d' ' -f1
check [ "__NS_MD5_BIG__" = "__MD5_BIG__" ]
test TCP/IPv4: ns to host (spliced): big transfer
-hostb nc -4 -l 10003 > __TEMP_BIG__
-ns cat __TEMP_NS_BIG__ | nc -N 127.0.0.1 10003
+hostb ncat -4 -l 127.0.0.1 10003 > __TEMP_BIG__
+ns cat __TEMP_NS_BIG__ | ncat 127.0.0.1 10003
hostw
hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1
check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ]
test TCP/IPv4: ns to host (via tap): big transfer
-hostb nc -4 -l 10003 > __TEMP_BIG__
+hostb ncat -4 -l 0.0.0.0 10003 > __TEMP_BIG__
nsout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway'
-ns cat __TEMP_NS_BIG__ | nc -N __GW__ 10003
+ns cat __TEMP_NS_BIG__ | ncat __GW__ 10003
hostw
hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1
check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ]
@@ -44,50 +44,50 @@ check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ]
test TCP/IPv4: host to ns: small transfer
temp TEMP_SMALL
temp TEMP_NS_SMALL
-nsb nc -4 -l 10002 > __TEMP_NS_SMALL__
+nsb ncat -4 -l 127.0.0.1 10002 > __TEMP_NS_SMALL__
host dd if=/dev/urandom bs=2k count=1 > __TEMP_SMALL__
-host cat __TEMP_SMALL__ | nc -N 127.0.0.1 10002
+host cat __TEMP_SMALL__ | ncat 127.0.0.1 10002
nsw
hout MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1
nsout NS_MD5_SMALL md5sum __TEMP_NS_SMALL__ | cut -d' ' -f1
check [ "__NS_MD5_SMALL__" = "__MD5_SMALL__" ]
test TCP/IPv4: ns to host (spliced): small transfer
-hostb nc -4 -l 10003 > __TEMP_SMALL__
-ns cat __TEMP_NS_SMALL__ | nc -N 127.0.0.1 10003
+hostb ncat -4 -l 127.0.0.1 10003 > __TEMP_SMALL__
+ns cat __TEMP_NS_SMALL__ | ncat 127.0.0.1 10003
hostw
hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1
check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ]
test TCP/IPv4: ns to host (via tap): small transfer
-hostb nc -4 -l 10003 > __TEMP_SMALL__
+hostb ncat -4 -l 0.0.0.0 10003 > __TEMP_SMALL__
nsout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway'
-ns cat __TEMP_NS_SMALL__ | nc -N __GW__ 10003
+ns cat __TEMP_NS_SMALL__ | ncat __GW__ 10003
hostw
hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1
check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ]
test TCP/IPv6: host to ns: big transfer
-nsb nc -6 -l 10002 > __TEMP_NS_BIG__
-host cat __TEMP_BIG__ | nc -N ::1 10002
+nsb ncat -6 -l ::1 10002 > __TEMP_NS_BIG__
+host cat __TEMP_BIG__ | ncat ::1 10002
nsw
hout MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1
nsout NS_MD5_BIG md5sum __TEMP_NS_BIG__ | cut -d' ' -f1
check [ "__NS_MD5_BIG__" = "__MD5_BIG__" ]
test TCP/IPv6: ns to host (spliced): big transfer
-hostb nc -6 -l 10003 > __TEMP_BIG__
-ns cat __TEMP_NS_BIG__ | nc -N ::1 10003
+hostb ncat -6 -l ::1 10003 > __TEMP_BIG__
+ns cat __TEMP_NS_BIG__ | ncat ::1 10003
hostw
hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1
check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ]
nsw
test TCP/IPv6: ns to host (via tap): big transfer
-hostb nc -6 -l 10003 > __TEMP_BIG__
+hostb ncat -6 -l :: 10003 > __TEMP_BIG__
nsout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway'
nsout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname'
-ns cat __TEMP_NS_BIG__ | nc -N __GW6__%__IFNAME__ 10003
+ns cat __TEMP_NS_BIG__ | ncat __GW6__%__IFNAME__ 10003
hostw
hout HOST_MD5_BIG md5sum __TEMP_BIG__ | cut -d' ' -f1
check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ]
@@ -95,24 +95,24 @@ check [ "__HOST_MD5_BIG__" = "__MD5_BIG__" ]
test TCP/IPv6: host to ns: small transfer
temp TEMP_SMALL
temp TEMP_NS_SMALL
-nsb nc -6 -l 10002 > __TEMP_NS_SMALL__
+nsb ncat -6 -l ::1 10002 > __TEMP_NS_SMALL__
host dd if=/dev/urandom bs=2k count=1 > __TEMP_SMALL__
-host cat __TEMP_SMALL__ | nc -N ::1 10002
+host cat __TEMP_SMALL__ | ncat ::1 10002
nsw
hout MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1
nsout NS_MD5_SMALL md5sum __TEMP_NS_SMALL__ | cut -d' ' -f1
check [ "__NS_MD5_SMALL__" = "__MD5_SMALL__" ]
test TCP/IPv6: ns to host (spliced): small transfer
-hostb nc -6 -l 10003 > __TEMP_SMALL__
-ns cat __TEMP_NS_SMALL__ | nc -N ::1 10003
+hostb ncat -6 -l ::1 10003 > __TEMP_SMALL__
+ns cat __TEMP_NS_SMALL__ | ncat ::1 10003
hostw
hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1
check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ]
test TCP/IPv6: ns to host (via tap): small transfer
-hostb nc -6 -l 10003 > __TEMP_SMALL__
-ns cat __TEMP_NS_SMALL__ | nc -N __GW6__%__IFNAME__ 10003
+hostb ncat -6 -l :: 10003 > __TEMP_SMALL__
+ns cat __TEMP_NS_SMALL__ | ncat __GW6__%__IFNAME__ 10003
hostw
hout HOST_MD5_SMALL md5sum __TEMP_SMALL__ | cut -d' ' -f1
check [ "__HOST_MD5_SMALL__" = "__MD5_SMALL__" ]
diff --git a/test/udp/pasta b/test/udp/pasta
index c26cea9..3123c42 100644
--- a/test/udp/pasta
+++ b/test/udp/pasta
@@ -12,17 +12,18 @@
# Author: Stefano Brivio <sbrivio@redhat.com>
onlyfor pasta
-nstools nc tee grep cat ip jq md5sum cut
-htools printf dd nc tee grep cat ip jq md5sum cut
+nstools ncat tee grep cat ip jq md5sum cut
+htools printf dd ncat tee grep cat ip jq md5sum cut
test UDP/IPv4: host to ns
temp TEMP
temp TEMP_NS
temp NC_PID
ns :> __TEMP_NS__
-nsb (nc -u -q1 -4 -l 10002 & echo $! > __NC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
+nsb (ncat -u -4 -l 127.0.0.1 10002 & echo $! > __NC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
host dd if=/dev/urandom bs=1k count=5 > __TEMP__ && printf "\nEND_OF_TEST\n" >> __TEMP__
-host cat __TEMP__ | nc -u -q1 -N 127.0.0.1 10002
+
+host cat __TEMP__ | ncat -u 127.0.0.1 10002
nsw
hout MD5 md5sum __TEMP__ | cut -d' ' -f1
nsout NS_MD5 md5sum __TEMP_NS__ | cut -d' ' -f1
@@ -30,26 +31,26 @@ check [ "__NS_MD5__" = "__MD5__" ]
test UDP/IPv4: ns to host (recvmmsg/sendmmsg)
host :> __TEMP__
-hostb (nc -u -q1 -4 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
+hostb (ncat -u -4 -l 127.0.0.1 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
sleep 1
-ns cat __TEMP_NS__ | nc -u -q1 -N 127.0.0.1 10003
+ns cat __TEMP_NS__ | ncat -u 127.0.0.1 10003
hostw
hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1
check [ "__HOST_MD5__" = "__MD5__" ]
test UDP/IPv4: ns to host (via tap)
host :> __TEMP__
-hostb (nc -u -q1 -4 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
+hostb (ncat -u -4 -l 0.0.0.0 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
nsout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway'
-ns cat __TEMP_NS__ | nc -u -q1 -N __GW__ 10003
+ns cat __TEMP_NS__ | ncat -u __GW__ 10003
hostw
hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1
check [ "__HOST_MD5__" = "__MD5__" ]
test UDP/IPv6: host to ns
ns :> __TEMP_NS__
-nsb (nc -u -q1 -6 -l 10002 & echo $! > __NC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
-host cat __TEMP__ | nc -u -q1 -N ::1 10002
+nsb (ncat -u -6 -l ::1 10002 & echo $! > __NC_PID__) | tee __TEMP_NS__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
+host cat __TEMP__ | ncat -u ::1 10002
nsw
hout MD5 md5sum __TEMP__ | cut -d' ' -f1
nsout NS_MD5 md5sum __TEMP_NS__ | cut -d' ' -f1
@@ -57,9 +58,9 @@ check [ "__NS_MD5__" = "__MD5__" ]
test UDP/IPv6: ns to host (recvmmsg/sendmmsg)
host :> __TEMP__
-hostb (nc -u -q1 -6 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
+hostb (ncat -u -6 -l ::1 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
sleep 1
-ns cat __TEMP_NS__ | nc -u -q1 -N ::1 10003
+ns cat __TEMP_NS__ | ncat -u ::1 10003
hostw
hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1
check [ "__HOST_MD5__" = "__MD5__" ]
@@ -67,10 +68,10 @@ nsw
test UDP/IPv6: ns to host (via tap)
host :> __TEMP__
-hostb (nc -u -q1 -6 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
+hostb (ncat -u -6 -l :: 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
nsout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway'
nsout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname'
-ns cat __TEMP_NS__ | nc -u -q1 -N __GW6__%__IFNAME__ 10003
+ns cat __TEMP_NS__ | ncat -u __GW6__%__IFNAME__ 10003
hostw
hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1
check [ "__HOST_MD5__" = "__MD5__" ]