Finish first draft of this library

* Implement decode function with tests
* Write doxygen headers
* Fix ifdef guards in include file
* Fix test output formatting
This commit is contained in:
2020-11-02 23:42:55 +01:00
parent 5aa063cafd
commit b9cd9198d7
4 changed files with 231 additions and 1 deletions

View File

@@ -1,6 +1,6 @@
project(base64-test)
add_custom_target("execute-${PROJECT_NAME}" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}" "-r compact" "-s" DEPENDS ${PROJECT_NAME})
add_custom_target("execute-${PROJECT_NAME}" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}" DEPENDS ${PROJECT_NAME})
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/catch-framework")
aux_source_directory("src" TEST_SOURCES)

View File

@@ -73,3 +73,56 @@ TEST_CASE("base64/base64_calculate_maximum_decoded_size", "[DECODE]")
REQUIRE(base64_calculate_maximum_decoded_size(4) == 3);
REQUIRE(base64_calculate_maximum_decoded_size(160) == 120);
}
TEST_CASE("base64/base64_decode", "[DECODE]")
{
char decoded[2048];
size_t written;
int ret;
ret = base64_decode(base64_reference.c_str(), decoded, base64_reference.length(), lorem_ipsum.length(), &written);
REQUIRE(ret == 0);
REQUIRE(written == lorem_ipsum.length());
if (!ret) {
decoded[written] = 0;
REQUIRE(std::string(decoded) == lorem_ipsum);
}
}
TEST_CASE("base64/base64_decode/error_src_to_short", "[DECODE]")
{
char decoded[2048];
size_t written;
int ret;
ret = base64_decode(base64_reference.c_str(), decoded, base64_reference.length() -1, sizeof(decoded), &written);
REQUIRE(ret == -1);
REQUIRE(written == 0);
}
TEST_CASE("base64/base64_decode/error_dest_to_short", "[DECODE]")
{
char decoded[2048];
size_t written;
int ret;
ret = base64_decode(base64_reference.c_str(), decoded, base64_reference.length(), 12, &written);
REQUIRE(ret == -2);
REQUIRE(written == 0);
}
TEST_CASE("base64/base64_decode/invalid_char", "[DECODE]")
{
char decoded[2048];
size_t written;
int ret;
std::string ref = base64_reference;
ref[12] = '!';
ret = base64_decode(ref.c_str(), decoded, ref.length(), 2048, &written);
REQUIRE(ret == -3);
REQUIRE(written == 9);
}