]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Timeout in the tserver test using real time
authorMatt Caswell <matt@openssl.org>
Wed, 4 Oct 2023 16:55:33 +0000 (17:55 +0100)
committerMatt Caswell <matt@openssl.org>
Fri, 6 Oct 2023 09:55:24 +0000 (10:55 +0100)
When running the tserver test we bail out if a timeout expires. We
shouldn't use fake time for that timeout, because fake time might never
actually get incremented.

Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22284)

test/quic_tserver_test.c

index 6ed84f0ae67d2fadbbd7b920915cd3b475e35098..b2b09354bb6c6261a0f39663cdd6cd80a94a2367 100644 (file)
@@ -73,7 +73,6 @@ static int do_test(int use_thread_assist, int use_fake_time, int use_inject)
     int s_begin_write = 0;
     OSSL_TIME start_time;
     unsigned char alpn[] = { 8, 'o', 's', 's', 'l', 't', 'e', 's', 't' };
-    OSSL_TIME (*now_cb)(void *arg) = use_fake_time ? fake_now : real_now;
     size_t limit_ms = 1000;
 
 #if defined(OPENSSL_NO_QUIC_THREAD_ASSIST)
@@ -194,10 +193,14 @@ static int do_test(int use_thread_assist, int use_fake_time, int use_inject)
     if (!TEST_true(SSL_set_blocking_mode(c_ssl, 0)))
         goto err;
 
-    start_time = now_cb(NULL);
+    /*
+     * We use real time for the timeout not fake time. Otherwise with fake time
+     * we could hit a hang if we never increment the fake time
+     */
+    start_time = real_now(NULL);
 
     for (;;) {
-        if (ossl_time_compare(ossl_time_subtract(now_cb(NULL), start_time),
+        if (ossl_time_compare(ossl_time_subtract(real_now(NULL), start_time),
                               ossl_ms2time(limit_ms)) >= 0) {
             TEST_error("timeout while attempting QUIC server test");
             goto err;