Skip to content

Commit

Permalink
Unify tests that use fix_rules.py
Browse files Browse the repository at this point in the history
We currently have multiple CTest tests that run `fix_rules.py`.
Each of the tests runs a different subcommand of `fix_rules.py`.
These tests test various aspects of rule.yml files. Each test
tests all rule.yml files in a product. That means that each
test loads all rule.yml files to perform the check. This isn't
efficient and takes a lot of time. Thanks to the new subcommand
`test_all` that has been introduced to `fix_rules.py` recently,
we can run all checks at once. Therefore, we will merge all
the CTest tests that run `fix_rules.py` to a single test.
This way, we will parse each rule.yml file just once, and that
will save us a lot of time during testing.
  • Loading branch information
jan-cerny committed Aug 9, 2023
1 parent 60fb30b commit a429d02
Showing 1 changed file with 5 additions and 62 deletions.
67 changes: 5 additions & 62 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -83,68 +83,12 @@ add_test(
set_tests_properties("macros-oval" PROPERTIES LABELS quick)

add_test(
NAME "fix_rules-empty_identifiers"
COMMAND env "PYTHONPATH=$ENV{PYTHONPATH}" "${PYTHON_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/utils/fix_rules.py" "--dry-run" "--root" "${CMAKE_SOURCE_DIR}" "--json" "${CMAKE_SOURCE_DIR}/build/rule_dirs.json" "empty_identifiers"
NAME "fix_rules"
COMMAND env "PYTHONPATH=$ENV{PYTHONPATH}" "${PYTHON_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/utils/fix_rules.py" "--dry-run" "--root" "${CMAKE_SOURCE_DIR}" "--json" "${CMAKE_SOURCE_DIR}/build/rule_dirs.json" "test_all"
)
set_tests_properties("fix_rules-empty_identifiers" PROPERTIES LABELS quick)
set_tests_properties("fix_rules-empty_identifiers" PROPERTIES DEPENDS "test-rule-dir-json")
set_tests_properties("fix_rules-empty_identifiers" PROPERTIES FIXTURES_REQUIRED "rule-dir-json")

add_test(
NAME "fix_rules-invalid_identifiers"
COMMAND env "PYTHONPATH=$ENV{PYTHONPATH}" "${PYTHON_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/utils/fix_rules.py" "--dry-run" "--root" "${CMAKE_SOURCE_DIR}" "--json" "${CMAKE_SOURCE_DIR}/build/rule_dirs.json" "invalid_identifiers"
)
set_tests_properties("fix_rules-invalid_identifiers" PROPERTIES LABELS quick)
set_tests_properties("fix_rules-invalid_identifiers" PROPERTIES DEPENDS "test-rule-dir-json")
set_tests_properties("fix_rules-invalid_identifiers" PROPERTIES FIXTURES_REQUIRED "rule-dir-json")

add_test(
NAME "fix_rules-int_identifiers"
COMMAND env "PYTHONPATH=$ENV{PYTHONPATH}" "${PYTHON_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/utils/fix_rules.py" "--dry-run" "--root" "${CMAKE_SOURCE_DIR}" "--json" "${CMAKE_SOURCE_DIR}/build/rule_dirs.json" "int_identifiers"
)
set_tests_properties("fix_rules-int_identifiers" PROPERTIES LABELS quick)
set_tests_properties("fix_rules-int_identifiers" PROPERTIES DEPENDS "test-rule-dir-json")
set_tests_properties("fix_rules-int_identifiers" PROPERTIES FIXTURES_REQUIRED "rule-dir-json")

add_test(
NAME "fix_rules-empty_references"
COMMAND env "PYTHONPATH=$ENV{PYTHONPATH}" "${PYTHON_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/utils/fix_rules.py" "--dry-run" "--root" "${CMAKE_SOURCE_DIR}" "--json" "${CMAKE_SOURCE_DIR}/build/rule_dirs.json" "empty_references"
)
set_tests_properties("fix_rules-empty_references" PROPERTIES LABELS quick)
set_tests_properties("fix_rules-empty_references" PROPERTIES DEPENDS "test-rule-dir-json")
set_tests_properties("fix_rules-empty_references" PROPERTIES FIXTURES_REQUIRED "rule-dir-json")

add_test(
NAME "fix_rules-int_references"
COMMAND env "PYTHONPATH=$ENV{PYTHONPATH}" "${PYTHON_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/utils/fix_rules.py" "--dry-run" "--root" "${CMAKE_SOURCE_DIR}" "--json" "${CMAKE_SOURCE_DIR}/build/rule_dirs.json" "int_references"
)
set_tests_properties("fix_rules-int_references" PROPERTIES LABELS quick)
set_tests_properties("fix_rules-int_references" PROPERTIES DEPENDS "test-rule-dir-json")
set_tests_properties("fix_rules-int_references" PROPERTIES FIXTURES_REQUIRED "rule-dir-json")

add_test(
NAME "fix_rules-duplicate_subkeys"
COMMAND env "PYTHONPATH=$ENV{PYTHONPATH}" "${PYTHON_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/utils/fix_rules.py" "--dry-run" "--root" "${CMAKE_SOURCE_DIR}" "--json" "${CMAKE_SOURCE_DIR}/build/rule_dirs.json" "duplicate_subkeys"
)
set_tests_properties("fix_rules-duplicate_subkeys" PROPERTIES LABELS quick)
set_tests_properties("fix_rules-duplicate_subkeys" PROPERTIES DEPENDS "test-rule-dir-json")
set_tests_properties("fix_rules-duplicate_subkeys" PROPERTIES FIXTURES_REQUIRED "rule-dir-json")

add_test(
NAME "fix_rules-sort_subkeys"
COMMAND env "PYTHONPATH=$ENV{PYTHONPATH}" "${PYTHON_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/utils/fix_rules.py" "--dry-run" "--root" "${CMAKE_SOURCE_DIR}" "--json" "${CMAKE_SOURCE_DIR}/build/rule_dirs.json" "sort_subkeys"
)
set_tests_properties("fix_rules-sort_subkeys" PROPERTIES LABELS quick)
set_tests_properties("fix_rules-sort_subkeys" PROPERTIES DEPENDS "test-rule-dir-json")
set_tests_properties("fix_rules-sort_subkeys" PROPERTIES FIXTURES_REQUIRED "rule-dir-json")

add_test(
NAME "fix_rules-sort_prodtypes"
COMMAND env "PYTHONPATH=$ENV{PYTHONPATH}" "${PYTHON_EXECUTABLE}" "${CMAKE_SOURCE_DIR}/utils/fix_rules.py" "--dry-run" "--root" "${CMAKE_SOURCE_DIR}" "--json" "${CMAKE_SOURCE_DIR}/build/rule_dirs.json" "sort_prodtypes"
)
set_tests_properties("fix_rules-sort_prodtypes" PROPERTIES LABELS quick)
set_tests_properties("fix_rules-sort_prodtypes" PROPERTIES DEPENDS "test-rule-dir-json")
set_tests_properties("fix_rules-sort_prodtypes" PROPERTIES FIXTURES_REQUIRED "rule-dir-json")
set_tests_properties("fix_rules" PROPERTIES LABELS quick)
set_tests_properties("fix_rules" PROPERTIES DEPENDS "test-rule-dir-json")
set_tests_properties("fix_rules" PROPERTIES FIXTURES_REQUIRED "rule-dir-json")

if(PY_YAMLPATH)
if(PY_PYTEST)
Expand All @@ -157,7 +101,6 @@ if(PY_YAMLPATH)
NAME "ansible-file-removed-and-added"
COMMAND env "PYTHONPATH=$ENV{PYTHONPATH}" "${PYTHON_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/test_ansible_file_removed_and_added.py" --ansible_dir "${CMAKE_BINARY_DIR}/ansible"
)
set_tests_properties("fix_rules-sort_subkeys" PROPERTIES LABELS quick)
endif()

macro(mypy_test SCRIPT)
Expand Down

0 comments on commit a429d02

Please sign in to comment.