selftests: ovpn: fail notification check on mismatch

compare_ntfs doesn't fail when expected and received notification
streams diverge.

Fix this bug by tracking the diff exit status explicitly and return it
to the caller so notification mismatches propagate as test failures.

Fixes: 77de28cd7c ("selftests: ovpn: add notification parsing and matching")
Signed-off-by: Ralf Lici <ralf@mandelbit.com>
Signed-off-by: Antonio Quartulli <antonio@openvpn.net>
This commit is contained in:
Ralf Lici
2026-03-23 15:32:26 +01:00
committed by Antonio Quartulli
parent e5fd34ab8d
commit c409da0fe1

View File

@@ -140,23 +140,35 @@ add_peer() {
}
compare_ntfs() {
local diff_rc=0
local diff_file
if [ ${#tmp_jsons[@]} -gt 0 ]; then
suffix=""
[ "${SYMMETRIC_ID}" -eq 1 ] && suffix="${suffix}-symm"
[ "$FLOAT" == 1 ] && suffix="${suffix}-float"
expected="json/peer${1}${suffix}.json"
received="${tmp_jsons[$1]}"
diff_file=$(mktemp)
kill -TERM ${listener_pids[$1]} || true
wait ${listener_pids[$1]} || true
printf "Checking notifications for peer ${1}... "
if diff <(jq -s "${JQ_FILTER}" ${expected}) \
<(jq -s "${JQ_FILTER}" ${received}); then
<(jq -s "${JQ_FILTER}" ${received}) \
>"${diff_file}" 2>&1; then
echo "OK"
else
diff_rc=$?
echo "failed"
cat "${diff_file}"
fi
rm -f "${diff_file}" || true
rm -f ${received} || true
fi
return "${diff_rc}"
}
cleanup() {