mirror of
https://github.com/openssl/openssl.git
synced 2024-12-27 06:21:43 +08:00
8d242823ed
PR#6975 added the ability to our test framework to have common options to all tests. For example providing the option "-test 5" to one of our test programs will just run test number 5. This can be useful when debugging tests. Unforuntately this does not work well for a number of tests. In particular those tests that call test_get_argument() without first skipping over these common test options will not get the expected value. Some tests did this correctly but a large number did not. A helper function is introduced, test_skip_common_options(), to make this easier for those tests which do not have their own specialised test option handling, but yet still need to call test_get_argument(). This function call is then added to all those tests that need it. Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <paul.dale@oracle.com> (Merged from https://github.com/openssl/openssl/pull/10975)
55 lines
1.2 KiB
C
55 lines
1.2 KiB
C
/*
|
|
* Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
|
*
|
|
* Licensed under the Apache License 2.0 (the "License"). You may not use
|
|
* this file except in compliance with the License. You can obtain a copy
|
|
* in the file LICENSE in the source distribution or at
|
|
* https://www.openssl.org/source/license.html
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <openssl/x509.h>
|
|
#include <openssl/x509v3.h>
|
|
#include <openssl/pem.h>
|
|
#include <openssl/err.h>
|
|
|
|
#include "testutil.h"
|
|
|
|
static const char *infile;
|
|
|
|
static int test_pathlen(void)
|
|
{
|
|
X509 *x = NULL;
|
|
BIO *b = NULL;
|
|
long pathlen;
|
|
int ret = 0;
|
|
|
|
if (!TEST_ptr(b = BIO_new_file(infile, "r"))
|
|
|| !TEST_ptr(x = PEM_read_bio_X509(b, NULL, NULL, NULL))
|
|
|| !TEST_int_eq(pathlen = X509_get_pathlen(x), 6))
|
|
goto end;
|
|
|
|
ret = 1;
|
|
|
|
end:
|
|
BIO_free(b);
|
|
X509_free(x);
|
|
return ret;
|
|
}
|
|
|
|
OPT_TEST_DECLARE_USAGE("cert.pem\n")
|
|
|
|
int setup_tests(void)
|
|
{
|
|
if (!test_skip_common_options()) {
|
|
TEST_error("Error parsing test options\n");
|
|
return 0;
|
|
}
|
|
|
|
if (!TEST_ptr(infile = test_get_argument(0)))
|
|
return 0;
|
|
|
|
ADD_TEST(test_pathlen);
|
|
return 1;
|
|
}
|