summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorPauli <pauli@openssl.org>2021-12-21 11:44:49 +1100
committerTomas Mraz <tomas@openssl.org>2022-11-09 15:31:42 +0100
commit8ea185e2e41e095421159e08500ede39bfdd4989 (patch)
treee5d7ae88a24d75e8a668013f31d3056ac0d347b9 /test
parentb1b4806a8caf92f32d18b52985fe4b14a6a694bd (diff)
test: add some unit tests for the property to string functions
That is: ossl_property_name_str and ossl_property_value_str. These only have high level tests during the creation of child library contexts. Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/17325) (cherry picked from commit 9f6841e9d8964943cf5f616543750cee85c4911c) Reviewed-by: Hugo Landau <hlandau@openssl.org>
Diffstat (limited to 'test')
-rw-r--r--test/property_test.c61
1 files changed, 45 insertions, 16 deletions
diff --git a/test/property_test.c b/test/property_test.c
index 844315c226..60737b8987 100644
--- a/test/property_test.c
+++ b/test/property_test.c
@@ -50,30 +50,59 @@ static void down_ref(void *p)
static int test_property_string(void)
{
- OSSL_METHOD_STORE *store;
+ OSSL_LIB_CTX *ctx;
+ OSSL_METHOD_STORE *store = NULL;
int res = 0;
OSSL_PROPERTY_IDX i, j;
- if (TEST_ptr(store = ossl_method_store_new(NULL))
- && TEST_int_eq(ossl_property_name(NULL, "fnord", 0), 0)
- && TEST_int_ne(ossl_property_name(NULL, "fnord", 1), 0)
- && TEST_int_ne(ossl_property_name(NULL, "name", 1), 0)
+ /*-
+ * Use our own library context because we depend on ordering from a
+ * pristine state.
+ */
+ if (TEST_ptr(ctx = OSSL_LIB_CTX_new())
+ && TEST_ptr(store = ossl_method_store_new(ctx))
+ && TEST_int_eq(ossl_property_name(ctx, "fnord", 0), 0)
+ && TEST_int_ne(ossl_property_name(ctx, "fnord", 1), 0)
+ && TEST_int_ne(ossl_property_name(ctx, "name", 1), 0)
+ /* Pre loaded names */
+ && TEST_str_eq(ossl_property_name_str(ctx, 1), "provider")
+ && TEST_str_eq(ossl_property_name_str(ctx, 2), "version")
+ && TEST_str_eq(ossl_property_name_str(ctx, 3), "fips")
+ && TEST_str_eq(ossl_property_name_str(ctx, 4), "output")
+ && TEST_str_eq(ossl_property_name_str(ctx, 5), "input")
+ && TEST_str_eq(ossl_property_name_str(ctx, 6), "structure")
+ /* The names we added */
+ && TEST_str_eq(ossl_property_name_str(ctx, 7), "fnord")
+ && TEST_str_eq(ossl_property_name_str(ctx, 8), "name")
+ /* Out of range */
+ && TEST_ptr_null(ossl_property_name_str(ctx, 0))
+ && TEST_ptr_null(ossl_property_name_str(ctx, 9))
/* Property value checks */
- && TEST_int_eq(ossl_property_value(NULL, "fnord", 0), 0)
- && TEST_int_ne(i = ossl_property_value(NULL, "no", 0), 0)
- && TEST_int_ne(j = ossl_property_value(NULL, "yes", 0), 0)
+ && TEST_int_eq(ossl_property_value(ctx, "fnord", 0), 0)
+ && TEST_int_ne(i = ossl_property_value(ctx, "no", 0), 0)
+ && TEST_int_ne(j = ossl_property_value(ctx, "yes", 0), 0)
&& TEST_int_ne(i, j)
- && TEST_int_eq(ossl_property_value(NULL, "yes", 1), j)
- && TEST_int_eq(ossl_property_value(NULL, "no", 1), i)
- && TEST_int_ne(i = ossl_property_value(NULL, "illuminati", 1), 0)
- && TEST_int_eq(j = ossl_property_value(NULL, "fnord", 1), i + 1)
- && TEST_int_eq(ossl_property_value(NULL, "fnord", 1), j)
+ && TEST_int_eq(ossl_property_value(ctx, "yes", 1), j)
+ && TEST_int_eq(ossl_property_value(ctx, "no", 1), i)
+ && TEST_int_ne(i = ossl_property_value(ctx, "illuminati", 1), 0)
+ && TEST_int_eq(j = ossl_property_value(ctx, "fnord", 1), i + 1)
+ && TEST_int_eq(ossl_property_value(ctx, "fnord", 1), j)
+ /* Pre loaded values */
+ && TEST_str_eq(ossl_property_value_str(ctx, 1), "yes")
+ && TEST_str_eq(ossl_property_value_str(ctx, 2), "no")
+ /* The value we added */
+ && TEST_str_eq(ossl_property_value_str(ctx, 3), "illuminati")
+ && TEST_str_eq(ossl_property_value_str(ctx, 4), "fnord")
+ /* Out of range */
+ && TEST_ptr_null(ossl_property_value_str(ctx, 0))
+ && TEST_ptr_null(ossl_property_value_str(ctx, 5))
/* Check name and values are distinct */
- && TEST_int_eq(ossl_property_value(NULL, "cold", 0), 0)
- && TEST_int_ne(ossl_property_name(NULL, "fnord", 0),
- ossl_property_value(NULL, "fnord", 0)))
+ && TEST_int_eq(ossl_property_value(ctx, "cold", 0), 0)
+ && TEST_int_ne(ossl_property_name(ctx, "fnord", 0),
+ ossl_property_value(ctx, "fnord", 0)))
res = 1;
ossl_method_store_free(store);
+ OSSL_LIB_CTX_free(ctx);
return res;
}