diff options
| -rw-r--r-- | meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch | 69 | ||||
| -rw-r--r-- | meta/recipes-extended/ltp/ltp_20200515.bb | 1 |
2 files changed, 70 insertions, 0 deletions
diff --git a/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch b/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch new file mode 100644 index 0000000000..17d5af89e2 --- /dev/null +++ b/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch | |||
| @@ -0,0 +1,69 @@ | |||
| 1 | From e0a63deb1857eb90288e90d6368df70cdd0c0ec9 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Khem Raj <raj.khem@gmail.com> | ||
| 3 | Date: Thu, 28 May 2020 13:04:33 -0700 | ||
| 4 | Subject: [PATCH] sigwaitinfo: Do not run invalid/undefined test cases | ||
| 5 | |||
| 6 | These testcases run for eternity on musl | ||
| 7 | |||
| 8 | test_bad_address* cases are passing invalid pointers to a function; that's always UB | ||
| 9 | empty_set and timeout rely on the implementation-defined "may fail" for EINTR in sigtimedwait [1] | ||
| 10 | |||
| 11 | normally "may fail" is an "unspecified" but here the impl | ||
| 12 | is supposed to document it so it's "impl-defined" | ||
| 13 | |||
| 14 | [1] https://pubs.opengroup.org/onlinepubs/9699919799/functions/sigtimedwait.html | ||
| 15 | |||
| 16 | Upstream-Status: Submitted [https://patchwork.ozlabs.org/project/ltp/patch/20200528204556.2444156-1-raj.khem@gmail.com/] | ||
| 17 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 18 | Cc: Rich Felker <dalias@aerifal.cx> | ||
| 19 | --- | ||
| 20 | .../kernel/syscalls/sigwaitinfo/sigwaitinfo01.c | 12 ++---------- | ||
| 21 | 1 file changed, 2 insertions(+), 10 deletions(-) | ||
| 22 | |||
| 23 | --- a/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c | ||
| 24 | +++ b/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c | ||
| 25 | @@ -422,15 +422,10 @@ struct test_desc { | ||
| 26 | } tests[] = { | ||
| 27 | #ifdef TEST_RT_SIGTIMEDWAIT | ||
| 28 | { | ||
| 29 | - test_empty_set, my_rt_sigtimedwait, SIGUSR1}, { | ||
| 30 | test_unmasked_matching, my_rt_sigtimedwait, SIGUSR1}, { | ||
| 31 | test_masked_matching, my_rt_sigtimedwait, SIGUSR1}, { | ||
| 32 | test_unmasked_matching_noinfo, my_rt_sigtimedwait, SIGUSR1}, { | ||
| 33 | - test_masked_matching_noinfo, my_rt_sigtimedwait, SIGUSR1}, { | ||
| 34 | - test_bad_address, my_rt_sigtimedwait, SIGUSR1}, { | ||
| 35 | - test_bad_address2, my_rt_sigtimedwait, SIGUSR1}, { | ||
| 36 | - test_bad_address3, my_rt_sigtimedwait, SIGUSR1}, { | ||
| 37 | - test_timeout, my_rt_sigtimedwait, 0}, | ||
| 38 | + test_masked_matching_noinfo, my_rt_sigtimedwait, SIGUSR1}, | ||
| 39 | /* Special cases */ | ||
| 40 | /* 1: sigwaitinfo does respond to ignored signal */ | ||
| 41 | { | ||
| 42 | @@ -452,25 +447,17 @@ struct test_desc { | ||
| 43 | #endif | ||
| 44 | #if defined TEST_SIGWAITINFO | ||
| 45 | { | ||
| 46 | - test_empty_set, my_sigwaitinfo, SIGUSR1}, { | ||
| 47 | test_unmasked_matching, my_sigwaitinfo, SIGUSR1}, { | ||
| 48 | test_masked_matching, my_sigwaitinfo, SIGUSR1}, { | ||
| 49 | test_unmasked_matching_noinfo, my_sigwaitinfo, SIGUSR1}, { | ||
| 50 | - test_masked_matching_noinfo, my_sigwaitinfo, SIGUSR1}, { | ||
| 51 | - test_bad_address, my_sigwaitinfo, SIGUSR1}, { | ||
| 52 | - test_bad_address2, my_sigwaitinfo, SIGUSR1}, | ||
| 53 | + test_masked_matching_noinfo, my_sigwaitinfo, SIGUSR1}, | ||
| 54 | #endif | ||
| 55 | #if defined TEST_SIGTIMEDWAIT | ||
| 56 | { | ||
| 57 | - test_empty_set, my_sigtimedwait, SIGUSR1}, { | ||
| 58 | test_unmasked_matching, my_sigtimedwait, SIGUSR1}, { | ||
| 59 | test_masked_matching, my_sigtimedwait, SIGUSR1}, { | ||
| 60 | test_unmasked_matching_noinfo, my_sigtimedwait, SIGUSR1}, { | ||
| 61 | - test_masked_matching_noinfo, my_sigtimedwait, SIGUSR1}, { | ||
| 62 | - test_bad_address, my_sigtimedwait, SIGUSR1}, { | ||
| 63 | - test_bad_address2, my_sigtimedwait, SIGUSR1}, { | ||
| 64 | - test_bad_address3, my_sigtimedwait, SIGUSR1}, { | ||
| 65 | - test_timeout, my_sigtimedwait, 0}, | ||
| 66 | + test_masked_matching_noinfo, my_sigtimedwait, SIGUSR1}, | ||
| 67 | #endif | ||
| 68 | }; | ||
| 69 | |||
diff --git a/meta/recipes-extended/ltp/ltp_20200515.bb b/meta/recipes-extended/ltp/ltp_20200515.bb index 67c7590320..f2510baa68 100644 --- a/meta/recipes-extended/ltp/ltp_20200515.bb +++ b/meta/recipes-extended/ltp/ltp_20200515.bb | |||
| @@ -35,6 +35,7 @@ SRC_URI = "git://github.com/linux-test-project/ltp.git \ | |||
| 35 | file://0007-Fix-test_proc_kill-hanging.patch \ | 35 | file://0007-Fix-test_proc_kill-hanging.patch \ |
| 36 | file://0001-Add-more-musl-exclusions.patch \ | 36 | file://0001-Add-more-musl-exclusions.patch \ |
| 37 | file://0001-ptrace01-Fix-missing-format-string.patch \ | 37 | file://0001-ptrace01-Fix-missing-format-string.patch \ |
| 38 | file://0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch \ | ||
| 38 | " | 39 | " |
| 39 | 40 | ||
| 40 | S = "${WORKDIR}/git" | 41 | S = "${WORKDIR}/git" |
