Skip to content

Commit 8a89015

Browse files
Phil Sutterummakynes
authored andcommitted
selftests: netfilter: Fix nft_audit.sh for newer nft binaries
As a side-effect of nftables' commit dbff26bfba833 ("cache: consolidate reset command"), audit logs changed when more objects were reset than fit into a single netlink message. Since the objects' distribution in netlink messages is not relevant, implement a summarizing function which combines repeated audit logs into a single one with summed up 'entries=' value. Fixes: 203bb9d ("selftests: netfilter: Extend nft_audit.sh") Signed-off-by: Phil Sutter <[email protected]> Signed-off-by: Pablo Neira Ayuso <[email protected]>
1 parent 76f1ed0 commit 8a89015

File tree

1 file changed

+29
-28
lines changed

1 file changed

+29
-28
lines changed

tools/testing/selftests/net/netfilter/nft_audit.sh

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,31 @@ logread_pid=$!
4848
trap 'kill $logread_pid; rm -f $logfile $rulefile' EXIT
4949
exec 3<"$logfile"
5050

51+
lsplit='s/^\(.*\) entries=\([^ ]*\) \(.*\)$/pfx="\1"\nval="\2"\nsfx="\3"/'
52+
summarize_logs() {
53+
sum=0
54+
while read line; do
55+
eval $(sed "$lsplit" <<< "$line")
56+
[[ $sum -gt 0 ]] && {
57+
[[ "$pfx $sfx" == "$tpfx $tsfx" ]] && {
58+
let "sum += val"
59+
continue
60+
}
61+
echo "$tpfx entries=$sum $tsfx"
62+
}
63+
tpfx="$pfx"
64+
tsfx="$sfx"
65+
sum=$val
66+
done
67+
echo "$tpfx entries=$sum $tsfx"
68+
}
69+
5170
do_test() { # (cmd, log)
5271
echo -n "testing for cmd: $1 ... "
5372
cat <&3 >/dev/null
5473
$1 >/dev/null || exit 1
5574
sleep 0.1
56-
res=$(diff -a -u <(echo "$2") - <&3)
75+
res=$(diff -a -u <(echo "$2") <(summarize_logs <&3))
5776
[ $? -eq 0 ] && { echo "OK"; return; }
5877
echo "FAIL"
5978
grep -v '^\(---\|+++\|@@\)' <<< "$res"
@@ -152,31 +171,17 @@ do_test 'nft reset rules t1 c2' \
152171
'table=t1 family=2 entries=3 op=nft_reset_rule'
153172

154173
do_test 'nft reset rules table t1' \
155-
'table=t1 family=2 entries=3 op=nft_reset_rule
156-
table=t1 family=2 entries=3 op=nft_reset_rule
157-
table=t1 family=2 entries=3 op=nft_reset_rule'
174+
'table=t1 family=2 entries=9 op=nft_reset_rule'
158175

159176
do_test 'nft reset rules t2 c3' \
160-
'table=t2 family=2 entries=189 op=nft_reset_rule
161-
table=t2 family=2 entries=188 op=nft_reset_rule
162-
table=t2 family=2 entries=126 op=nft_reset_rule'
177+
'table=t2 family=2 entries=503 op=nft_reset_rule'
163178

164179
do_test 'nft reset rules t2' \
165-
'table=t2 family=2 entries=3 op=nft_reset_rule
166-
table=t2 family=2 entries=3 op=nft_reset_rule
167-
table=t2 family=2 entries=186 op=nft_reset_rule
168-
table=t2 family=2 entries=188 op=nft_reset_rule
169-
table=t2 family=2 entries=129 op=nft_reset_rule'
180+
'table=t2 family=2 entries=509 op=nft_reset_rule'
170181

171182
do_test 'nft reset rules' \
172-
'table=t1 family=2 entries=3 op=nft_reset_rule
173-
table=t1 family=2 entries=3 op=nft_reset_rule
174-
table=t1 family=2 entries=3 op=nft_reset_rule
175-
table=t2 family=2 entries=3 op=nft_reset_rule
176-
table=t2 family=2 entries=3 op=nft_reset_rule
177-
table=t2 family=2 entries=180 op=nft_reset_rule
178-
table=t2 family=2 entries=188 op=nft_reset_rule
179-
table=t2 family=2 entries=135 op=nft_reset_rule'
183+
'table=t1 family=2 entries=9 op=nft_reset_rule
184+
table=t2 family=2 entries=509 op=nft_reset_rule'
180185

181186
# resetting sets and elements
182187

@@ -200,13 +205,11 @@ do_test 'nft reset counters t1' \
200205
'table=t1 family=2 entries=1 op=nft_reset_obj'
201206

202207
do_test 'nft reset counters t2' \
203-
'table=t2 family=2 entries=342 op=nft_reset_obj
204-
table=t2 family=2 entries=158 op=nft_reset_obj'
208+
'table=t2 family=2 entries=500 op=nft_reset_obj'
205209

206210
do_test 'nft reset counters' \
207211
'table=t1 family=2 entries=1 op=nft_reset_obj
208-
table=t2 family=2 entries=341 op=nft_reset_obj
209-
table=t2 family=2 entries=159 op=nft_reset_obj'
212+
table=t2 family=2 entries=500 op=nft_reset_obj'
210213

211214
# resetting quotas
212215

@@ -217,13 +220,11 @@ do_test 'nft reset quotas t1' \
217220
'table=t1 family=2 entries=1 op=nft_reset_obj'
218221

219222
do_test 'nft reset quotas t2' \
220-
'table=t2 family=2 entries=315 op=nft_reset_obj
221-
table=t2 family=2 entries=185 op=nft_reset_obj'
223+
'table=t2 family=2 entries=500 op=nft_reset_obj'
222224

223225
do_test 'nft reset quotas' \
224226
'table=t1 family=2 entries=1 op=nft_reset_obj
225-
table=t2 family=2 entries=314 op=nft_reset_obj
226-
table=t2 family=2 entries=186 op=nft_reset_obj'
227+
table=t2 family=2 entries=500 op=nft_reset_obj'
227228

228229
# deleting rules
229230

0 commit comments

Comments
 (0)