Manifezt: handle changes in integration tests
What
This MR makes sure that if a file changes in tezt/tests
, it is selected by Manifezt to run.
Why
If a test changes, it may become broken. So it needs to be run.
How
tezt/tests/main.exe
has a special status in the manifest. It is "the set of all tests". This includes tests from other directories (other libraries), but it also includes tests that are directly defined in tezt/tests/main.exe
. Currently, Manifezt correctly selects all tests that change except those in tezt/tests
. For instance, a change in src/lib_store/unix/test/test_block_store.ml
causes all tests from src/lib_store/unix/test
to be selected; but a change in tezt/tests/basic.ml
causes no additional test to be selected.
To fix this, we add an ad-hoc rule: if a file in the path of the main Tezt executable (i.e. tezt/tests
) changes, it is added in the resulting selection.
Manually testing the MR
Compile the manifest:
make -C manifest
Then run some queries:
# already works on master
manifest/manifest --manifezt src/lib_store/unix/test/test_block_store.ml
# returns false on master, correctly selects basic.ml with this MR
manifest/manifest --manifezt tezt/tests/basic.ml
Checklist
-
Document the interface of any function added or modified (see the coding guidelines) -
Document any change to the user interface, including configuration parameters (see node configuration) -
Provide automatic testing (see the testing guide). -
For new features and bug fixes, add an item in the appropriate changelog ( docs/protocols/alpha.rst
for the protocol and the environment,CHANGES.rst
at the root of the repository for everything else). -
Select suitable reviewers using the Reviewers
field below. -
Select as Assignee
the next person who should take action on that MR