mirror of
https://passt.top/passt
synced 2025-02-02 01:15:22 +00:00
1aaa2bd189
Commit 41c02e10 ("tests: Use nmap-ncat instead of openbsd netcat for pasta tests") updated the pasta tests to use the nmap version of ncat instead of the openbsd version, for greater portability. For some upcoming changes, however, we'll be wanting to use socat. "socat" can do everything "ncat" can and more, so let's move all the tests using host tools (either directly on the host or via mbuto generated images) to using socat instead. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> [sbrivio: Fix a typo in port specification, 31337 instead of x31337] Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
54 lines
2.1 KiB
Plaintext
54 lines
2.1 KiB
Plaintext
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
#
|
|
# PASST - Plug A Simple Socket Transport
|
|
# for qemu/UNIX domain socket mode
|
|
#
|
|
# PASTA - Pack A Subtle Tap Abstraction
|
|
# for network namespace/tap device mode
|
|
#
|
|
# test/udp/passt - Check UDP functionality in passt mode
|
|
#
|
|
# Copyright (c) 2021 Red Hat GmbH
|
|
# Author: Stefano Brivio <sbrivio@redhat.com>
|
|
|
|
gtools socat tee grep cat ip jq md5sum cut
|
|
htools printf dd socat tee grep cat ip jq md5sum cut
|
|
|
|
test UDP/IPv4: host to guest
|
|
temp TEMP
|
|
temp SC_PID
|
|
guestb (socat -u UDP4-LISTEN:10001 STDOUT & echo $! > __SC_PID__) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__))
|
|
host dd if=/dev/urandom bs=1k count=5 > __TEMP__ && printf "\nEND_OF_TEST\n" >> __TEMP__
|
|
host socat -u OPEN:__TEMP__ UDP4:127.0.0.1:10001
|
|
guestw
|
|
hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1
|
|
gout GUEST_MD5 md5sum test.bin | cut -d' ' -f1
|
|
check [ "__GUEST_MD5__" = "__HOST_MD5__" ]
|
|
|
|
test UDP/IPv4: guest to host
|
|
host :> __TEMP__
|
|
hostb (socat -u UDP4-LISTEN:10003,bind=127.0.0.1 STDOUT & echo $! > __SC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__))
|
|
gout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway'
|
|
guest socat -u OPEN:test.bin UDP4:__GW__:10003
|
|
hostw
|
|
hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1
|
|
check [ "__GUEST_MD5__" = "__HOST_MD5__" ]
|
|
|
|
test UDP/IPv6: host to guest
|
|
guestb (socat -u UDP6-LISTEN:10001 STDOUT & echo $! > sc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat sc.pid))
|
|
sleep 1
|
|
host socat -u OPEN:__TEMP__ UDP6:[::1]:10001
|
|
guestw
|
|
gout GUEST_MD5 md5sum test.bin | cut -d' ' -f1
|
|
check [ "__GUEST_MD5__" = "__HOST_MD5__" ]
|
|
|
|
test UDP/IPv6: guest to host
|
|
host :> __TEMP__
|
|
hostb (socat -u UDP6-LISTEN:10003,bind=[::1] STDOUT & echo $! > __SC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __SC_PID__))
|
|
gout GW6 ip -j -6 route show|jq -rM '.[] | select(.dst == "default").gateway'
|
|
gout IFNAME ip -j link show | jq -rM '.[] | select(.link_type == "ether").ifname'
|
|
guest socat -u OPEN:test.bin UDP6:[__GW6__%__IFNAME__]:10003
|
|
hostw
|
|
hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1
|
|
check [ "__GUEST_MD5__" = "__HOST_MD5__" ]
|