ada08d4735
All the UDP tests use :> to truncate some temporary data files. This appears to be so that they're empty before writing data to them with tee. However tee, by default, truncates its output file anyway (you need tee -a to append). So drop the unnecessary truncations. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
51 lines
2.1 KiB
Text
51 lines
2.1 KiB
Text
# 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
|
|
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
|
|
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__" ]
|