int main(void) { CRYPTO_library_init(); 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); ++pname; } ++pfn; } if (errors == 0) { printf("PASS\n"); } return errors > 0 ? 1 : 0; }
static int call_run_cert(int i) { int failed = 0; const struct set_name_fn *pfn = &name_fns[i]; X509 *crt; const char *const *pname; TEST_info("%s", pfn->name); for (pname = names; *pname != NULL; pname++) { if (!TEST_ptr(crt = make_cert()) || !TEST_true(pfn->fn(crt, *pname)) || !run_cert(crt, *pname, pfn)) failed = 1; X509_free(crt); } return failed == 0; }