Просмотр исходного кода

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 месяцев назад
Родитель
Сommit
8a773168fd
1 измененных файлов с 12 добавлено и 0 удалено
  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 "${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 ()