Convert the tests in x509v3 to GTest.
Bug: 129 Change-Id: Ia9819fab436857dd6364a1f1abff49ad3e3b682a Reviewed-on: https://boringssl-review.googlesource.com/17668 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com>
This commit is contained in:
@@ -260,6 +260,8 @@ add_executable(
|
||||
test/file_test_gtest.cc
|
||||
thread_test.cc
|
||||
x509/x509_test.cc
|
||||
x509v3/tab_test.cc
|
||||
x509v3/v3name_test.cc
|
||||
|
||||
$<TARGET_OBJECTS:crypto_test_data>
|
||||
$<TARGET_OBJECTS:gtest_main>
|
||||
|
||||
@@ -42,25 +42,3 @@ add_library(
|
||||
v3_sxnet.c
|
||||
v3_utl.c
|
||||
)
|
||||
|
||||
add_executable(
|
||||
v3name_test
|
||||
|
||||
v3name_test.c
|
||||
|
||||
$<TARGET_OBJECTS:test_support>
|
||||
)
|
||||
|
||||
target_link_libraries(v3name_test crypto)
|
||||
add_dependencies(all_tests v3name_test)
|
||||
|
||||
add_executable(
|
||||
tab_test
|
||||
|
||||
tab_test.c
|
||||
|
||||
$<TARGET_OBJECTS:test_support>
|
||||
)
|
||||
|
||||
target_link_libraries(tab_test crypto)
|
||||
add_dependencies(all_tests tab_test)
|
||||
|
||||
@@ -56,6 +56,10 @@
|
||||
|
||||
/* This file contains a table of "standard" extensions */
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern const X509V3_EXT_METHOD v3_bcons, v3_nscert, v3_key_usage, v3_ext_ku;
|
||||
extern const X509V3_EXT_METHOD v3_pkey_usage_period, v3_sxnet, v3_info,
|
||||
v3_sinfo;
|
||||
@@ -133,3 +137,7 @@ static const X509V3_EXT_METHOD *const standard_exts[] = {
|
||||
/* Number of standard extensions */
|
||||
|
||||
#define STANDARD_EXTENSION_COUNT (sizeof(standard_exts)/sizeof(X509V3_EXT_METHOD *))
|
||||
|
||||
#if defined(__cplusplus)
|
||||
} /* extern C */
|
||||
#endif
|
||||
|
||||
@@ -57,52 +57,22 @@
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* Simple program to check the ext_dat.h is correct and print out problems if
|
||||
* it is not.
|
||||
*/
|
||||
#if !defined(BORINGSSL_SHARED_LIBRARY)
|
||||
|
||||
#include <stdio.h>
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <openssl/base.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/obj.h>
|
||||
#include <openssl/x509v3.h>
|
||||
|
||||
#if !defined(BORINGSSL_SHARED_LIBRARY)
|
||||
# include "ext_dat.h"
|
||||
#endif
|
||||
#include "../internal.h"
|
||||
#include "ext_dat.h"
|
||||
|
||||
int main(void)
|
||||
{
|
||||
#if !defined(BORINGSSL_SHARED_LIBRARY)
|
||||
unsigned i;
|
||||
int prev = -1, bad = 0;
|
||||
const X509V3_EXT_METHOD *const *tmp;
|
||||
CRYPTO_library_init();
|
||||
i = sizeof(standard_exts) / sizeof(X509V3_EXT_METHOD *);
|
||||
if (i != STANDARD_EXTENSION_COUNT)
|
||||
fprintf(stderr, "Extension number invalid expecting %d\n", i);
|
||||
tmp = standard_exts;
|
||||
for (i = 0; i < STANDARD_EXTENSION_COUNT; i++, tmp++) {
|
||||
if ((*tmp)->ext_nid < prev)
|
||||
bad = 1;
|
||||
prev = (*tmp)->ext_nid;
|
||||
|
||||
}
|
||||
if (bad) {
|
||||
tmp = standard_exts;
|
||||
fprintf(stderr, "Extensions out of order!\n");
|
||||
for (i = 0; i < STANDARD_EXTENSION_COUNT; i++, tmp++)
|
||||
printf("%d : %s\n", (*tmp)->ext_nid, OBJ_nid2sn((*tmp)->ext_nid));
|
||||
return 1;
|
||||
} else {
|
||||
printf("PASS\n");
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
/* TODO(davidben): Fix this test in the shared library build. */
|
||||
printf("PASS\n");
|
||||
return 0;
|
||||
#endif
|
||||
// Check ext_data.h is correct.
|
||||
TEST(X509V3Test, TabTest) {
|
||||
EXPECT_EQ(OPENSSL_ARRAY_SIZE(standard_exts), STANDARD_EXTENSION_COUNT);
|
||||
for (size_t i = 1; i < OPENSSL_ARRAY_SIZE(standard_exts); i++) {
|
||||
SCOPED_TRACE(i);
|
||||
EXPECT_LT(standard_exts[i-1]->ext_nid, standard_exts[i]->ext_nid);
|
||||
}
|
||||
}
|
||||
|
||||
#endif // !BORINGSSL_SHARED_LIBRARY
|
||||
@@ -57,6 +57,8 @@
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/mem.h>
|
||||
#include <openssl/x509.h>
|
||||
@@ -335,7 +337,7 @@ static void run_cert(X509 *crt, const char *nameincert,
|
||||
while (*pname) {
|
||||
int samename = OPENSSL_strcasecmp(nameincert, *pname) == 0;
|
||||
size_t namelen = strlen(*pname);
|
||||
char *name = malloc(namelen);
|
||||
char *name = (char *)malloc(namelen);
|
||||
int match, ret;
|
||||
OPENSSL_memcpy(name, *pname, namelen);
|
||||
|
||||
@@ -383,31 +385,19 @@ static void run_cert(X509 *crt, const char *nameincert,
|
||||
}
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
CRYPTO_library_init();
|
||||
|
||||
// TOOD(davidben): Convert this test to GTest more thoroughly.
|
||||
TEST(X509V3Test, NameTest) {
|
||||
const struct set_name_fn *pfn = name_fns;
|
||||
while (pfn->name) {
|
||||
const char *const *pname = names;
|
||||
while (*pname) {
|
||||
X509 *crt = make_cert();
|
||||
if (crt == NULL) {
|
||||
fprintf(stderr, "make_cert failed\n");
|
||||
return 1;
|
||||
}
|
||||
if (!pfn->fn(crt, *pname)) {
|
||||
fprintf(stderr, "X509 name setting failed\n");
|
||||
return 1;
|
||||
}
|
||||
run_cert(crt, *pname, pfn);
|
||||
X509_free(crt);
|
||||
bssl::UniquePtr<X509> crt(make_cert());
|
||||
ASSERT_TRUE(crt);
|
||||
ASSERT_TRUE(pfn->fn(crt.get(), *pname));
|
||||
run_cert(crt.get(), *pname, pfn);
|
||||
++pname;
|
||||
}
|
||||
++pfn;
|
||||
}
|
||||
if (errors == 0) {
|
||||
printf("PASS\n");
|
||||
}
|
||||
return errors > 0 ? 1 : 0;
|
||||
EXPECT_EQ(0, errors);
|
||||
}
|
||||
@@ -1,8 +1,6 @@
|
||||
[
|
||||
["crypto/crypto_test"],
|
||||
["crypto/fipsmodule/example_mul"],
|
||||
["crypto/x509v3/tab_test"],
|
||||
["crypto/x509v3/v3name_test"],
|
||||
["decrepit/decrepit_test"],
|
||||
["ssl/ssl_test"]
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user