diff options
author | Nathan Moinvaziri <nathan@nathanm.com> | 2021-04-29 18:45:41 -0700 |
---|---|---|
committer | Hans Kristian Rosbach <hk-github@circlestorm.org> | 2021-05-03 10:48:24 +0200 |
commit | 0733cb47997b94506ccfe429d7f81abc99b9ad2f (patch) | |
tree | 964bc68795045ca29c6d6212390809865b62eb50 | |
parent | 78f07cc2c4281276655956999cc6eee982f621e5 (diff) |
Print differences between expected output in test-compress cmake script and upload as artifacts.
-rw-r--r-- | .github/workflows/cmake.yml | 5 | ||||
-rw-r--r-- | cmake/test-compress.cmake | 44 |
2 files changed, 42 insertions, 7 deletions
diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 95d3b5a..8178e2a 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -441,4 +441,9 @@ jobs: path: | ${{ matrix.build-dir || '.' }}/CMakeFiles/CMakeOutput.log ${{ matrix.build-dir || '.' }}/CMakeFiles/CMakeError.log + ${{ matrix.build-dir || '.' }}/Testing/Temporary/*.log + ${{ matrix.build-dir || '.' }}/test/**/*.diff + ${{ matrix.build-dir || '.' }}/test/**/*.hex + ${{ matrix.build-dir || '.' }}/test/**/*.gz* + ${{ matrix.build-dir || '.' }}/test/**/*.out retention-days: 30 diff --git a/cmake/test-compress.cmake b/cmake/test-compress.cmake index 4e90821..97c387d 100644 --- a/cmake/test-compress.cmake +++ b/cmake/test-compress.cmake @@ -64,14 +64,41 @@ set(OUTPUT_BASE "${CMAKE_CURRENT_BINARY_DIR}/test/${TEST_NAME}-${UNIQUE_ID}") get_filename_component(OUTPUT_DIR "${OUTPUT_BASE}" DIRECTORY) file(MAKE_DIRECTORY "${OUTPUT_DIR}") +# Cleanup temporary files macro(cleanup) - # Cleanup temporary files - file(REMOVE - ${OUTPUT_BASE}.gz - ${OUTPUT_BASE}.out - ${OUTPUT_BASE}.gzip - ${OUTPUT_BASE}.gzip.gz - ${OUTPUT_BASE}.gzip.out) + if(NOT DEFINED ENV{CI}) + file(REMOVE + ${OUTPUT_BASE}.gz + ${OUTPUT_BASE}.out + ${OUTPUT_BASE}.gzip + ${OUTPUT_BASE}.gzip.gz + ${OUTPUT_BASE}.gzip.out) + endif() +endmacro() + +# Show differences between two files +macro(diff src1 src2) + find_program(XXD xxd) + if(XXD) + find_program(DIFF diff) + if(DIFF) + set(XXD_COMMAND ${XXD} ${src1} ${src1}.hex) + execute_process(COMMAND ${XXD_COMMAND}) + set(XXD_COMMAND ${XXD} ${src2} ${src2}.hex) + execute_process(COMMAND ${XXD_COMMAND}) + + set(DIFF_COMMAND ${DIFF} -u ${src1}.hex ${src2}.hex) + execute_process(COMMAND ${DIFF_COMMAND} + OUTPUT_FILE ${src2}.diff) + + file(READ ${src2}.diff DIFF_OUTPUT) + message(STATUS ${DIFF_OUTPUT}) + + if(NOT DEFINED ENV{CI}) + file(REMOVE ${src1}.hex ${src2}.hex ${src2}.diff) + endif() + endif() + endif() endmacro() # Compress input file @@ -122,6 +149,7 @@ if(COMPARE) RESULT_VARIABLE CMD_RESULT) if(CMD_RESULT) + diff(${INPUT} ${OUTPUT_BASE}.out) cleanup() message(FATAL_ERROR "Compare minigzip decompress failed: ${CMD_RESULT}") endif() @@ -158,6 +186,7 @@ if(GZIP_VERIFY AND NOT "${COMPRESS_ARGS}" MATCHES "-T") RESULT_VARIABLE CMD_RESULT) if(CMD_RESULT) + diff(${INPUT} ${OUTPUT_BASE}.gzip.out) cleanup() message(FATAL_ERROR "Compare gzip decompress failed: ${CMD_RESULT}") endif() @@ -209,6 +238,7 @@ if(GZIP_VERIFY AND NOT "${COMPRESS_ARGS}" MATCHES "-T") RESULT_VARIABLE CMD_RESULT) if(CMD_RESULT) + diff(${INPUT} ${OUTPUT_BASE}.gzip) cleanup() message(FATAL_ERROR "Compare decompress gzip failed: ${CMD_RESULT}") endif() |