Browse Source

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.
Ben Boeckel 11 months ago
parent
commit
8a773168fd
1 changed files with 12 additions and 0 deletions
  1. 12 0
      Tests/RunCMake/CXXModules/examples/build-database-check.cmake

+ 12 - 0
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 "${RunCMake_TEST_BINARY_DIR}/${fname}" actual)
   file(READ "${expected_file}" expect)
   file(READ "${expected_file}" expect)
 
 
+  set(RunCMake_TEST_FAILED_before "${RunCMake_TEST_FAILED}")
+  set(RunCMake_TEST_FAILED "")
+
   check_json("${actual}" "${expect}")
   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)
   set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}" PARENT_SCOPE)
 endfunction ()
 endfunction ()