[LTP] [PATCH] [COMMITTED] openposix: Fix two test failures
Cyril Hrubis
chrubis@suse.cz
Thu Oct 29 15:27:43 CET 2020
Two testcases started to fail after the patch that added static modifier
to all global varibles. The cause was simple in these tests a variable
is changed in a signal handler while the value is used in a conditional
in the main loop. This code was incorrect to begin with, but the global
visibility avoided compiler optimizations to assume anything about the
variable value so it wasn't optimized out. Because of that it started to
fail only as a side efect of the patch.
The fix is also simple, all variables changed asynchrounously from a
signal handler has to be volatile.
Fixes: 8c22a59107dc (openposix: add "static" to all global variables and functions)
Signed-off-by: Cyril Hrubis <chrubis@suse.cz>
---
.../conformance/interfaces/pthread_atfork/3-3.c | 2 +-
.../open_posix_testsuite/conformance/interfaces/sigqueue/5-1.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/pthread_atfork/3-3.c b/testcases/open_posix_testsuite/conformance/interfaces/pthread_atfork/3-3.c
index d34f5706f..2a3d6c47c 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/pthread_atfork/3-3.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/pthread_atfork/3-3.c
@@ -77,7 +77,7 @@
/***************************** Test case *********************************/
/******************************************************************************/
-static char do_it = 1;
+static volatile char do_it = 1;
static unsigned long count_ope = 0;
#ifdef WITH_SYNCHRO
static sem_t semsig1;
diff --git a/testcases/open_posix_testsuite/conformance/interfaces/sigqueue/5-1.c b/testcases/open_posix_testsuite/conformance/interfaces/sigqueue/5-1.c
index 3ca4b663c..a38897086 100644
--- a/testcases/open_posix_testsuite/conformance/interfaces/sigqueue/5-1.c
+++ b/testcases/open_posix_testsuite/conformance/interfaces/sigqueue/5-1.c
@@ -29,7 +29,7 @@
#include <errno.h>
#include "posixtest.h"
-static int counter = 0;
+static volatile int counter = 0;
static void myhandler(int signo LTP_ATTRIBUTE_UNUSED)
{
--
2.26.2
More information about the ltp
mailing list