]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Update modulepath test for provider config to skip if not present
authorNeil Horman <nhorman@openssl.org>
Thu, 4 Apr 2024 19:39:17 +0000 (15:39 -0400)
committerTomas Mraz <tomas@openssl.org>
Thu, 18 Apr 2024 16:38:39 +0000 (18:38 +0200)
If the p_test.so library isn't present, don't run the test

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24025)

test/prov_config_test.c

index d59a9546679d2e230ff3348789b38d6207a9f611..2fac741a3dc994d72c51fe3d0a347d27d55d2963 100644 (file)
@@ -7,6 +7,7 @@
  * https://www.openssl.org/source/license.html
  */
 
+#include <sys/stat.h>
 #include <openssl/evp.h>
 #include <openssl/conf.h>
 #include "testutil.h"
@@ -71,15 +72,20 @@ static int test_recursive_config(void)
     return testresult;
 }
 
-#if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MACOSX) && !defined(NO_PROVIDER_MODULE)
 static int test_path_config(void)
 {
-    OSSL_LIB_CTX *ctx = OSSL_LIB_CTX_new();
+    OSSL_LIB_CTX *ctx = NULL;
     OSSL_PROVIDER *prov;
     int testresult = 0;
+    struct stat sbuf;
+
+    if (stat("../test/p_test.so", &sbuf) == -1)
+        return TEST_skip("Skipping modulepath test as provider not present");
 
     if (!TEST_ptr(pathedconfig))
         return 0;
+
+    ctx = OSSL_LIB_CTX_new();
     if (!TEST_ptr(ctx))
         return 0;
 
@@ -97,7 +103,6 @@ static int test_path_config(void)
     OSSL_LIB_CTX_free(ctx);
     return testresult;
 }
-#endif
 
 OPT_TEST_DECLARE_USAGE("configfile\n")
 
@@ -119,15 +124,6 @@ int setup_tests(void)
 
     ADD_TEST(test_recursive_config);
     ADD_TEST(test_double_config);
-#if !defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_MACOSX) && !defined(NO_PROVIDER_MODULE)
-    /*
-     * This test has to specify a module path to a file
-     * Which is setup as ../test/p_test.so
-     * Since windows/macos doesn't build with that extension
-     * just skip the test here
-     * Additionally skip it if we're not building provider modules
-     */
     ADD_TEST(test_path_config);
-#endif
     return 1;
 }