mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-06-27 15:43:42 +08:00
68 lines
2.1 KiB
CMake
68 lines
2.1 KiB
CMake
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()
|