python3-scapy: keep UTscapy failure diagnostics in the ptest output

UTscapy writes its detailed report, including the traceback of every
failing test, to a file under ${PTEST_PATH}. Under testimage that path
only exists inside the ephemeral image, which is discarded as soon as the
run finishes, so a failure left nothing behind but a bare

    FAIL: 000.01s Emulate interact()

line and diagnosing it required rebuilding the image by hand.

Pass -F so the report expands only the failed tests, and cat it to stdout
when there is one, where ptest-runner records it. A clean run is
unaffected.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj
2026-08-20 00:21:51 +02:00
committed by Khem Raj
parent c78566f4b0
commit d896a97b88
@@ -6,6 +6,17 @@ if ! nslookup example.com; then
trap "mv /etc/resolv.conf.bak /etc/resolv.conf" INT EXIT
fi
python3 UTscapy.py -t regression.uts -f text -l -C -K skipped_ptest \
-o @PTEST_PATH@/scapy_ptest_$(date +%Y%m%d-%H%M%S).log \
UTSCAPY_LOG=@PTEST_PATH@/scapy_ptest_$(date +%Y%m%d-%H%M%S).log
# -F expands only the failed tests in the report, keeping it small while still
# recording the traceback of anything that failed.
python3 UTscapy.py -t regression.uts -f text -l -C -F -K skipped_ptest \
-o $UTSCAPY_LOG \
2>&1 | sed -e 's/^passed None/PASS:/' -e 's/^failed None/FAIL:/'
# The report only exists inside the ephemeral test image, so echo the details of
# any failure to stdout, where ptest-runner records them.
if grep -qE '^###.*=\[(failed|interrupted)\]' $UTSCAPY_LOG 2>/dev/null; then
echo "--- UTscapy failure details ---"
cat $UTSCAPY_LOG
fi