mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-06-29 01:03:38 +08:00
Update tests
This commit is contained in:
67
cmake/tool_helpers.cmake
Normal file
67
cmake/tool_helpers.cmake
Normal file
@@ -0,0 +1,67 @@
|
||||
set(GMSSL_BIN bin/gmssl)
|
||||
|
||||
function(gmssl_run)
|
||||
execute_process(
|
||||
COMMAND ${GMSSL_BIN} ${ARGN}
|
||||
RESULT_VARIABLE TEST_RESULT
|
||||
ERROR_VARIABLE TEST_STDERR
|
||||
OUTPUT_VARIABLE TEST_STDOUT
|
||||
)
|
||||
if(NOT TEST_RESULT EQUAL 0)
|
||||
message(FATAL_ERROR "command failed: ${GMSSL_BIN} ${ARGN}\nstderr: ${TEST_STDERR}\nstdout: ${TEST_STDOUT}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(gmssl_run_capture out_var)
|
||||
execute_process(
|
||||
COMMAND ${GMSSL_BIN} ${ARGN}
|
||||
RESULT_VARIABLE TEST_RESULT
|
||||
ERROR_VARIABLE TEST_STDERR
|
||||
OUTPUT_VARIABLE TEST_STDOUT
|
||||
)
|
||||
if(NOT TEST_RESULT EQUAL 0)
|
||||
message(FATAL_ERROR "command failed: ${GMSSL_BIN} ${ARGN}\nstderr: ${TEST_STDERR}\nstdout: ${TEST_STDOUT}")
|
||||
endif()
|
||||
set(${out_var} "${TEST_STDOUT}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
function(gmssl_expect_stdout expected)
|
||||
gmssl_run_capture(TEST_STDOUT ${ARGN})
|
||||
if(NOT TEST_STDOUT STREQUAL "${expected}")
|
||||
message(FATAL_ERROR "unexpected stdout for ${GMSSL_BIN} ${ARGN}\nexpected: ${expected}\nactual: ${TEST_STDOUT}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(gmssl_require_file file)
|
||||
if(NOT EXISTS "${file}")
|
||||
message(FATAL_ERROR "generated file does not exist: ${file}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(gmssl_files_equal expected actual)
|
||||
gmssl_require_file("${expected}")
|
||||
gmssl_require_file("${actual}")
|
||||
file(SHA256 "${expected}" EXPECTED_HASH)
|
||||
file(SHA256 "${actual}" ACTUAL_HASH)
|
||||
if(NOT EXPECTED_HASH STREQUAL ACTUAL_HASH)
|
||||
message(FATAL_ERROR "file mismatch: ${expected} ${actual}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(gmssl_expect_file_hex file expected_hex)
|
||||
gmssl_require_file("${file}")
|
||||
file(READ "${file}" ACTUAL_HEX HEX)
|
||||
string(TOLOWER "${ACTUAL_HEX}" ACTUAL_HEX)
|
||||
string(TOLOWER "${expected_hex}" EXPECTED_HEX)
|
||||
if(NOT ACTUAL_HEX STREQUAL EXPECTED_HEX)
|
||||
message(FATAL_ERROR "unexpected hex in ${file}\nexpected: ${EXPECTED_HEX}\nactual: ${ACTUAL_HEX}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(gmssl_expect_file_text file expected_text)
|
||||
gmssl_require_file("${file}")
|
||||
file(READ "${file}" ACTUAL_TEXT)
|
||||
if(NOT ACTUAL_TEXT STREQUAL "${expected_text}")
|
||||
message(FATAL_ERROR "unexpected text in ${file}\nexpected: ${expected_text}\nactual: ${ACTUAL_TEXT}")
|
||||
endif()
|
||||
endfunction()
|
||||
Reference in New Issue
Block a user