mirror of
https://github.com/openssl/openssl.git
synced 2025-01-18 13:44:20 +08:00
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)
This commit is contained in:
parent
2e3c59356f
commit
9f6841e9d8
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user