Add memory leak detection to d2i_test
authorDr. Stephen Henson <steve@openssl.org>
Thu, 13 Oct 2016 15:10:21 +0000 (16:10 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 13 Oct 2016 18:26:58 +0000 (19:26 +0100)
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1707)

test/d2i_test.c

index b173cc5..9c6fcb6 100644 (file)
@@ -142,6 +142,7 @@ int main(int argc, char **argv)
     int result = 0;
     const char *test_type_name;
     const char *expected_error_string;
+    const char *p = getenv("OPENSSL_DEBUG_MEMORY");
 
     size_t i;
 
@@ -153,6 +154,10 @@ int main(int argc, char **argv)
         {"compare", ASN1_COMPARE}
     };
 
+    if (p != NULL && strcmp(p, "on") == 0)
+        CRYPTO_set_mem_debug(1);
+    CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
+
     if (argc != 4) {
         fprintf(stderr,
                 "Usage: d2i_test item_name expected_error file.der\n");
@@ -194,5 +199,10 @@ int main(int argc, char **argv)
 
     result = run_tests(argv[0]);
 
+#ifndef OPENSSL_NO_CRYPTO_MDEBUG
+    if (CRYPTO_mem_leaks_fp(stderr) <= 0)
+        result = 1;
+#endif
+
     return result;
 }