summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch')
-rw-r--r--poky/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch69
1 files changed, 69 insertions, 0 deletions
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch b/poky/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch
new file mode 100644
index 000000000..17d5af89e
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-sigwaitinfo-Do-not-run-invalid-undefined-test-cases.patch
@@ -0,0 +1,69 @@
+From e0a63deb1857eb90288e90d6368df70cdd0c0ec9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 28 May 2020 13:04:33 -0700
+Subject: [PATCH] sigwaitinfo: Do not run invalid/undefined test cases
+
+These testcases run for eternity on musl
+
+test_bad_address* cases are passing invalid pointers to a function; that's always UB
+empty_set and timeout rely on the implementation-defined "may fail" for EINTR in sigtimedwait [1]
+
+normally "may fail" is an "unspecified" but here the impl
+is supposed to document it so it's "impl-defined"
+
+[1] https://pubs.opengroup.org/onlinepubs/9699919799/functions/sigtimedwait.html
+
+Upstream-Status: Submitted [https://patchwork.ozlabs.org/project/ltp/patch/20200528204556.2444156-1-raj.khem@gmail.com/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Cc: Rich Felker <dalias@aerifal.cx>
+---
+ .../kernel/syscalls/sigwaitinfo/sigwaitinfo01.c | 12 ++----------
+ 1 file changed, 2 insertions(+), 10 deletions(-)
+
+--- a/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c
++++ b/testcases/kernel/syscalls/sigwaitinfo/sigwaitinfo01.c
+@@ -422,15 +422,10 @@ struct test_desc {
+ } tests[] = {
+ #ifdef TEST_RT_SIGTIMEDWAIT
+ {
+- test_empty_set, my_rt_sigtimedwait, SIGUSR1}, {
+ test_unmasked_matching, my_rt_sigtimedwait, SIGUSR1}, {
+ test_masked_matching, my_rt_sigtimedwait, SIGUSR1}, {
+ test_unmasked_matching_noinfo, my_rt_sigtimedwait, SIGUSR1}, {
+- test_masked_matching_noinfo, my_rt_sigtimedwait, SIGUSR1}, {
+- test_bad_address, my_rt_sigtimedwait, SIGUSR1}, {
+- test_bad_address2, my_rt_sigtimedwait, SIGUSR1}, {
+- test_bad_address3, my_rt_sigtimedwait, SIGUSR1}, {
+- test_timeout, my_rt_sigtimedwait, 0},
++ test_masked_matching_noinfo, my_rt_sigtimedwait, SIGUSR1},
+ /* Special cases */
+ /* 1: sigwaitinfo does respond to ignored signal */
+ {
+@@ -452,25 +447,17 @@ struct test_desc {
+ #endif
+ #if defined TEST_SIGWAITINFO
+ {
+- test_empty_set, my_sigwaitinfo, SIGUSR1}, {
+ test_unmasked_matching, my_sigwaitinfo, SIGUSR1}, {
+ test_masked_matching, my_sigwaitinfo, SIGUSR1}, {
+ test_unmasked_matching_noinfo, my_sigwaitinfo, SIGUSR1}, {
+- test_masked_matching_noinfo, my_sigwaitinfo, SIGUSR1}, {
+- test_bad_address, my_sigwaitinfo, SIGUSR1}, {
+- test_bad_address2, my_sigwaitinfo, SIGUSR1},
++ test_masked_matching_noinfo, my_sigwaitinfo, SIGUSR1},
+ #endif
+ #if defined TEST_SIGTIMEDWAIT
+ {
+- test_empty_set, my_sigtimedwait, SIGUSR1}, {
+ test_unmasked_matching, my_sigtimedwait, SIGUSR1}, {
+ test_masked_matching, my_sigtimedwait, SIGUSR1}, {
+ test_unmasked_matching_noinfo, my_sigtimedwait, SIGUSR1}, {
+- test_masked_matching_noinfo, my_sigtimedwait, SIGUSR1}, {
+- test_bad_address, my_sigtimedwait, SIGUSR1}, {
+- test_bad_address2, my_sigtimedwait, SIGUSR1}, {
+- test_bad_address3, my_sigtimedwait, SIGUSR1}, {
+- test_timeout, my_sigtimedwait, 0},
++ test_masked_matching_noinfo, my_sigtimedwait, SIGUSR1},
+ #endif
+ };
+