467e9d1463
* Update TEST_ASSERT to do nothing if condition is true The TEST_ASSERT should not return if the condition is true, because: - it prevents the usage of multiple TEST_ASSERT in a single test case, - that behavior differs from how the assert in the standard library works, and thus may give unexpected results. Make the TEST_ASSERT to print an error message (with an formatted optional user part) when it fails to make debugging easier. * Fix some bugs in TestProvider, add unit tests Use pointer-to-vector in TestProvider so writes can be tested, too. * Add test EncodeDecode16, fix some encode16 bugs The function mbedtls_mpi_write_string needs a bit longer buffer than the resulting string actually will be. Known bug: mbedtls_mpi_read_binary ingores initial null bytes * Add test EncodeDecode64, fix some bugs The functions mbedtls_base64_encode and mbedtls_base64_decode needs a bit longer buffer than the resulting string actually will be. * Remove check for empty data from TestProvider It can be valid to get the hash of empty string. * Add tests for CRC calculation Two type of thests: - compare the result of the CRC calculation to a known to be good results, - generate random data as message, calculate of it's CRC and append that to the message, the CRC of this new data should be 0. * Add test for hash algorithms * Add includes in tests * Remove the use of C++20 ranges It seems that Apple Clang does not support range-based constrained algorithms at this time. * Replace encode16 implementation To encode the zero bytes at the begining of the input vector, too.
51 lines
1.0 KiB
CMake
51 lines
1.0 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
|
|
project(algorithms_test)
|
|
|
|
|
|
# Add new tests here #
|
|
set(AVAILABLE_TESTS
|
|
# Common
|
|
TestSucceeding
|
|
TestFailing
|
|
TestProvider_read
|
|
TestProvider_write
|
|
|
|
# Endian
|
|
32BitIntegerEndianSwap
|
|
64BitFloatEndianSwap
|
|
|
|
# Crypto
|
|
EncodeDecode16
|
|
EncodeDecode64
|
|
CRC32
|
|
CRC32Random
|
|
CRC16
|
|
CRC16Random
|
|
CRC8
|
|
CRC8Random
|
|
md5
|
|
sha1
|
|
sha224
|
|
sha256
|
|
sha384
|
|
sha512
|
|
)
|
|
|
|
|
|
add_executable(algorithms_test
|
|
source/main.cpp
|
|
|
|
source/common.cpp
|
|
source/endian.cpp
|
|
source/crypto.cpp
|
|
)
|
|
target_include_directories(algorithms_test PRIVATE include)
|
|
target_link_libraries(algorithms_test libimhex)
|
|
|
|
set_target_properties(algorithms_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
|
|
foreach (test IN LISTS AVAILABLE_TESTS)
|
|
add_test(NAME "Algorithms/${test}" COMMAND algorithms_test "${test}" WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
|
|
endforeach ()
|