mirror of
https://passt.top/passt
synced 2024-10-05 05:25:48 +00:00
a832a44e67
Currently test/run uses wildcards to run all of the tests in a directory. However, that wildcard list is filtered down by the "onlyfor" directives in the test files... usually to a single file. Therefore, just explicitly list the files we *really* want to run for this test mode. This makes it easier to see at the top level what tests will be executed, and to change that list temporarily while debugging specific failures. This means the "onlyfor" directive no longer has any purpose, and we can remove it. "onlyfor" was also the only used of the $MODE variable, so we can remove that too. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
54 lines
2.0 KiB
Plaintext
54 lines
2.0 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 nc tee grep cat ip jq md5sum cut
|
|
htools printf dd nc tee grep cat ip jq md5sum cut
|
|
|
|
test UDP/IPv4: host to guest
|
|
temp TEMP
|
|
temp NC_PID
|
|
guestb (nc -u -q1 -4 -l 10001 & echo $! > __NC_PID__) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
|
|
host dd if=/dev/urandom bs=1k count=5 > __TEMP_BIG__ && printf "\nEND_OF_TEST\n" >> __TEMP__
|
|
host cat __TEMP__ | nc -u -q1 -N 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 (nc -u -q1 -4 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_PID__))
|
|
gout GW ip -j -4 route show|jq -rM '.[] | select(.dst == "default").gateway'
|
|
guest cat test.bin | nc -u -q1 -N __GW__ 10003
|
|
hostw
|
|
hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1
|
|
check [ "__GUEST_MD5__" = "__HOST_MD5__" ]
|
|
|
|
test UDP/IPv6: host to guest
|
|
guestb (nc -u -q1 -6 -l 10001 & echo $! > nc.pid) | tee test.bin | (grep -qm1 "END_OF_TEST" && kill $(cat nc.pid))
|
|
sleep 1
|
|
host cat __TEMP__ | nc -u -q1 -N ::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 (nc -u -q1 -6 -l 10003 & echo $! > __NC_PID__) | tee __TEMP__ | (grep -qm1 "END_OF_TEST" && kill $(cat __NC_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 cat test.bin | nc -u -q1 -N __GW6__%__IFNAME__ 10003
|
|
hostw
|
|
hout HOST_MD5 md5sum __TEMP__ | cut -d' ' -f1
|
|
check [ "__GUEST_MD5__" = "__HOST_MD5__" ]
|