summaryrefslogtreecommitdiff
path: root/lib/libc/tests/stdlib/system_test.c
AgeCommit message (Collapse)Author
2026-03-09system(3): Fix brain glitch in previous commitDag-Erling Smørgrav
We were saving SIGINT twice instead of SIGINT and SIGQUIT. Also restore original order of operations (SIGINT then SIGQUIT), which matches the order in which they're discussed in the POSIX description of system(3). MFC after: 1 week Sponsored by: Klara, Inc. Fixes: 48368f702423 ("system(3): Address test robustness issue")
2026-03-09system(3): Address test robustness issueDag-Erling Smørgrav
Don't assume that SIGINT and SIGQUIT are set to SIG_DFL at the start of the test. Instead, retrieve their current dispositions and verify that they are restored at the end of the test. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D55709
2026-02-25system(3): Fix null caseDag-Erling Smørgrav
Our manual page states that if given a null pointer, system() returns non-zero if the shell is available and zero if it is not. This is consistent with the C standard's description of system(), but it is not what we actually do. What we actually do is always return non-zero, as required by POSIX. As the POSIX rationale explains, implementing the logic required by the C standard does not violate POSIX, since a conforming system always has a shell, therefore the logic will always return non-zero. Since our libc is commonly used in non-conforming situations such as chroots or thin jails, we should implement the full logic required by the C standard. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: obiwac, bnovkov, kevans Differential Revision: https://reviews.freebsd.org/D55484
2026-02-25system(3): Write our own testsDag-Erling Smørgrav
Replace the somewhat perfunctory NetBSD tests with our own. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: bnovkov, kevans Differential Revision: https://reviews.freebsd.org/D55482