aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/testing/run-net-scenarios.sh8
1 files changed, 7 insertions, 1 deletions
diff --git a/scripts/testing/run-net-scenarios.sh b/scripts/testing/run-net-scenarios.sh
index 7197e37..8d27438 100755
--- a/scripts/testing/run-net-scenarios.sh
+++ b/scripts/testing/run-net-scenarios.sh
@@ -100,13 +100,19 @@ for f in "${S_FILES[@]}"; do
esac
echo "== $name — $SCENARIO_DESC"
scenario_break || { fail "$name: break failed"; exit 1; }
+ # A diagnose miss still runs the fix + assert (the repair result is
+ # worth having either way) but must fail the scenario: rc carries it to
+ # the subshell exit so the run can't report green over a diagnosis
+ # regression.
+ rc=0
if declare -F scenario_diagnose_expect >/dev/null; then
if scenario_diagnose_expect; then pass "$name: diagnose named it"
- else fail "$name: diagnose did NOT name it (inspect net doctor --json)"; fi
+ else fail "$name: diagnose did NOT name it (inspect net doctor --json)"; rc=1; fi
fi
scenario_fix || info "$name: net doctor --fix returned non-zero"
if scenario_assert; then pass "$name: repaired"
else fail "$name: NOT repaired"; exit 1; fi
+ exit "$rc"
) || fails=$((fails + 1))
done