mirror of
https://github.com/openssl/openssl.git
synced 2024-11-21 01:15:20 +08:00
Update d2i_test to use the test infrastructure
Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3166)
This commit is contained in:
parent
0bf3c66c9d
commit
f5864227dc
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
* Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
*
|
||||
* Licensed under the OpenSSL license (the "License"). You may not use
|
||||
* this file except in compliance with the License. You can obtain a copy
|
||||
@ -53,12 +53,12 @@ static int test_bad_asn1()
|
||||
int derlen;
|
||||
int len;
|
||||
|
||||
if ((bio = BIO_new_file(test_file, "r")) == NULL)
|
||||
bio = BIO_new_file(test_file, "r");
|
||||
if (!TEST_ptr(bio))
|
||||
return 0;
|
||||
|
||||
if (expected_error == ASN1_BIO) {
|
||||
value = ASN1_item_d2i_bio(item_type, bio, NULL);
|
||||
if (value == NULL)
|
||||
if (TEST_ptr_null(ASN1_item_d2i_bio(item_type, bio, NULL)))
|
||||
ret = 1;
|
||||
goto err;
|
||||
}
|
||||
@ -69,12 +69,12 @@ static int test_bad_asn1()
|
||||
* decoder is called.
|
||||
*/
|
||||
len = BIO_read(bio, buf, sizeof buf);
|
||||
if (len < 0)
|
||||
if (!TEST_int_ge(len, 0))
|
||||
goto err;
|
||||
|
||||
value = ASN1_item_d2i(NULL, &buf_ptr, len, item_type);
|
||||
if (value == NULL) {
|
||||
if (expected_error == ASN1_DECODE)
|
||||
if (TEST_int_eq(expected_error, ASN1_DECODE))
|
||||
ret = 1;
|
||||
goto err;
|
||||
}
|
||||
@ -82,23 +82,24 @@ static int test_bad_asn1()
|
||||
derlen = ASN1_item_i2d(value, &der, item_type);
|
||||
|
||||
if (der == NULL || derlen < 0) {
|
||||
if (expected_error == ASN1_ENCODE)
|
||||
if (TEST_int_eq(expected_error, ASN1_ENCODE))
|
||||
ret = 1;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (derlen != len || memcmp(der, buf, derlen) != 0) {
|
||||
if (expected_error == ASN1_COMPARE)
|
||||
if (TEST_int_eq(expected_error, ASN1_COMPARE))
|
||||
ret = 1;
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (expected_error == ASN1_OK)
|
||||
if (TEST_int_eq(expected_error, ASN1_OK))
|
||||
ret = 1;
|
||||
|
||||
err:
|
||||
/* Don't indicate success for memory allocation errors */
|
||||
if (ret == 1 && ERR_GET_REASON(ERR_peek_error()) == ERR_R_MALLOC_FAILURE)
|
||||
if (ret == 1
|
||||
&& !TEST_false(ERR_GET_REASON(ERR_peek_error()) == ERR_R_MALLOC_FAILURE))
|
||||
ret = 0;
|
||||
BIO_free(bio);
|
||||
OPENSSL_free(der);
|
||||
@ -125,9 +126,8 @@ int test_main(int argc, char *argv[])
|
||||
{"compare", ASN1_COMPARE}
|
||||
};
|
||||
|
||||
if (argc != 4) {
|
||||
fprintf(stderr,
|
||||
"Usage: d2i_test item_name expected_error file.der\n");
|
||||
if (!TEST_int_eq(argc, 4)) {
|
||||
fprintf(stderr, "Usage: d2i_test item_name expected_error file.der\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -138,7 +138,7 @@ int test_main(int argc, char *argv[])
|
||||
item_type = ASN1_ITEM_lookup(test_type_name);
|
||||
|
||||
if (item_type == NULL) {
|
||||
fprintf(stderr, "Unknown type %s\n", test_type_name);
|
||||
TEST_error("Unknown type %s\n", test_type_name);
|
||||
fprintf(stderr, "Supported types:\n");
|
||||
for (i = 0;; i++) {
|
||||
const ASN1_ITEM *it = ASN1_ITEM_get(i);
|
||||
@ -158,7 +158,7 @@ int test_main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
if (expected_error == ASN1_UNKNOWN) {
|
||||
fprintf(stderr, "Unknown expected error %s\n", expected_error_string);
|
||||
TEST_error("Unknown expected error %s\n", expected_error_string);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user