From 8a773168fd16e444cb9df8a930d270c0f784cf48 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Mon, 3 Mar 2025 22:02:40 +0100 Subject: [PATCH] Tests/CXXModules: help diagnose build database errors In tests that compare multiple files, knowing which file(s) errors come from is difficult. Log the actual filepaths when this occurs to help debugging. --- .../CXXModules/examples/build-database-check.cmake | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Tests/RunCMake/CXXModules/examples/build-database-check.cmake b/Tests/RunCMake/CXXModules/examples/build-database-check.cmake index c09aceaecd..9b440a8440 100644 --- a/Tests/RunCMake/CXXModules/examples/build-database-check.cmake +++ b/Tests/RunCMake/CXXModules/examples/build-database-check.cmake @@ -70,7 +70,19 @@ function (check_build_database expect_basename fname component) file(READ "${RunCMake_TEST_BINARY_DIR}/${fname}" actual) file(READ "${expected_file}" expect) + set(RunCMake_TEST_FAILED_before "${RunCMake_TEST_FAILED}") + set(RunCMake_TEST_FAILED "") + check_json("${actual}" "${expect}") + if (RunCMake_TEST_FAILED) + string(PREPEND RunCMake_TEST_FAILED + "${RunCMake_TEST_FAILED_before}\n" + "actual file: ${RunCMake_TEST_BINARY_DIR}/${fname}\n" + "expect file: ${expected_file}\n") + else () + set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED_before}") + endif () + set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}" PARENT_SCOPE) endfunction ()