aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests/test_fuzzer.cpp
diff options
context:
space:
mode:
authorSimon Warta <[email protected]>2015-08-08 12:42:45 +0200
committerSimon Warta <[email protected]>2015-08-08 12:42:45 +0200
commit90409af56f6f86487cf6fcad731b9a5aa6508540 (patch)
treeb6b1afa9d3d4f9f5f066e88e4b7bb557a8df3a49 /src/tests/test_fuzzer.cpp
parent31d74661c596c88594736b237bf2fcc62015291e (diff)
Rename fuzzer test consistently
Align filename with test_fuzzer()
Diffstat (limited to 'src/tests/test_fuzzer.cpp')
-rw-r--r--src/tests/test_fuzzer.cpp68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/tests/test_fuzzer.cpp b/src/tests/test_fuzzer.cpp
new file mode 100644
index 000000000..212a313a8
--- /dev/null
+++ b/src/tests/test_fuzzer.cpp
@@ -0,0 +1,68 @@
+/*
+* (C) 2015 Jack Lloyd
+*
+* Botan is released under the Simplified BSD License (see license.txt)
+*/
+
+#include "tests.h"
+#include <chrono>
+#include <iostream>
+
+#if defined(BOTAN_HAS_X509_CERTIFICATES)
+
+#include <botan/x509cert.h>
+#include <botan/x509_crl.h>
+#include <botan/internal/filesystem.h>
+#include <botan/base64.h>
+
+#endif
+
+namespace {
+
+size_t test_x509_fuzz()
+ {
+ size_t fails = 0;
+
+#if defined(BOTAN_HAS_X509_CERTIFICATES)
+
+ size_t tests = 0;
+ const std::string fuzz_data = TEST_DATA_DIR "/fuzz";
+
+ for(auto vec: Botan::get_files_recursive(fuzz_data + "/x509"))
+ {
+ ++tests;
+
+ auto start = std::chrono::system_clock::now();
+ try
+ {
+ // TODO: check for memory consumption?
+ Botan::X509_Certificate cert(vec);
+ }
+ catch(std::exception& e)
+ {
+ //std::cout << e.what() << "\n";
+ }
+ auto end = std::chrono::system_clock::now();
+
+ uint64_t duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();
+
+ if(duration > 100)
+ {
+ std::cout << "Fuzzer test " << vec << " took " << duration << " ms" << std::endl;
+ }
+ }
+
+ test_report("Fuzzer checks", tests, fails);
+#endif
+
+ return fails;
+ }
+
+}
+
+size_t test_fuzzer()
+ {
+ size_t fails = 0;
+ fails += test_x509_fuzz();
+ return fails;
+ }