summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2023-11-29 14:24:18 +0100
committerRichard Levitte <levitte@openssl.org>2023-12-04 15:15:13 +0100
commit94d838026d21bca7077c2246e4e795a2f108df8a (patch)
tree594fea506df7959c69ae3fc910be9b2364a4617b /test
parent4266cd8d3db124d32f9cf0fb9a265da9bf24cb24 (diff)
Add a minimal test provider
We test its validity by trying to load it. Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Todd Short <todd.short@me.com> (Merged from https://github.com/openssl/openssl/pull/22866) (cherry picked from commit 31c2c12f2dada75c334f6a9aa60c8424cf4fd040)
Diffstat (limited to 'test')
-rw-r--r--test/build.info7
-rw-r--r--test/p_minimal.c24
-rw-r--r--test/recipes/04-test_provider.t9
3 files changed, 39 insertions, 1 deletions
diff --git a/test/build.info b/test/build.info
index c2bb7fc35e..1bacdcb827 100644
--- a/test/build.info
+++ b/test/build.info
@@ -1030,6 +1030,13 @@ IF[{- !$disabled{tests} -}]
SOURCE[p_test]=p_test.ld
GENERATE[p_test.ld]=../util/providers.num
ENDIF
+ MODULES{noinst}=p_minimal
+ SOURCE[p_minimal]=p_minimal.c
+ INCLUDE[p_minimal]=../include ..
+ IF[{- defined $target{shared_defflag} -}]
+ SOURCE[p_minimal]=p_minimal.ld
+ GENERATE[p_minimal.ld]=../util/providers.num
+ ENDIF
ENDIF
IF[{- $disabled{module} || !$target{dso_scheme} -}]
DEFINE[provider_test]=NO_PROVIDER_MODULE
diff --git a/test/p_minimal.c b/test/p_minimal.c
new file mode 100644
index 0000000000..0bff9823f8
--- /dev/null
+++ b/test/p_minimal.c
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2019-2023 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the Apache License 2.0 (the "License"). You may not use
+ * this file except in compliance with the License. You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+/*
+ * This is the most minimal provider imaginable. It can be loaded, and does
+ * absolutely nothing else.
+ */
+
+#include <openssl/core.h>
+
+OSSL_provider_init_fn OSSL_provider_init; /* Check the function signature */
+int OSSL_provider_init(const OSSL_CORE_HANDLE *handle,
+ const OSSL_DISPATCH *oin,
+ const OSSL_DISPATCH **out,
+ void **provctx)
+{
+ return 1;
+}
diff --git a/test/recipes/04-test_provider.t b/test/recipes/04-test_provider.t
index 312def7757..1233cc4f93 100644
--- a/test/recipes/04-test_provider.t
+++ b/test/recipes/04-test_provider.t
@@ -12,10 +12,17 @@ use OpenSSL::Test::Utils;
setup("test_provider");
-plan tests => 2;
+plan tests => 3;
ok(run(test(['provider_test'])), "provider_test");
$ENV{"OPENSSL_MODULES"} = bldtop_dir("test");
ok(run(test(['provider_test', '-loaded'])), "provider_test -loaded");
+
+ SKIP: {
+ skip "no module support", 1 if disabled("module");
+
+ ok(run(app(['openssl', 'list', '-provider', 'p_minimal',
+ '-providers', '-verbose'])));
+}