Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/tests/lib/libc/setjmp



Module Name:    src
Committed By:   riastradh
Date:           Mon Apr 28 00:28:27 UTC 2025

Modified Files:
        src/tests/lib/libc/setjmp: t_sigstack.c

Log Message:
t_sigstack: Don't do atf_tc_expect_fail then atf_tc_expect_signal.

atf interprets this sequence, with no intervening atf_tc_fail, to
mean the xfail failed to fail so it fails.  (Got that?)  That is, it
is interpreted somewhat like

        atf_tc_expect_fail(...);
        ... there is supposed to be a failure here ...
        atf_tc_expect_pass();
        ... remaining checks are expected to pass ...

where a lack of failures between the xfail and the xpass means the
expectation was not met.

But in this case, there are two compounding bugs:

1. the compat 1.3 setjmp has botched its registers, as uwe@
   discovered, so it is expected to crash on SIGSEGV (PR 59351); and

2. the compat 1.3 longjmp restores the stack poiter and signal mask
   in the wrong order, so it is expected to fail the test (PR 57946).

Since the crash in setjmp triggers before the failure after longjmp,
only do atf_tc_expect_signal; once that is fixed we can re-enable the
atf_tc_expect_fail for longjmp.

PR lib/57946: longjmp fails to restore stack first before restoring
signal mask on most architectures

PR port-arm/59351: compat_setjmp is busted


To generate a diff of this commit:
cvs rdiff -u -r1.21 -r1.22 src/tests/lib/libc/setjmp/t_sigstack.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index