Skip to content

Manifezt: handle changes in integration tests

Romain requested to merge nomadic-labs/tezos:romain-manifezt-4 into master

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
Edited by Romain

Merge request reports