]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
test: convert store test to use relative paths
authorPauli <ppzgs1@gmail.com>
Tue, 9 Mar 2021 00:57:05 +0000 (10:57 +1000)
committerPauli <ppzgs1@gmail.com>
Wed, 10 Mar 2021 23:25:57 +0000 (09:25 +1000)
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14419)

test/ossl_store_test.c
test/recipes/66-test_ossl_store.t

index e06c0b55def6fd8a09daf0d2a9915b07ab577e63..773c696feccf01651568218e633a4498b9636c71 100644 (file)
 typedef enum OPTION_choice {
     OPT_ERR = -1,
     OPT_EOF = 0,
+    OPT_INPUTDIR,
     OPT_INFILE,
+    OPT_SM2FILE,
     OPT_DATADIR,
     OPT_TEST_ENUM
 } OPTION_CHOICE;
 
+static const char *inputdir = NULL;
 static const char *infile = NULL;
+static const char *sm2file = NULL;
 static const char *datadir = NULL;
 
 static int test_store_open(void)
@@ -37,16 +41,19 @@ static int test_store_open(void)
     OSSL_STORE_CTX *sctx = NULL;
     OSSL_STORE_SEARCH *search = NULL;
     UI_METHOD *ui_method = NULL;
+    char *input = test_mk_file_path(inputdir, infile);
 
-    ret = TEST_ptr(search = OSSL_STORE_SEARCH_by_alias("nothing"))
+    ret = TEST_ptr(input)
+          && TEST_ptr(search = OSSL_STORE_SEARCH_by_alias("nothing"))
           && TEST_ptr(ui_method= UI_create_method("DummyUI"))
-          && TEST_ptr(sctx = OSSL_STORE_open_ex(infile, NULL, NULL, ui_method,
+          && TEST_ptr(sctx = OSSL_STORE_open_ex(input, NULL, NULL, ui_method,
                                                 NULL, NULL, NULL))
           && TEST_false(OSSL_STORE_find(sctx, NULL))
           && TEST_true(OSSL_STORE_find(sctx, search));
     UI_destroy_method(ui_method);
     OSSL_STORE_SEARCH_free(search);
     OSSL_STORE_close(sctx);
+    OPENSSL_free(input);
     return ret;
 }
 
@@ -159,6 +166,7 @@ static int test_store_attach_unregistered_scheme(void)
     OSSL_STORE_close(store_ctx);
     OSSL_PROVIDER_unload(provider);
     OSSL_LIB_CTX_free(libctx);
+    OPENSSL_free(input);
     return ret;
 }
 
@@ -166,7 +174,9 @@ const OPTIONS *test_get_options(void)
 {
     static const OPTIONS test_options[] = {
         OPT_TEST_OPTIONS_DEFAULT_USAGE,
-        { "in", OPT_INFILE, '<', },
+        { "dir", OPT_INPUTDIR, '/' },
+        { "in", OPT_INFILE, '<' },
+        { "sm2", OPT_SM2FILE, '<' },
         { "data", OPT_DATADIR, 's' },
         { NULL }
     };
@@ -179,9 +189,15 @@ int setup_tests(void)
 
     while ((o = opt_next()) != OPT_EOF) {
         switch (o) {
+        case OPT_INPUTDIR:
+            inputdir = opt_arg();
+            break;
         case OPT_INFILE:
             infile = opt_arg();
             break;
+        case OPT_SM2FILE:
+            sm2file = opt_arg();
+            break;
         case OPT_DATADIR:
             datadir = opt_arg();
             break;
@@ -194,13 +210,19 @@ int setup_tests(void)
     }
 
     if (datadir == NULL) {
-        TEST_error("No datadir specified");
+        TEST_error("No data directory specified");
+        return 0;
+    }
+    if (inputdir == NULL) {
+        TEST_error("No input directory specified");
         return 0;
     }
 
-    ADD_TEST(test_store_open);
+    if (infile != NULL)
+        ADD_TEST(test_store_open);
     ADD_TEST(test_store_search_by_key_fingerprint_fail);
     ADD_ALL_TESTS(test_store_get_params, 3);
-    ADD_TEST(test_store_attach_unregistered_scheme);
+    if (sm2file != NULL)
+        ADD_TEST(test_store_attach_unregistered_scheme);
     return 1;
 }
index 08d66977a52cab2d72d9bcb220059ffa5a67e85e..0385e452b7a3efb27730dbeed68d5bc53e5f680d 100644 (file)
@@ -10,11 +10,12 @@ use strict;
 use warnings;
 
 use OpenSSL::Test::Simple;
-use OpenSSL::Test qw/:DEFAULT srctop_file data_dir/;
+use OpenSSL::Test qw/:DEFAULT srctop_dir data_dir/;
 
 setup("test_ossl_store");
 
 plan tests => 1;
 
-ok(run(test(["ossl_store_test", "-in", srctop_file("test", "testrsa.pem"),
+ok(run(test(["ossl_store_test", "-dir", srctop_dir("test"),
+             "-in", "testrsa.pem", "-sm2", "certs/sm2-root.crt",
              "-data", data_dir()])));