Added tests for C interface
the build was successful Details

This commit is contained in:
tastytea 2019-01-18 15:54:57 +01:00
parent fb6eadd946
commit 588ec1b44c
Signed by: tastytea
GPG Key ID: CFC39497F1B26E07
1 changed files with 76 additions and 0 deletions

76
src/tests/test_c.cpp Normal file
View File

@ -0,0 +1,76 @@
#include <catch.hpp>
#include <string>
#include <exception>
#include <vector>
#include <cstdint>
#include <Magick++/Image.h>
#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);
}
}
}
}