xref: /aosp_15_r20/external/brotli/tests/run-compatibility-test.cmake (revision f4ee7fba7774faf2a30f13154332c0a06550dbc4)
1*f4ee7fbaSAndroid Build Coastguard Workerstring(REGEX REPLACE "([a-zA-Z0-9\\.]+)\\.compressed(\\.[0-9]+)?$" "\\1" REFERENCE_DATA "${INPUT}")
2*f4ee7fbaSAndroid Build Coastguard Workerstring(REGEX REPLACE "\\.compressed" "" OUTPUT_FILE "${INPUT}")
3*f4ee7fbaSAndroid Build Coastguard Workerget_filename_component(OUTPUT_NAME "${OUTPUT_FILE}" NAME)
4*f4ee7fbaSAndroid Build Coastguard Worker
5*f4ee7fbaSAndroid Build Coastguard Workerset(ENV{QEMU_LD_PREFIX} "${BROTLI_WRAPPER_LD_PREFIX}")
6*f4ee7fbaSAndroid Build Coastguard Worker
7*f4ee7fbaSAndroid Build Coastguard Workerexecute_process(
8*f4ee7fbaSAndroid Build Coastguard Worker  WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
9*f4ee7fbaSAndroid Build Coastguard Worker  COMMAND ${BROTLI_WRAPPER} ${BROTLI_CLI} --force --decompress ${INPUT} --output=${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_NAME}.unbr
10*f4ee7fbaSAndroid Build Coastguard Worker  RESULT_VARIABLE result)
11*f4ee7fbaSAndroid Build Coastguard Workerif(result)
12*f4ee7fbaSAndroid Build Coastguard Worker  message(FATAL_ERROR "Decompression failed")
13*f4ee7fbaSAndroid Build Coastguard Workerendif()
14*f4ee7fbaSAndroid Build Coastguard Worker
15*f4ee7fbaSAndroid Build Coastguard Workerfunction(test_file_equality f1 f2)
16*f4ee7fbaSAndroid Build Coastguard Worker  if(NOT CMAKE_VERSION VERSION_LESS 2.8.7)
17*f4ee7fbaSAndroid Build Coastguard Worker    file(SHA512 "${f1}" f1_cs)
18*f4ee7fbaSAndroid Build Coastguard Worker    file(SHA512 "${f2}" f2_cs)
19*f4ee7fbaSAndroid Build Coastguard Worker    if(NOT "${f1_cs}" STREQUAL "${f2_cs}")
20*f4ee7fbaSAndroid Build Coastguard Worker      message(FATAL_ERROR "Files do not match")
21*f4ee7fbaSAndroid Build Coastguard Worker    endif()
22*f4ee7fbaSAndroid Build Coastguard Worker  else()
23*f4ee7fbaSAndroid Build Coastguard Worker    file(READ "${f1}" f1_contents)
24*f4ee7fbaSAndroid Build Coastguard Worker    file(READ "${f2}" f2_contents)
25*f4ee7fbaSAndroid Build Coastguard Worker    if(NOT "${f1_contents}" STREQUAL "${f2_contents}")
26*f4ee7fbaSAndroid Build Coastguard Worker      message(FATAL_ERROR "Files do not match")
27*f4ee7fbaSAndroid Build Coastguard Worker    endif()
28*f4ee7fbaSAndroid Build Coastguard Worker  endif()
29*f4ee7fbaSAndroid Build Coastguard Workerendfunction()
30*f4ee7fbaSAndroid Build Coastguard Worker
31*f4ee7fbaSAndroid Build Coastguard Workertest_file_equality("${REFERENCE_DATA}" "${CMAKE_CURRENT_BINARY_DIR}/${OUTPUT_NAME}.unbr")
32