test/enginetest.c: Make sure no config file is loaded
authorRichard Levitte <levitte@openssl.org>
Tue, 16 Jul 2019 10:21:47 +0000 (12:21 +0200)
committerRichard Levitte <levitte@openssl.org>
Fri, 19 Jul 2019 18:18:34 +0000 (20:18 +0200)
If a config file gets loaded, the tests get disturbed.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9393)

test/enginetest.c

index b4d117efa2a64f8686f5e5764381f84bbe17bf96..9957f59dc3d6cbcaeba127155e437726c239b140 100644 (file)
@@ -121,8 +121,12 @@ static int test_engines(void)
     display_engine_list();
 
     /*
-     * Depending on whether there's any hardware support compiled in, this
-     * remove may be destined to fail.
+     * At this point, we should have an empty list, unless some hardware
+     * support engine got added.  However, since we don't allow the config
+     * file to be loaded and don't otherwise load any built in engines,
+     * that is unlikely.  Still, we check, if for nothing else, then to
+     * notify that something is a little off (and might mean that |new_h1|
+     * wasn't unloaded when it should have)
      */
     if ((ptr = ENGINE_get_first()) != NULL) {
         if (!ENGINE_remove(ptr))
@@ -347,6 +351,15 @@ static int test_redirect(void)
 }
 #endif
 
+int global_init(void)
+{
+    /*
+     * If the config file gets loaded, the dynamic engine will be loaded,
+     * and that interferes with our test above.
+     */
+    return OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL);
+}
+
 int setup_tests(void)
 {
 #ifdef OPENSSL_NO_ENGINE