-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
) This PR implements the main part of substrait-io#127, the RFC proposing to decouple CI failure from spec adherence. Previously, the tests would record the desired result (Substrait plans, execution results, etc.) in a snapshot (using `pytest-snapshot`) and make the test fail if the system under test produced a different result. In this PR, the result of that comparison is now treated as the test "outcome", which, itself, is snapshot and only a change in test *outcome* will now lead to CI failure. This allows to keep CI green at all times even though some systems do not have perfect conformance to the Substrait spec. CI only fails if unexpected things happen: bugs are introduced in the test infrastructure or systems that were previously conformant in a test are now not conformant anymore or vice versa (for example, after upgrading that system to a new version). Above logic is implemented by wrapping the "inner"/"first" level of snapshots into a function, `check_match`, that, instead of raising an exception if the snapshots don't match, returns a Boolean indicating if the snapshots match. That Boolean is then the outcome of the test, which is snapshot using the normal snapshotting mechanism (which leads to test failure if the snapshots differ). Also, exceptions produced by producers and consumers due to unsupported plan features are now caught by the test logic and recorded as test "outcome". This way, if a previously unsupported feature is supported by a new version of system under test after an upgrade, the outcome of the test changes from "failure" to "pass" and needs to be changed explicitly by changing the snapshot. Signed-off-by: Ingo Müller <[email protected]>
- Loading branch information
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.