]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests: ovpn: flatten slurped notification JSON before filtering
authorRalf Lici <ralf@mandelbit.com>
Tue, 24 Mar 2026 14:54:18 +0000 (15:54 +0100)
committerAntonio Quartulli <antonio@openvpn.net>
Fri, 17 Apr 2026 08:54:03 +0000 (10:54 +0200)
Notification comparison uses jq -s, which slurps all inputs into an
array. Some inputs can be arrays themselves, and applying the .msg.peer
filter directly on those entries triggers jq type errors.

Expand any array-valued JSON items returned by jq -s before selecting
.msg.peer, so the filter handles both normal notification objects and []
entries without type errors.

Fixes: 77de28cd7cf1 ("selftests: ovpn: add notification parsing and matching")
Signed-off-by: Ralf Lici <ralf@mandelbit.com>
Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
tools/testing/selftests/net/ovpn/common.sh

index c92415aaddfc2e45c7ceb73ac2a6a5d1962065de..d3b322e84fab8431046951b6eee0b7be7ff8abc6 100644 (file)
@@ -15,7 +15,8 @@ SYMMETRIC_ID=${SYMMETRIC_ID:-0}
 
 export ID_OFFSET=$(( 9 * (SYMMETRIC_ID == 0) ))
 
-JQ_FILTER='map(select(.msg.peer | has("remote-ipv6") | not)) |
+JQ_FILTER='map(if type == "array" then .[] else . end) |
+       map(select(.msg.peer | has("remote-ipv6") | not)) |
        map(del(.msg.ifindex)) | sort_by(.msg.peer.id)[]'
 LAN_IP="11.11.11.11"