fix(tester): only regenerate expected test outputs when necessary #699
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
For test stages that use a model JSON, only regenerate the expected test outputs if the test stage fails.
BACKGROUND
In 8636432 (feat!: add parent symbol tables (#680), 2025-02-17), we added an id field to symbol-tables, allowing the reconstruction of pointers during de-serialisation.
These ids are set by a global variable; therefore, they tend to change from run to run of the tester. However, they are ignored in the implementation of
Eq
for Model/SubModel, so this does not affect test correctness.After this change, when running the test suite with ACCEPT=true, new expected output files would be created for all test models containing different ids.
This caused our git diffs to always contain changes to the ids in every single test case, cluttering them up.
As id changes do not cause tests to fail, this commit means that an id change will not cause a new expected test output file to be generated.