| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- From: Pablo Neira Ayuso <[email protected]>
- Date: Mon, 22 Jan 2018 19:54:36 +0100
- Subject: [PATCH] tests: shell: add flowtable tests
- Add basic flowtable tests.
- Signed-off-by: Pablo Neira Ayuso <[email protected]>
- ---
- create mode 100755 tests/shell/testcases/flowtable/0001flowtable_0
- create mode 100755 tests/shell/testcases/flowtable/0002create_flowtable_0
- create mode 100755 tests/shell/testcases/flowtable/0003add_after_flush_0
- create mode 100755 tests/shell/testcases/flowtable/0004delete_after_add0
- create mode 100755 tests/shell/testcases/flowtable/0005delete_in_use_1
- --- a/tests/shell/run-tests.sh
- +++ b/tests/shell/run-tests.sh
- @@ -68,7 +68,9 @@ kernel_cleanup() {
- nft_set_hash nft_set_rbtree nft_set_bitmap \
- nft_chain_nat_ipv4 nft_chain_nat_ipv6 \
- nf_tables_inet nf_tables_bridge nf_tables_arp \
- - nf_tables_ipv4 nf_tables_ipv6 nf_tables
- + nf_tables_ipv4 nf_tables_ipv6 nf_tables \
- + nf_flow_table nf_flow_table_ipv4 nf_flow_tables_ipv6 \
- + nf_flow_table_inet nft_flow_offload
- }
-
- find_tests() {
- --- /dev/null
- +++ b/tests/shell/testcases/flowtable/0001flowtable_0
- @@ -0,0 +1,33 @@
- +#!/bin/bash
- +
- +tmpfile=$(mktemp)
- +if [ ! -w $tmpfile ] ; then
- + echo "Failed to create tmp file" >&2
- + exit 0
- +fi
- +
- +trap "rm -rf $tmpfile" EXIT # cleanup if aborted
- +
- +
- +EXPECTED='table inet t {
- + flowtable f {
- + hook ingress priority 10
- + devices = { eth0, wlan0 }
- + }
- +
- + chain c {
- + flow offload @f
- + }
- +}'
- +
- +echo "$EXPECTED" > $tmpfile
- +set -e
- +$NFT -f $tmpfile
- +
- +GET="$($NFT list ruleset)"
- +
- +if [ "$EXPECTED" != "$GET" ] ; then
- + DIFF="$(which diff)"
- + [ -x $DIFF ] && $DIFF -u <(echo "$EXPECTED") <(echo "$GET")
- + exit 1
- +fi
- --- /dev/null
- +++ b/tests/shell/testcases/flowtable/0002create_flowtable_0
- @@ -0,0 +1,12 @@
- +#!/bin/bash
- +
- +set -e
- +$NFT add table t
- +$NFT add flowtable t f { hook ingress priority 10 \; devices = { eth0, wlan0 }\; }
- +if $NFT create flowtable t f { hook ingress priority 10 \; devices = { eth0, wlan0 }\; } 2>/dev/null ; then
- + echo "E: flowtable creation not failing on existing set" >&2
- + exit 1
- +fi
- +$NFT add flowtable t f { hook ingress priority 10 \; devices = { eth0, wlan0 }\; }
- +
- +exit 0
- --- /dev/null
- +++ b/tests/shell/testcases/flowtable/0003add_after_flush_0
- @@ -0,0 +1,8 @@
- +#!/bin/bash
- +
- +set -e
- +$NFT add table x
- +$NFT add flowtable x y { hook ingress priority 0\; devices = { eth0, wlan0 }\;}
- +$NFT flush ruleset
- +$NFT add table x
- +$NFT add flowtable x y { hook ingress priority 0\; devices = { eth0, wlan0 }\;}
- --- /dev/null
- +++ b/tests/shell/testcases/flowtable/0004delete_after_add0
- @@ -0,0 +1,6 @@
- +#!/bin/bash
- +
- +set -e
- +$NFT add table x
- +$NFT add flowtable x y { hook ingress priority 0\; devices = { eth0, wlan0 }\;}
- +$NFT delete flowtable x y
- --- /dev/null
- +++ b/tests/shell/testcases/flowtable/0005delete_in_use_1
- @@ -0,0 +1,9 @@
- +#!/bin/bash
- +
- +set -e
- +$NFT add table x
- +$NFT add chain x x
- +$NFT add flowtable x y { hook ingress priority 0\; devices = { eth0, wlan0 }\;}
- +$NFT add rule x x flow offload @y
- +$NFT delete flowtable x y
- +echo "E: delete flowtable in use"
|