diff options
Diffstat (limited to 'tests/test-pthread_sigmask1.c')
-rw-r--r-- | tests/test-pthread_sigmask1.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/tests/test-pthread_sigmask1.c b/tests/test-pthread_sigmask1.c index a4f9ba6d..aa7efd65 100644 --- a/tests/test-pthread_sigmask1.c +++ b/tests/test-pthread_sigmask1.c @@ -29,6 +29,7 @@ SIGNATURE_CHECK (pthread_sigmask, int, (int, const sigset_t *, sigset_t *)); #include <stdlib.h> #include <unistd.h> +#include "virtualbox.h" #include "macros.h" #if !(defined _WIN32 && !defined __CYGWIN__) @@ -44,6 +45,16 @@ sigint_handler (_GL_UNUSED int sig) int main () { + /* This test occasionally fails on Linux (glibc or musl libc), in a + VirtualBox VM with paravirtualization = Default or KVM, with ≥ 2 CPUs. + Skip the test in this situation. */ + if (is_running_under_virtualbox_kvm () && num_cpus () > 1) + { + fputs ("Skipping test: avoiding VirtualBox bug with KVM paravirtualization\n", + stderr); + return 77; + } + sigset_t set; intmax_t pid = getpid (); char command[80]; @@ -78,7 +89,7 @@ main () before the call to pthread_sigmask() returns." */ ASSERT (sigint_occurred == 1); - return 0; + return test_exit_status; } #else |