From 588ec1b44c14b00a32e77941eb78c9254968f6aa Mon Sep 17 00:00:00 2001 From: tastytea Date: Fri, 18 Jan 2019 15:54:57 +0100 Subject: [PATCH] Added tests for C interface --- src/tests/test_c.cpp | 76 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 src/tests/test_c.cpp diff --git a/src/tests/test_c.cpp b/src/tests/test_c.cpp new file mode 100644 index 0000000..0af6585 --- /dev/null +++ b/src/tests/test_c.cpp @@ -0,0 +1,76 @@ +#include +#include +#include +#include +#include +#include +#include "identiconpp_c.h" + +using std::string; +using std::uint8_t; +using std::uint64_t; + +SCENARIO("C interface", "[C]") +{ + GIVEN("The digest: sha256(test@example.com)") + { + char digest[65] = "973dfe463ec85785f5f95af5ba3906ee" + "db2d931c24e69824a89ea65dba4e813b"; + const uint8_t padding[2] = { 20, 40 }; + bool success = false; + + WHEN("256 bits of entropy is required") + { + const char colors[15][9] = + { + "000000ff", "000000ff", "000000ff", "000000ff", "000000ff", + "000000ff", "000000ff", "000000ff", "000000ff", "000000ff", + "000000ff", "000000ff", "000000ff", "000000ff", "000000ff" + }; + + success = identiconpp_setup(18, 28, + identiconpp_ltr_symmetric, + "ffffffff", + colors, 15, padding); + uint64_t len = identiconpp_generate("png", digest, 50); + if (len == 0) + { + success = false; + } + if (string(identiconpp_base64()).length() != len) + { + success = false; + } + + THEN("Does not crash") + { + REQUIRE(success == true); + } + } + + WHEN("257 bits of entropy is required") + { + const char colors[16][9] = + { + "000000ff", "000000ff", "000000ff", "000000ff", "000000ff", + "000000ff", "000000ff", "000000ff", "000000ff", "000000ff", + "000000ff", "000000ff", "000000ff", "000000ff", "000000ff", + "000000ff" + }; + + success = identiconpp_setup(18, 28, + identiconpp_ltr_symmetric, + "ffffffff", + colors, 16, padding); + if (identiconpp_generate("png", digest, 50) == 0) + { + success = false; + } + + THEN("Crashes") + { + REQUIRE(success == false); + } + } + } +}