mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-30 20:43:02 +02:00
src/net: refactor test into lib.sh and <test>.sh
Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
committed by
Tobias Waldekranz
parent
f180bcae24
commit
6b3eaa05e5
Executable
+129
@@ -0,0 +1,129 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Session set from Makefile before calling unshare -mrun
|
||||
if [ -z "$SESSION" ]; then
|
||||
SESSION=$(mktemp -d)
|
||||
TMPSESS=1
|
||||
fi
|
||||
|
||||
if [ -n "$DEBUG" ]; then
|
||||
DEBUG="-v -d"
|
||||
else
|
||||
DEBUG=""
|
||||
fi
|
||||
|
||||
# Test name, used everywhere as /tmp/$NM/foo
|
||||
NM=$(basename "$0" .sh)
|
||||
NET_DIR="${SESSION}/${NM}"
|
||||
export NET_DIR
|
||||
|
||||
gen=-1
|
||||
|
||||
# Exit immediately on error, treat unset variables as error
|
||||
set -eu
|
||||
|
||||
color_reset='\e[0m'
|
||||
fg_red='\e[1;31m'
|
||||
fg_green='\e[1;32m'
|
||||
fg_yellow='\e[1;33m'
|
||||
log()
|
||||
{
|
||||
test=$(basename "$0" ".sh")
|
||||
printf "\e[2m[%s]\e[0m %b%b%b %s\n" "$test" "$1" "$2" "$color_reset" "$3"
|
||||
}
|
||||
|
||||
sep()
|
||||
{
|
||||
printf "\e[2m――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――\e[0m\n"
|
||||
}
|
||||
|
||||
say()
|
||||
{
|
||||
log "$fg_yellow" "•" "$@"
|
||||
}
|
||||
|
||||
skip()
|
||||
{
|
||||
log "$fg_yellow" − "$*"
|
||||
exit 77
|
||||
}
|
||||
|
||||
fail()
|
||||
{
|
||||
log "$fg_red" ✘ "$*"
|
||||
exit 99
|
||||
}
|
||||
|
||||
assert()
|
||||
{
|
||||
__assert_msg=$1
|
||||
shift
|
||||
|
||||
if [ ! "$@" ]; then
|
||||
log "$fg_red" ✘ "$__assert_msg ($*)"
|
||||
return 1
|
||||
fi
|
||||
|
||||
log "$fg_green" ✔ "$__assert_msg"
|
||||
return 0
|
||||
}
|
||||
|
||||
signal()
|
||||
{
|
||||
echo
|
||||
if [ "$1" != "EXIT" ]; then
|
||||
print "Got signal, cleaning up"
|
||||
fi
|
||||
|
||||
rm -rf "${NET_DIR}"
|
||||
if [ -n "$TMPSESS" ] && [ -d "$SESSION" ]; then
|
||||
rm -rf "$SESSION"
|
||||
fi
|
||||
}
|
||||
|
||||
# props to https://stackoverflow.com/a/2183063/1708249
|
||||
# shellcheck disable=SC2064
|
||||
trapit()
|
||||
{
|
||||
func="$1" ; shift
|
||||
for sig ; do
|
||||
trap "$func $sig" "$sig"
|
||||
done
|
||||
}
|
||||
|
||||
create_ng()
|
||||
{
|
||||
_=$((gen += 1))
|
||||
mkdir -p "$NET_DIR/$gen"
|
||||
echo $gen > "$NET_DIR/next"
|
||||
}
|
||||
|
||||
setup()
|
||||
{
|
||||
say "Test start $(date)"
|
||||
create_ng
|
||||
|
||||
# Runs once when including lib.sh
|
||||
mkdir -p "${NET_DIR}"
|
||||
trapit signal INT TERM QUIT EXIT
|
||||
|
||||
ip link set lo up
|
||||
sep
|
||||
}
|
||||
|
||||
netdo()
|
||||
{
|
||||
if [ -n "$DEBUG" ]; then
|
||||
tree "$NET_DIR/"
|
||||
fi
|
||||
|
||||
../net "$DEBUG" apply
|
||||
|
||||
if [ -n "$DEBUG" ]; then
|
||||
ip link
|
||||
ip addr
|
||||
tree "$NET_DIR/"
|
||||
fi
|
||||
}
|
||||
|
||||
setup
|
||||
@@ -3,28 +3,7 @@
|
||||
# - Verify removal of one
|
||||
# - Verify net down
|
||||
# - Verify net up <one>
|
||||
|
||||
NET_DIR=/tmp/net
|
||||
export NET_DIR
|
||||
|
||||
gen=-1
|
||||
|
||||
init()
|
||||
{
|
||||
ip link set lo up
|
||||
}
|
||||
|
||||
netdo()
|
||||
{
|
||||
../net -vd apply
|
||||
}
|
||||
|
||||
create_ng()
|
||||
{
|
||||
_=$((gen += 1))
|
||||
mkdir -p "$NET_DIR/$gen"
|
||||
echo $gen > "$NET_DIR/next"
|
||||
}
|
||||
. "./lib.sh"
|
||||
|
||||
create_iface()
|
||||
{
|
||||
@@ -51,33 +30,19 @@ check_iface()
|
||||
addr="$addr/$plen"
|
||||
updn=$(ip -br -j link show "$ifname" | jq -r '.[] | .flags[] | select(index("UP"))' | head -1)
|
||||
|
||||
echo "$state => $ifname: $updn $addr"
|
||||
|
||||
if [ "$state" != "$updn" ]; then
|
||||
echo "Failed to bring $ifname $state ($updn)"
|
||||
exit 1
|
||||
fi
|
||||
if [ "$address" != "$addr" ]; then
|
||||
echo "Failed to set $ifname $address ($addr)"
|
||||
exit 1
|
||||
fi
|
||||
# echo "$state => $ifname: $updn $addr"
|
||||
assert "Verify $ifname state $state" "$state" = "$updn"
|
||||
assert "Verify $ifname address $address" "$address" = "$addr"
|
||||
}
|
||||
|
||||
init
|
||||
|
||||
create_ng
|
||||
say "Verify bringup of generation $gen"
|
||||
create_iface eth0 10.0.0.1/24
|
||||
create_iface eth1 10.0.1.1/24
|
||||
create_iface eth2 10.0.2.1/24
|
||||
tree "$NET_DIR/"
|
||||
|
||||
netdo
|
||||
|
||||
check_iface eth0 10.0.0.1/24
|
||||
check_iface eth1 10.0.1.1/24
|
||||
check_iface eth2 10.0.2.1/24
|
||||
|
||||
ip link
|
||||
ip addr
|
||||
|
||||
|
||||
tree "$NET_DIR/"
|
||||
|
||||
Reference in New Issue
Block a user