提交 f5864227 编写于 作者: P Pauli 提交者: Matt Caswell

Update d2i_test to use the test infrastructure

Reviewed-by: NRichard Levitte <levitte@openssl.org>
Reviewed-by: NMatt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3166)
上级 0bf3c66c
/*
* 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;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册