Blame tests/shell/testcases/rule_management/0001addinsertposition_0

Packit Service e7ae83
#!/bin/bash
Packit Service e7ae83
Packit Service e7ae83
# tests for Netfilter bug #965 and the related fix
Packit Service e7ae83
# (regarding rule management with a given position/handle spec)
Packit Service e7ae83
Packit Service e7ae83
set -e
Packit Service e7ae83
Packit Service e7ae83
RULESET="flush ruleset
Packit Service e7ae83
table ip t {
Packit Service e7ae83
	chain c {
Packit Service e7ae83
		accept
Packit Service e7ae83
		accept
Packit Service e7ae83
	}
Packit Service e7ae83
}"
Packit Service e7ae83
Packit Service e7ae83
EXPECTED="table ip t {
Packit Service e7ae83
	chain c {
Packit Service e7ae83
		accept
Packit Service e7ae83
		drop
Packit Service e7ae83
		accept
Packit Service e7ae83
	}
Packit Service e7ae83
}"
Packit Service e7ae83
Packit Service e7ae83
for arg in "position 2" "handle 2" "index 0"; do
Packit Service e7ae83
	$NFT -f - <<< "$RULESET"
Packit Service e7ae83
	$NFT add rule t c $arg drop || {
Packit Service e7ae83
		$NFT list ruleset
Packit Service e7ae83
		exit 1
Packit Service e7ae83
	}
Packit Service e7ae83
Packit Service e7ae83
	GET="$($NFT list ruleset)"
Packit Service e7ae83
	if [ "$EXPECTED" != "$GET" ] ; then
Packit Service fbe584
		$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
Packit Service e7ae83
		exit 1
Packit Service e7ae83
	fi
Packit Service e7ae83
done
Packit Service e7ae83
Packit Service e7ae83
for arg in "position 3" "handle 3" "index 1"; do
Packit Service e7ae83
	$NFT -f - <<< "$RULESET"
Packit Service e7ae83
	$NFT insert rule t c $arg drop
Packit Service e7ae83
Packit Service e7ae83
	GET="$($NFT list ruleset)"
Packit Service e7ae83
	if [ "$EXPECTED" != "$GET" ] ; then
Packit Service fbe584
		$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
Packit Service e7ae83
		exit 1
Packit Service e7ae83
	fi
Packit Service e7ae83
done
Packit Service e7ae83
Packit Service e7ae83
EXPECTED="table ip t {
Packit Service e7ae83
	chain c {
Packit Service e7ae83
		accept
Packit Service e7ae83
		accept
Packit Service e7ae83
		drop
Packit Service e7ae83
	}
Packit Service e7ae83
}"
Packit Service e7ae83
Packit Service e7ae83
for arg in "position 3" "handle 3" "index 1"; do
Packit Service e7ae83
	$NFT -f - <<< "$RULESET"
Packit Service e7ae83
	$NFT add rule t c $arg drop
Packit Service e7ae83
Packit Service e7ae83
	GET="$($NFT list ruleset)"
Packit Service e7ae83
	if [ "$EXPECTED" != "$GET" ] ; then
Packit Service fbe584
		$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
Packit Service e7ae83
		exit 1
Packit Service e7ae83
	fi
Packit Service e7ae83
done
Packit Service e7ae83
Packit Service e7ae83
EXPECTED="table ip t {
Packit Service e7ae83
	chain c {
Packit Service e7ae83
		drop
Packit Service e7ae83
		accept
Packit Service e7ae83
		accept
Packit Service e7ae83
	}
Packit Service e7ae83
}"
Packit Service e7ae83
Packit Service e7ae83
for arg in "position 2" "handle 2" "index 0"; do
Packit Service e7ae83
	$NFT -f - <<< "$RULESET"
Packit Service e7ae83
	$NFT insert rule t c $arg drop
Packit Service e7ae83
Packit Service e7ae83
	GET="$($NFT list ruleset)"
Packit Service e7ae83
	if [ "$EXPECTED" != "$GET" ] ; then
Packit Service fbe584
		$DIFF -u <(echo "$EXPECTED") <(echo "$GET")
Packit Service e7ae83
		exit 1
Packit Service e7ae83
	fi
Packit Service e7ae83
done