Commit 5fb218a35c for openssl.org
commit 5fb218a35c1701ed4a39b47745ac933765a18a5d
Author: Jakub Zelenka <jakub.zelenka@openssl.foundation>
Date: Thu Jun 18 19:26:47 2026 +0200
quic: add mfail tests for QUIC SRTM
This cover various function for SRTM.
Assisted-by: Claude:claude-opus-4-8
Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
MergeDate: Thu Jun 25 07:06:31 2026
(Merged from https://github.com/openssl/openssl/pull/31593)
diff --git a/test/quic_srtm_test.c b/test/quic_srtm_test.c
index cbdf847632..db29198918 100644
--- a/test/quic_srtm_test.c
+++ b/test/quic_srtm_test.c
@@ -72,8 +72,58 @@ err:
return testresult;
}
+static int test_srtm_new_mfail(void)
+{
+ QUIC_SRTM *srtm;
+
+ MFAIL_start();
+ srtm = ossl_quic_srtm_new(NULL, NULL);
+ MFAIL_end();
+
+ ossl_quic_srtm_free(srtm);
+ return srtm != NULL;
+}
+
+static int test_srtm_ops_mfail(void)
+{
+ int testresult = 0;
+ QUIC_SRTM *srtm;
+ void *opaque = NULL;
+ uint64_t seq_num = 0;
+
+ if (!TEST_ptr(srtm = ossl_quic_srtm_new(NULL, NULL)))
+ goto err;
+
+ MFAIL_start();
+
+ if (!ossl_quic_srtm_add(srtm, ptrs + 0, 0, &token_1)
+ || !ossl_quic_srtm_add(srtm, ptrs + 0, 1, &token_1)
+ || !ossl_quic_srtm_add(srtm, ptrs + 0, 2, &token_1)
+ || !ossl_quic_srtm_add(srtm, ptrs + 1, 0, &token_1)
+ || !ossl_quic_srtm_add(srtm, ptrs + 2, 0, &token_2)
+ || !ossl_quic_srtm_add(srtm, ptrs + 3, 3, &token_2)
+ || !ossl_quic_srtm_remove(srtm, ptrs + 3, 3)
+ || !ossl_quic_srtm_lookup(srtm, &token_1, 0, &opaque, &seq_num)
+ || !ossl_quic_srtm_cull(srtm, ptrs + 0)
+ || !ossl_quic_srtm_lookup(srtm, &token_2, 0, &opaque, &seq_num)
+ || !ossl_quic_srtm_remove(srtm, ptrs + 2, 0))
+ goto err;
+
+ testresult = 1;
+err:
+ MFAIL_end();
+ ossl_quic_srtm_free(srtm);
+ return testresult;
+}
+
int setup_tests(void)
{
ADD_TEST(test_srtm);
+#ifdef OPENSSL_NO_CACHED_FETCH
+ ADD_MFAIL_NO_CHECK_TEST(test_srtm_new_mfail);
+#else
+ ADD_MFAIL_TEST(test_srtm_new_mfail);
+#endif
+ ADD_MFAIL_TEST(test_srtm_ops_mfail);
return 1;
}