X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=test%2Fx509aux.c;h=bd8a781bdb022b6c7b5532e17c27cf8e8704b768;hb=6bb74ecb87f496faa777b609a03a2ce422b60197;hp=7bfacfda3aeb0684f74e8b028b1512d9d42591ad;hpb=4f58c6b9febddb5bb074dff44bdc4c013cdb9544;p=oweals%2Fopenssl.git diff --git a/test/x509aux.c b/test/x509aux.c index 7bfacfda3a..bd8a781bdb 100644 --- a/test/x509aux.c +++ b/test/x509aux.c @@ -1,7 +1,7 @@ /* - * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved. + * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. * - * Licensed under the OpenSSL licenses, (the "License"); + * Licensed under the Apache License 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * https://www.openssl.org/source/license.html @@ -16,13 +16,9 @@ #include #include #include -#include "e_os.h" +#include "internal/nelem.h" #include "testutil.h" - -/* List of files, from argv */ -static char **files; - static int test_certs(int num) { int c; @@ -31,9 +27,10 @@ static int test_certs(int num) unsigned char *data = 0; long len; typedef X509 *(*d2i_X509_t)(X509 **, const unsigned char **, long); - typedef int (*i2d_X509_t)(X509 *, unsigned char **); + typedef int (*i2d_X509_t)(const X509 *, unsigned char **); int err = 0; - BIO *fp = BIO_new_file(files[num], "r"); + BIO *fp = BIO_new_file(test_get_argument(num), "r"); + X509 *reuse = NULL; if (!TEST_ptr(fp)) return 0; @@ -95,6 +92,13 @@ static int test_certs(int num) err = 1; goto next; } + p = buf; + reuse = d2i(&reuse, &p, enclen); + if (reuse == NULL || X509_cmp (reuse, cert)) { + TEST_error("X509_cmp does not work with %s", name); + err = 1; + goto next; + } OPENSSL_free(buf); buf = NULL; @@ -143,6 +147,7 @@ static int test_certs(int num) OPENSSL_free(data); } BIO_free(fp); + X509_free(reuse); if (ERR_GET_REASON(ERR_peek_last_error()) == PEM_R_NO_START_LINE) { /* Reached end of PEM file */ @@ -156,14 +161,21 @@ static int test_certs(int num) return 0; } -int test_main(int argc, char *argv[]) +OPT_TEST_DECLARE_USAGE("certfile...\n") + +int setup_tests(void) { - if (argc < 2) { - TEST_error("usage: %s certfile...", argv[0]); + size_t n; + + if (!test_skip_common_options()) { + TEST_error("Error parsing test options\n"); return 0; } - files = &argv[1]; - ADD_ALL_TESTS(test_certs, argc - 1); - return run_tests(argv[0]); + n = test_get_argument_count(); + if (n == 0) + return 0; + + ADD_ALL_TESTS(test_certs, (int)n); + return 1; }