mirror of
https://github.com/kernelkit/infix.git
synced 2026-08-01 21:33:02 +02:00
test: Add show routes (ipv4 and ipv6) to test CLI test suite
This commit is contained in:
committed by
Joachim Wiberg
parent
35d74cecd4
commit
7cce19d45c
@@ -0,0 +1,13 @@
|
||||
[7mPREFIX NEXT-HOP PREF PROTOCOL [0m
|
||||
10.0.0.1/32 10.0.13.1 20 ospf
|
||||
10.0.0.2/32 10.0.23.1 20 ospf
|
||||
10.0.0.4/32 10.0.13.1 20 ospf
|
||||
10.0.23.1
|
||||
10.0.12.0/30 10.0.13.1 20 ospf
|
||||
10.0.23.1
|
||||
10.0.13.0/30 eth3 0 kernel
|
||||
10.0.23.0/30 eth4 0 kernel
|
||||
10.0.24.0/30 10.0.23.1 20 ospf
|
||||
10.0.41.0/30 10.0.13.1 20 ospf
|
||||
192.168.4.0/24 10.0.13.1 20 ospf
|
||||
10.0.23.1
|
||||
@@ -0,0 +1,10 @@
|
||||
[7mPREFIX NEXT-HOP PREF PROTOCOL [0m
|
||||
2001:db8:3c4d:50::/64 eth4 256 kernel
|
||||
2001:db8:3c4d:200::1/128 lo 256 kernel
|
||||
fe80::/64 eth5 256 kernel
|
||||
fe80::/64 eth3 256 kernel
|
||||
fe80::/64 eth2 256 kernel
|
||||
fe80::/64 eth1 256 kernel
|
||||
fe80::/64 eth0 256 kernel
|
||||
fe80::/64 eth4 256 kernel
|
||||
::/0 2001:db8:3c4d:50::1 20 static
|
||||
+41
-10
@@ -33,7 +33,7 @@ print_update_txt() {
|
||||
echo "# the template file."
|
||||
echo
|
||||
echo "# Here's how you update the CLI output templates:"
|
||||
echo "# $SCRIPT_PATH/run.sh update"
|
||||
echo "# $SCRIPT_PATH/run.sh update <model>"
|
||||
echo
|
||||
echo "# Check the result"
|
||||
echo "# git diff"
|
||||
@@ -47,28 +47,58 @@ if [ ! -e "$CLI_PRETTY_TOOL" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $# -eq 1 ] && [ $1 = "update" ]; then
|
||||
"$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-interfaces" > "$CLI_OUTPUT_PATH/show-interfaces.txt"
|
||||
for iface in "br0" "e0" "e1" "e2" "e3" "e4"; do
|
||||
"$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-interfaces" -n "$iface" \
|
||||
> "$CLI_OUTPUT_PATH/show-interface-${iface}.txt"
|
||||
done
|
||||
echo "All files updated. Check git diff and commit if they look OK"
|
||||
if [ $# -eq 2 ] && [ $1 = "update" ]; then
|
||||
if [ $2 = "ietf-interfaces" ]; then
|
||||
"$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-interfaces" > "$CLI_OUTPUT_PATH/show-interfaces.txt"
|
||||
for iface in "br0" "e0" "e1" "e2" "e3" "e4"; do
|
||||
"$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-interfaces" -n "$iface" \
|
||||
> "$CLI_OUTPUT_PATH/show-interface-${iface}.txt"
|
||||
done
|
||||
elif [ $2 = "ietf-routing" ]; then
|
||||
"$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-routing" -n "ipv4" > "$CLI_OUTPUT_PATH/show-routes-ipv4.txt"
|
||||
"$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-routing" -n "ipv6" > "$CLI_OUTPUT_PATH/show-routes-ipv6.txt"
|
||||
else
|
||||
echo "Unsupported model $2"
|
||||
exit 1
|
||||
fi
|
||||
echo "All files updated. Check git diff and commit if they look OK"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "1..7"
|
||||
echo "1..9"
|
||||
echo "# Running:"
|
||||
|
||||
# Show interfaces
|
||||
echo "# Running:"
|
||||
echo "# $SR_EMULATOR_TOOL | $CLI_PRETTY_TOOL ietf-interfaces"
|
||||
"$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-interfaces" > "$CLI_OUTPUT_FILE"
|
||||
# Show routes
|
||||
if ! diff -u "$CLI_OUTPUT_PATH/show-interfaces.txt" "$CLI_OUTPUT_FILE"; then
|
||||
print_update_txt
|
||||
fail "\"show interfaces\" output has changed"
|
||||
fi
|
||||
ok "\"show interfaces\" output looks intact"
|
||||
|
||||
# Show ipv4 routes
|
||||
echo "# $SR_EMULATOR_TOOL | $CLI_PRETTY_TOOL ietf-routing -n ipv4"
|
||||
"$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-routing" -n "ipv4" > "$CLI_OUTPUT_FILE"
|
||||
# Show routes
|
||||
if ! diff -u "$CLI_OUTPUT_PATH/show-routes-ipv4.txt" "$CLI_OUTPUT_FILE"; then
|
||||
print_update_txt
|
||||
fail "\"show routes ipv4\" output has changed"
|
||||
fi
|
||||
ok "\"show routes ipv4\" output looks intact"
|
||||
|
||||
# Show ipv6 routes
|
||||
echo "# $SR_EMULATOR_TOOL | $CLI_PRETTY_TOOL ietf-routing -n ipv6"
|
||||
"$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-routing" -n "ipv6" > "$CLI_OUTPUT_FILE"
|
||||
|
||||
# Show routes
|
||||
if ! diff -u "$CLI_OUTPUT_PATH/show-routes-ipv6.txt" "$CLI_OUTPUT_FILE"; then
|
||||
print_update_txt
|
||||
fail "\"show routes ipv6\" output has changed"
|
||||
fi
|
||||
ok "\"show routes ipv6\" output looks intact"
|
||||
|
||||
# Show detailed interfaces
|
||||
for iface in "br0" "e0" "e1" "e2" "e3" "e4"; do
|
||||
"$SR_EMULATOR_TOOL" | "$CLI_PRETTY_TOOL" "ietf-interfaces" -n "$iface" > "$CLI_OUTPUT_FILE"
|
||||
@@ -78,3 +108,4 @@ for iface in "br0" "e0" "e1" "e2" "e3" "e4"; do
|
||||
fi
|
||||
ok "\"show interface name $iface\" output looks intact"
|
||||
done
|
||||
|
||||
|
||||
@@ -7,10 +7,12 @@ YANGER_TOOL="$ROOT_PATH/board/netconf/rootfs/libexec/infix/yanger"
|
||||
|
||||
INTERFACES="br0 e0 e1 e2 e3 e4"
|
||||
|
||||
YANGER_OUTPUT_FILE="$(mktemp)"
|
||||
|
||||
INTERFACE_OUTPUT_FILE="$(mktemp)"
|
||||
INTERFACES_OUTPUT_FILE="$(mktemp)"
|
||||
ROUTES_OUTPUT_FILE="$(mktemp)"
|
||||
cleanup() {
|
||||
rm -f "$YANGER_OUTPUT_FILE"
|
||||
rm -f "$INTERFACE_OUTPUT_FILE"
|
||||
rm -f "$ROUTES_OUTPUT_FILE"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
@@ -19,10 +21,11 @@ if [ ! -e "$YANGER_TOOL" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
for iface in $INTERFACES; do
|
||||
if ! "$YANGER_TOOL" "ietf-interfaces" \
|
||||
-t "$SCRIPT_PATH/system-output/" \
|
||||
-p "$iface" >> "$YANGER_OUTPUT_FILE"; then
|
||||
-p "$iface" >> "$INTERFACE_OUTPUT_FILE"; then
|
||||
echo "Error, running yanger for interface $iface" >&2
|
||||
exit 1
|
||||
fi
|
||||
@@ -31,7 +34,12 @@ done
|
||||
if ! jq -s 'reduce .[] as $item
|
||||
({}; .["ietf-interfaces:interfaces"].interface +=
|
||||
$item["ietf-interfaces:interfaces"].interface)' \
|
||||
"$YANGER_OUTPUT_FILE"; then
|
||||
"$INTERFACE_OUTPUT_FILE" >> $INTERFACES_OUTPUT_FILE; then
|
||||
echo "Error, merging yanger output data" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$YANGER_TOOL "ietf-routing" -t "$SCRIPT_PATH/system-output/" > "$ROUTES_OUTPUT_FILE"
|
||||
|
||||
# Merge all module files
|
||||
jq -s '.[0] * .[1]' $ROUTES_OUTPUT_FILE $INTERFACES_OUTPUT_FILE
|
||||
|
||||
@@ -0,0 +1,207 @@
|
||||
[
|
||||
{
|
||||
"type": "unicast",
|
||||
"dst": "10.0.0.1",
|
||||
"nhid": 33,
|
||||
"gateway": "10.0.13.1",
|
||||
"dev": "eth3",
|
||||
"protocol": "ospf",
|
||||
"scope": "global",
|
||||
"metric": 20,
|
||||
"flags": [],
|
||||
"nh_info": {
|
||||
"id": 33,
|
||||
"gateway": "10.0.13.1",
|
||||
"dev": "eth3",
|
||||
"scope": "link",
|
||||
"protocol": "zebra",
|
||||
"flags": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "unicast",
|
||||
"dst": "10.0.0.2",
|
||||
"nhid": 34,
|
||||
"gateway": "10.0.23.1",
|
||||
"dev": "eth4",
|
||||
"protocol": "ospf",
|
||||
"scope": "global",
|
||||
"metric": 20,
|
||||
"flags": [],
|
||||
"nh_info": {
|
||||
"id": 34,
|
||||
"gateway": "10.0.23.1",
|
||||
"dev": "eth4",
|
||||
"scope": "link",
|
||||
"protocol": "zebra",
|
||||
"flags": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "unicast",
|
||||
"dst": "10.0.0.4",
|
||||
"nhid": 35,
|
||||
"protocol": "ospf",
|
||||
"scope": "global",
|
||||
"metric": 20,
|
||||
"flags": [],
|
||||
"nh_info": {
|
||||
"id": 35,
|
||||
"group": [
|
||||
{
|
||||
"id": 33
|
||||
},
|
||||
{
|
||||
"id": 34
|
||||
}
|
||||
],
|
||||
"scope": "global",
|
||||
"protocol": "zebra",
|
||||
"flags": []
|
||||
},
|
||||
"nexthops": [
|
||||
{
|
||||
"gateway": "10.0.13.1",
|
||||
"dev": "eth3",
|
||||
"weight": 1,
|
||||
"flags": []
|
||||
},
|
||||
{
|
||||
"gateway": "10.0.23.1",
|
||||
"dev": "eth4",
|
||||
"weight": 1,
|
||||
"flags": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "unicast",
|
||||
"dst": "10.0.12.0/30",
|
||||
"nhid": 35,
|
||||
"protocol": "ospf",
|
||||
"scope": "global",
|
||||
"metric": 20,
|
||||
"flags": [],
|
||||
"nh_info": {
|
||||
"id": 35,
|
||||
"group": [
|
||||
{
|
||||
"id": 33
|
||||
},
|
||||
{
|
||||
"id": 34
|
||||
}
|
||||
],
|
||||
"scope": "global",
|
||||
"protocol": "zebra",
|
||||
"flags": []
|
||||
},
|
||||
"nexthops": [
|
||||
{
|
||||
"gateway": "10.0.13.1",
|
||||
"dev": "eth3",
|
||||
"weight": 1,
|
||||
"flags": []
|
||||
},
|
||||
{
|
||||
"gateway": "10.0.23.1",
|
||||
"dev": "eth4",
|
||||
"weight": 1,
|
||||
"flags": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "unicast",
|
||||
"dst": "10.0.13.0/30",
|
||||
"dev": "eth3",
|
||||
"protocol": "kernel",
|
||||
"scope": "link",
|
||||
"prefsrc": "10.0.13.2",
|
||||
"flags": []
|
||||
},
|
||||
{
|
||||
"type": "unicast",
|
||||
"dst": "10.0.23.0/30",
|
||||
"dev": "eth4",
|
||||
"protocol": "kernel",
|
||||
"scope": "link",
|
||||
"prefsrc": "10.0.23.2",
|
||||
"flags": []
|
||||
},
|
||||
{
|
||||
"type": "unicast",
|
||||
"dst": "10.0.24.0/30",
|
||||
"nhid": 34,
|
||||
"gateway": "10.0.23.1",
|
||||
"dev": "eth4",
|
||||
"protocol": "ospf",
|
||||
"scope": "global",
|
||||
"metric": 20,
|
||||
"flags": [],
|
||||
"nh_info": {
|
||||
"id": 34,
|
||||
"gateway": "10.0.23.1",
|
||||
"dev": "eth4",
|
||||
"scope": "link",
|
||||
"protocol": "zebra",
|
||||
"flags": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "unicast",
|
||||
"dst": "10.0.41.0/30",
|
||||
"nhid": 33,
|
||||
"gateway": "10.0.13.1",
|
||||
"dev": "eth3",
|
||||
"protocol": "ospf",
|
||||
"scope": "global",
|
||||
"metric": 20,
|
||||
"flags": [],
|
||||
"nh_info": {
|
||||
"id": 33,
|
||||
"gateway": "10.0.13.1",
|
||||
"dev": "eth3",
|
||||
"scope": "link",
|
||||
"protocol": "zebra",
|
||||
"flags": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "unicast",
|
||||
"dst": "192.168.4.0/24",
|
||||
"nhid": 35,
|
||||
"protocol": "ospf",
|
||||
"scope": "global",
|
||||
"metric": 20,
|
||||
"flags": [],
|
||||
"nh_info": {
|
||||
"id": 35,
|
||||
"group": [
|
||||
{
|
||||
"id": 33
|
||||
},
|
||||
{
|
||||
"id": 34
|
||||
}
|
||||
],
|
||||
"scope": "global",
|
||||
"protocol": "zebra",
|
||||
"flags": []
|
||||
},
|
||||
"nexthops": [
|
||||
{
|
||||
"gateway": "10.0.13.1",
|
||||
"dev": "eth3",
|
||||
"weight": 1,
|
||||
"flags": []
|
||||
},
|
||||
{
|
||||
"gateway": "10.0.23.1",
|
||||
"dev": "eth4",
|
||||
"weight": 1,
|
||||
"flags": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1 @@
|
||||
[{"type":"unicast","dst":"2001:db8:3c4d:50::/64","dev":"eth4","protocol":"kernel","scope":"global","metric":256,"flags":[],"pref":"medium"},{"type":"unicast","dst":"2001:db8:3c4d:200::1","dev":"lo","protocol":"kernel","scope":"global","metric":256,"flags":[],"pref":"medium"},{"type":"unicast","dst":"fe80::/64","dev":"eth5","protocol":"kernel","scope":"global","metric":256,"flags":[],"pref":"medium"},{"type":"unicast","dst":"fe80::/64","dev":"eth3","protocol":"kernel","scope":"global","metric":256,"flags":[],"pref":"medium"},{"type":"unicast","dst":"fe80::/64","dev":"eth2","protocol":"kernel","scope":"global","metric":256,"flags":[],"pref":"medium"},{"type":"unicast","dst":"fe80::/64","dev":"eth1","protocol":"kernel","scope":"global","metric":256,"flags":[],"pref":"medium"},{"type":"unicast","dst":"fe80::/64","dev":"eth0","protocol":"kernel","scope":"global","metric":256,"flags":[],"pref":"medium"},{"type":"unicast","dst":"fe80::/64","dev":"eth4","protocol":"kernel","scope":"global","metric":256,"flags":[],"pref":"medium"},{"type":"unicast","dst":"default","nhid":23,"gateway":"2001:db8:3c4d:50::1","dev":"eth4","protocol":"static","scope":"global","metric":20,"flags":[],"pref":"medium","nh_info":{"id":23,"gateway":"2001:db8:3c4d:50::1","dev":"eth4","scope":"link","protocol":"zebra","flags":[]}}]
|
||||
@@ -37,8 +37,3 @@
|
||||
- "json/bloated.json"
|
||||
- "ietf-interfaces"
|
||||
- "-n br0"
|
||||
- case: run.sh
|
||||
name: "routing"
|
||||
opts:
|
||||
- "json/bloated.json"
|
||||
- "ietf-routing"
|
||||
|
||||
Reference in New Issue
Block a user