Skip to content

Commit

Permalink
Add a minimal test provider
Browse files Browse the repository at this point in the history
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 #22866)

(cherry picked from commit 31c2c12)
  • Loading branch information
levitte committed Dec 4, 2023
1 parent 538f9d2 commit 7105094
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 1 deletion.
7 changes: 7 additions & 0 deletions test/build.info
Original file line number Diff line number Diff line change
Expand Up @@ -852,6 +852,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
Expand Down
24 changes: 24 additions & 0 deletions test/p_minimal.c
Original file line number Diff line number Diff line change
@@ -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;
}
9 changes: 8 additions & 1 deletion test/recipes/04-test_provider.t
Original file line number Diff line number Diff line change
Expand Up @@ -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'])));
}

0 comments on commit 7105094

Please sign in to comment.