我正在尝试编写一个CTest测试,将输出目录与另一个已知正确的目录(golden)进行比较。
我使用了工具cmake -E compare_files <file1> <file2>
,它应该也可以处理我在网上收集的一些目录。
add_test("cmp_to_golden_${test_name}" "${CMAKE_COMMAND}" -E compare_files
"${output_path}"
"${golden_path}"
)
字符串
我在网上没有找到任何有用的东西,命令本身也不打印任何东西,所以我不知道为什么它返回1(这意味着它认为它们是不同的)。我确信目录是相同的,因为我复制粘贴输出到黄金目录,它仍然不起作用。只有当我把相同的路径作为两个参数时,它才起作用。
我错过了什么?我可能是该工具真的不是为目录,但我想在这方面的一些确认。
1条答案
按热度按时间nfeuvbwi1#
它不应该处理目录。下面是处理
compare_files
命令的代码:https://gitlab.kitware.com/cmake/cmake/-/blob/a3f76a4e4dc15997f22306b002fbc452af1259a6/Source/cmcmd.cxx#L771下面使用的
cmSystemTools::FilesDiffer
不适用于以下目录:https://gitlab.kitware.com/cmake/cmake/-/blob/a3f76a4e4dc15997f22306b002fbc452af1259a6/Source/kwsys/SystemTools.cxx#L2308您可能需要使用
file(GLOB_RECURSE)
+"${CMAKE_COMMAND}" -E compare_files ...
。