mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-16 22:37:30 +08:00
fileapi: Add test for cmakeFiles v1
This commit is contained in:
@@ -5,10 +5,89 @@ def check_objects(o):
|
|||||||
assert len(o) == 1
|
assert len(o) == 1
|
||||||
check_index_object(o[0], "cmakeFiles", 1, 0, check_object_cmakeFiles)
|
check_index_object(o[0], "cmakeFiles", 1, 0, check_object_cmakeFiles)
|
||||||
|
|
||||||
|
def check_input(actual, expected):
|
||||||
|
assert is_dict(actual)
|
||||||
|
expected_keys = ["path"]
|
||||||
|
|
||||||
|
if expected["isGenerated"] is not None:
|
||||||
|
expected_keys.append("isGenerated")
|
||||||
|
assert is_bool(actual["isGenerated"], expected["isGenerated"])
|
||||||
|
|
||||||
|
if expected["isExternal"] is not None:
|
||||||
|
expected_keys.append("isExternal")
|
||||||
|
assert is_bool(actual["isExternal"], expected["isExternal"])
|
||||||
|
|
||||||
|
if expected["isCMake"] is not None:
|
||||||
|
expected_keys.append("isCMake")
|
||||||
|
assert is_bool(actual["isCMake"], expected["isCMake"])
|
||||||
|
|
||||||
|
assert sorted(actual.keys()) == sorted(expected_keys)
|
||||||
|
|
||||||
def check_object_cmakeFiles(o):
|
def check_object_cmakeFiles(o):
|
||||||
assert sorted(o.keys()) == ["inputs", "kind", "paths", "version"]
|
assert sorted(o.keys()) == ["inputs", "kind", "paths", "version"]
|
||||||
# The "kind" and "version" members are handled by check_index_object.
|
# The "kind" and "version" members are handled by check_index_object.
|
||||||
# FIXME: Check "paths" and "inputs" members.
|
assert is_dict(o["paths"])
|
||||||
|
assert sorted(o["paths"].keys()) == ["build", "source"]
|
||||||
|
assert matches(o["paths"]["build"], "^.*/Tests/RunCMake/FileAPI/cmakeFiles-v1-build$")
|
||||||
|
assert matches(o["paths"]["source"], "^.*/Tests/RunCMake/FileAPI$")
|
||||||
|
|
||||||
|
expected = [
|
||||||
|
{
|
||||||
|
"path": "^CMakeLists\\.txt$",
|
||||||
|
"isGenerated": None,
|
||||||
|
"isExternal": None,
|
||||||
|
"isCMake": None,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "^cmakeFiles-v1\\.cmake$",
|
||||||
|
"isGenerated": None,
|
||||||
|
"isExternal": None,
|
||||||
|
"isCMake": None,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "^dir/CMakeLists\\.txt$",
|
||||||
|
"isGenerated": None,
|
||||||
|
"isExternal": None,
|
||||||
|
"isCMake": None,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "^dir/dir/CMakeLists\\.txt$",
|
||||||
|
"isGenerated": None,
|
||||||
|
"isExternal": None,
|
||||||
|
"isCMake": None,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "^dir/dirtest\\.cmake$",
|
||||||
|
"isGenerated": None,
|
||||||
|
"isExternal": None,
|
||||||
|
"isCMake": None,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "^.*/Tests/RunCMake/FileAPIDummyFile\\.cmake$",
|
||||||
|
"isGenerated": None,
|
||||||
|
"isExternal": True,
|
||||||
|
"isCMake": None,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "^.*/Tests/RunCMake/FileAPI/cmakeFiles-v1-build/generated\\.cmake",
|
||||||
|
"isGenerated": True,
|
||||||
|
"isExternal": None,
|
||||||
|
"isCMake": None,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "^.*/Modules/CMakeParseArguments\\.cmake$",
|
||||||
|
"isGenerated": None,
|
||||||
|
"isExternal": True,
|
||||||
|
"isCMake": True,
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
inSource = os.path.dirname(o["paths"]["build"]) == o["paths"]["source"]
|
||||||
|
if inSource:
|
||||||
|
for e in expected:
|
||||||
|
e["path"] = e["path"].replace("^.*/Tests/RunCMake/FileAPI/", "^", 1)
|
||||||
|
|
||||||
|
check_list_match(lambda a, e: matches(a["path"], e["path"]), o["inputs"], expected, check=check_input, allow_extra=True)
|
||||||
|
|
||||||
assert is_dict(index)
|
assert is_dict(index)
|
||||||
assert sorted(index.keys()) == ["cmake", "objects", "reply"]
|
assert sorted(index.keys()) == ["cmake", "objects", "reply"]
|
||||||
|
@@ -0,0 +1,8 @@
|
|||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/dir/dirtest.cmake")
|
||||||
|
include(CMakeParseArguments)
|
||||||
|
|
||||||
|
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/generated.cmake" "")
|
||||||
|
include("${CMAKE_CURRENT_BINARY_DIR}/generated.cmake")
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/../FileAPIDummyFile.cmake")
|
||||||
|
|
||||||
|
add_subdirectory(dir)
|
||||||
|
1
Tests/RunCMake/FileAPI/dir/CMakeLists.txt
Normal file
1
Tests/RunCMake/FileAPI/dir/CMakeLists.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
add_subdirectory(dir)
|
0
Tests/RunCMake/FileAPI/dir/dir/CMakeLists.txt
Normal file
0
Tests/RunCMake/FileAPI/dir/dir/CMakeLists.txt
Normal file
0
Tests/RunCMake/FileAPI/dir/dirtest.cmake
Normal file
0
Tests/RunCMake/FileAPI/dir/dirtest.cmake
Normal file
0
Tests/RunCMake/FileAPIDummyFile.cmake
Normal file
0
Tests/RunCMake/FileAPIDummyFile.cmake
Normal file
Reference in New Issue
Block a user