summaryrefslogtreecommitdiff
path: root/tests/test-pthread_sigmask1.c
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2024-10-20 15:22:21 +0200
committerJörg Frings-Fürst <debian@jff.email>2024-10-20 15:22:21 +0200
commit1d8b9e17ea13630aec475484da09ebba0366f7c8 (patch)
tree0c801f68561bfb0930a4ade80d7ca3a7940887ab /tests/test-pthread_sigmask1.c
parent84e26c587987e8484d55db4165f188b40c09e94b (diff)
parent630f99f29bd31a76d8d24da2975a045452c763ef (diff)
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'tests/test-pthread_sigmask1.c')
-rw-r--r--tests/test-pthread_sigmask1.c13
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