summaryrefslogtreecommitdiffstats
path: root/test/threadstest.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/threadstest.c')
-rw-r--r--test/threadstest.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/test/threadstest.c b/test/threadstest.c
index 5fa6fe901a..66223b0fc3 100644
--- a/test/threadstest.c
+++ b/test/threadstest.c
@@ -281,6 +281,7 @@ static int torture_rw_high(void)
}
+# ifndef OPENSSL_SYS_MACOSX
static CRYPTO_RCU_LOCK *rcu_lock = NULL;
static int writer1_done = 0;
@@ -292,7 +293,6 @@ static int writer2_iterations = 0;
static uint64_t *writer_ptr = NULL;
static uint64_t global_ctr = 0;
static int rcu_torture_result = 1;
-
static void free_old_rcu_data(void *data)
{
CRYPTO_free(data, NULL, 0);
@@ -364,8 +364,9 @@ static void reader_fn(int *iterations)
ossl_rcu_read_lock(rcu_lock);
valp = ossl_rcu_deref(&writer_ptr);
val = (valp == NULL) ? 0 : *valp;
+
if (oldval > val) {
- TEST_info("rcu torture value went backwards!");
+ TEST_info("rcu torture value went backwards! %llu : %llu", (unsigned long long)oldval, (unsigned long long)val);
rcu_torture_result = 0;
}
oldval = val; /* just try to deref the pointer */
@@ -459,6 +460,7 @@ static int torture_rcu_high(void)
contention = 1;
return _torture_rcu();
}
+# endif
#endif
static CRYPTO_ONCE once_run = CRYPTO_ONCE_STATIC_INIT;
@@ -1223,8 +1225,10 @@ int setup_tests(void)
#if defined(OPENSSL_THREADS)
ADD_TEST(torture_rw_low);
ADD_TEST(torture_rw_high);
+# ifndef OPENSSL_SYS_MACOSX
ADD_TEST(torture_rcu_low);
ADD_TEST(torture_rcu_high);
+# endif
#endif
ADD_TEST(test_once);
ADD_TEST(test_thread_local);