diff options
author | Simon Warta <[email protected]> | 2015-08-08 12:42:45 +0200 |
---|---|---|
committer | Simon Warta <[email protected]> | 2015-08-08 12:42:45 +0200 |
commit | 90409af56f6f86487cf6fcad731b9a5aa6508540 (patch) | |
tree | b6b1afa9d3d4f9f5f066e88e4b7bb557a8df3a49 /src/tests/test_fuzzer.cpp | |
parent | 31d74661c596c88594736b237bf2fcc62015291e (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.cpp | 68 |
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; + } |