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:
David Benjamin
2017-07-10 19:05:04 +00:00
parent 520e1220bb
commit 8d43674b8e
6 changed files with 33 additions and 87 deletions
+2
View File
@@ -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>
-22
View File
@@ -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)
+8
View File
@@ -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);
}
-2
View File
@@ -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"]
]