diff options
author | Emilia Kasper <emilia@openssl.org> | 2016-11-07 16:53:15 +0100 |
---|---|---|
committer | Emilia Kasper <emilia@openssl.org> | 2016-11-09 16:07:16 +0100 |
commit | e364c3b24e38bd60d40487e0a532261348a9bb10 (patch) | |
tree | 82e621604899af53aebd34ced7d7dbc381678d84 /test/ct_test.c | |
parent | 7380737d77e89edd17651b04e439223a47ea833e (diff) |
Add main() test methods to reduce test boilerplate.
Simple tests only need to implement register_tests().
Tests that need a custom main() should implement test_main(). This will
be wrapped in a main() that performs common setup/teardown (currently
crypto-mdebug).
Note that for normal development, enable-asan is usually
sufficient for detecting leaks, and more versatile.
enable-crypto-mdebug is stricter as it will also
insist that all static variables be freed. This is useful for debugging
library init/deinit; however, it also means that test_main() must free
everything it allocates.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'test/ct_test.c')
-rw-r--r-- | test/ct_test.c | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/test/ct_test.c b/test/ct_test.c index 2553bc6922..edd02afea2 100644 --- a/test/ct_test.c +++ b/test/ct_test.c @@ -18,9 +18,9 @@ #include <openssl/x509.h> #include <openssl/x509v3.h> #include "testutil.h" +#include "test_main_custom.h" #ifndef OPENSSL_NO_CT - /* Used when declaring buffers to read text files into */ #define CT_TEST_MAX_FILE_SIZE 8096 @@ -530,15 +530,10 @@ static int test_encode_tls_sct() EXECUTE_CT_TEST(); } -int main(int argc, char *argv[]) +int test_main(int argc, char *argv[]) { int result = 0; - char *tmp_env = NULL; - - tmp_env = getenv("OPENSSL_DEBUG_MEMORY"); - if (tmp_env != NULL && strcmp(tmp_env, "on") == 0) - CRYPTO_set_mem_debug(1); - CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); + char *tmp_env; tmp_env = getenv("CT_DIR"); ct_dir = OPENSSL_strdup(tmp_env != NULL ? tmp_env : "ct"); @@ -554,24 +549,10 @@ int main(int argc, char *argv[]) ADD_TEST(test_encode_tls_sct); result = run_tests(argv[0]); - ERR_print_errors_fp(stderr); OPENSSL_free(ct_dir); OPENSSL_free(certs_dir); -#ifndef OPENSSL_NO_CRYPTO_MDEBUG - if (CRYPTO_mem_leaks_fp(stderr) <= 0) - result = 1; -#endif - return result; } - -#else /* OPENSSL_NO_CT */ - -int main(int argc, char* argv[]) -{ - return EXIT_SUCCESS; -} - -#endif /* OPENSSL_NO_CT */ +#endif |