diff --git a/.gitignore b/.gitignore index faa2bf6..a3b04e8 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,4 @@ test_pEpLog_basic /test/test_swarm_tofu /test/test_file_rw_bin /test/test_rw.bin +/test/test_hexbin diff --git a/test/test_hexbin.cc b/test/test_hexbin.cc new file mode 100644 index 0000000..d89c3fb --- /dev/null +++ b/test/test_hexbin.cc @@ -0,0 +1,39 @@ +#include "../src/std_utils.hh" +#include "../src/pEpLog.hh" +#include +#include +#include + +using namespace pEp::Utils; + +int main() +{ + pEp::Adapter::pEpLog::set_enabled(true); + + { + // Valid hex string + std::string str_in{ "FFABCD00EF123200" }; + std::vector bin = pEp::Utils::hex2bin(str_in); + PITYASSERT(str_in.length() == bin.size() * 2, "Size error"); + + std::string str_out = pEp::Utils::bin2hex(bin); + pEpLog("Hex_IN : '" + to_lower(str_in) + "'"); + pEpLog("Hex_OUT : '" + to_lower(str_out) + "'"); + + PITYASSERT(to_lower(str_in) == to_lower(str_out), "roundtrip failed"); + } + + { + // Uneven string throws + std::string str_in{ "FFA" }; + PITYASSERT_THROWS(pEp::Utils::hex2bin(str_in), "Uneven string should throw"); + } + + { + // Non-hex chars + std::string str_in{ "pEp!" }; + PITYASSERT_THROWS(pEp::Utils::hex2bin(str_in), "Invalid hex chars should throw"); + } + + pEpLog("All tests passsed"); +} \ No newline at end of file