| from show_only_json_check import * |
| |
| def check_kind(k): |
| assert is_string(k) |
| assert k == "ctestInfo" |
| |
| def check_version(v): |
| assert is_dict(v) |
| assert sorted(v.keys()) == ["major", "minor"] |
| assert is_int(v["major"]) |
| assert is_int(v["minor"]) |
| assert v["major"] == 1 |
| assert v["minor"] == 0 |
| |
| def check_backtracegraph(b): |
| assert is_dict(b) |
| assert sorted(b.keys()) == ["commands", "files", "nodes"] |
| check_backtracegraph_commands(b["commands"]) |
| check_backtracegraph_files(b["files"]) |
| check_backtracegraph_nodes(b["nodes"]) |
| |
| def check_backtracegraph_commands(c): |
| assert is_list(c) |
| assert len(c) == 1 |
| assert is_string(c[0]) |
| assert c[0] == "add_test" |
| |
| def check_backtracegraph_files(f): |
| assert is_list(f) |
| assert len(f) == 2 |
| assert is_string(f[0]) |
| assert is_string(f[1]) |
| assert f[0] == "file1" |
| assert f[1] == "file0" |
| |
| def check_backtracegraph_nodes(n): |
| assert is_list(n) |
| assert len(n) == 2 |
| node = n[0] |
| assert is_dict(node) |
| assert sorted(node.keys()) == ["file"] |
| assert is_int(node["file"]) |
| assert node["file"] == 1 |
| node = n[1] |
| assert is_dict(node) |
| assert sorted(node.keys()) == ["command", "file", "line", "parent"] |
| assert is_int(node["command"]) |
| assert is_int(node["file"]) |
| assert is_int(node["line"]) |
| assert is_int(node["parent"]) |
| assert node["command"] == 0 |
| assert node["file"] == 0 |
| assert node["line"] == 1 |
| assert node["parent"] == 0 |
| |
| def check_command(c): |
| assert is_list(c) |
| assert len(c) == 3 |
| assert is_string(c[0]) |
| check_re(c[0], "/cmake(\.exe)?$") |
| assert is_string(c[1]) |
| assert c[1] == "-E" |
| assert is_string(c[2]) |
| assert c[2] == "echo" |
| |
| def check_reqfiles_property(p): |
| assert is_dict(p) |
| assert sorted(p.keys()) == ["name", "value"] |
| assert is_string(p["name"]) |
| assert is_list(p["value"]) |
| assert p["name"] == "REQUIRED_FILES" |
| assert len(p["value"]) == 1 |
| assert p["value"][0] == "RequiredFileDoesNotExist" |
| |
| def check_willfail_property(p): |
| assert is_dict(p) |
| assert sorted(p.keys()) == ["name", "value"] |
| assert is_string(p["name"]) |
| assert is_bool(p["value"]) |
| assert p["name"] == "WILL_FAIL" |
| assert p["value"] == True |
| |
| def check_resource_groups_property(p): |
| assert is_dict(p) |
| assert sorted(p.keys()) == ["name", "value"] |
| assert is_string(p["name"]) |
| assert is_list(p["value"]) |
| assert p["name"] == "RESOURCE_GROUPS" |
| assert len(p["value"]) == 3 |
| |
| assert is_dict(p["value"][0]) |
| assert sorted(p["value"][0].keys()) == ["requirements"] |
| assert is_list(p["value"][0]["requirements"]) |
| assert len(p["value"][0]["requirements"]) == 2 |
| assert is_dict(p["value"][0]["requirements"][0]) |
| assert sorted(p["value"][0]["requirements"][0].keys()) == \ |
| [".type", "slots"] |
| assert is_string(p["value"][0]["requirements"][0][".type"]) |
| assert p["value"][0]["requirements"][0][".type"] == "threads" |
| assert is_int(p["value"][0]["requirements"][0]["slots"]) |
| assert p["value"][0]["requirements"][0]["slots"] == 2 |
| assert is_string(p["value"][0]["requirements"][1][".type"]) |
| assert p["value"][0]["requirements"][1][".type"] == "gpus" |
| assert is_int(p["value"][0]["requirements"][1]["slots"]) |
| assert p["value"][0]["requirements"][1]["slots"] == 4 |
| |
| assert is_dict(p["value"][1]) |
| assert sorted(p["value"][1].keys()) == ["requirements"] |
| assert is_list(p["value"][1]["requirements"]) |
| assert len(p["value"][1]["requirements"]) == 2 |
| assert is_dict(p["value"][1]["requirements"][0]) |
| assert sorted(p["value"][1]["requirements"][0].keys()) == \ |
| [".type", "slots"] |
| assert is_string(p["value"][1]["requirements"][0][".type"]) |
| assert p["value"][1]["requirements"][0][".type"] == "threads" |
| assert is_int(p["value"][1]["requirements"][0]["slots"]) |
| assert p["value"][1]["requirements"][0]["slots"] == 2 |
| assert is_string(p["value"][1]["requirements"][1][".type"]) |
| assert p["value"][1]["requirements"][1][".type"] == "gpus" |
| assert is_int(p["value"][1]["requirements"][1]["slots"]) |
| assert p["value"][1]["requirements"][1]["slots"] == 4 |
| |
| assert is_dict(p["value"][2]) |
| assert sorted(p["value"][2].keys()) == ["requirements"] |
| assert is_list(p["value"][2]["requirements"]) |
| assert len(p["value"][2]["requirements"]) == 2 |
| assert is_dict(p["value"][2]["requirements"][0]) |
| assert sorted(p["value"][2]["requirements"][0].keys()) == \ |
| [".type", "slots"] |
| assert is_string(p["value"][2]["requirements"][0][".type"]) |
| assert p["value"][2]["requirements"][0][".type"] == "gpus" |
| assert is_int(p["value"][2]["requirements"][0]["slots"]) |
| assert p["value"][2]["requirements"][0]["slots"] == 2 |
| assert is_string(p["value"][2]["requirements"][1][".type"]) |
| assert p["value"][2]["requirements"][1][".type"] == "threads" |
| assert is_int(p["value"][2]["requirements"][1]["slots"]) |
| assert p["value"][2]["requirements"][1]["slots"] == 4 |
| |
| def check_workingdir_property(p): |
| assert is_dict(p) |
| assert sorted(p.keys()) == ["name", "value"] |
| assert is_string(p["name"]) |
| assert is_string(p["value"]) |
| assert p["name"] == "WORKING_DIRECTORY" |
| assert p["value"].endswith("Tests/RunCMake/CTestCommandLine/ShowOnly") |
| |
| def check_properties(p): |
| assert is_list(p) |
| assert len(p) == 4 |
| check_resource_groups_property(p[0]) |
| check_reqfiles_property(p[1]) |
| check_willfail_property(p[2]) |
| check_workingdir_property(p[3]) |
| |
| def check_tests(t): |
| assert is_list(t) |
| assert len(t) == 1 |
| test = t[0] |
| assert is_dict(test) |
| assert sorted(test.keys()) == ["backtrace", "command", "name", "properties"] |
| assert is_int(test["backtrace"]) |
| assert test["backtrace"] == 1 |
| check_command(test["command"]) |
| assert is_string(test["name"]) |
| assert test["name"] == "ShowOnly" |
| check_properties(test["properties"]) |
| |
| assert is_dict(ctest_json) |
| assert sorted(ctest_json.keys()) == ["backtraceGraph", "kind", "tests", "version"] |
| check_backtracegraph(ctest_json["backtraceGraph"]) |
| check_kind(ctest_json["kind"]) |
| check_version(ctest_json["version"]) |
| check_tests(ctest_json["tests"]) |