/*
- * Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2016-2019 The OpenSSL Project Authors. All Rights Reserved.
*
* Licensed under the OpenSSL licenses, (the "License");
* you may not use this file except in compliance with the License.
#include <openssl/pem.h>
#include <openssl/conf.h>
#include <openssl/err.h>
-#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;
typedef X509 *(*d2i_X509_t)(X509 **, const unsigned char **, long);
typedef int (*i2d_X509_t)(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;
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;
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 */
return 0;
}
-int test_main(int argc, char *argv[])
+int setup_tests(void)
{
- if (argc < 2) {
- TEST_error("usage: %s certfile...", argv[0]);
+ size_t n = test_get_argument_count();
+
+ if (n == 0) {
+ TEST_error("usage: %s certfile...", test_get_program_name());
return 0;
}
- files = &argv[1];
- ADD_ALL_TESTS(test_certs, argc - 1);
- return run_tests(argv[0]);
+ ADD_ALL_TESTS(test_certs, (int)n);
+ return 1;
}