Skip to content

Conversation

bensimner
Copy link
Collaborator

This PR:
(1) made the Rocq command-line pass an exit code out, so one can programmatically detect failures
(2) added a make check-rocq top-level target that runs all the examples over the rocq thing
(3) make the CI init opam and install casemate-rocq into it and run that target, based on cerberus' CI.

@bensimner bensimner force-pushed the wip-rocq-ci branch 3 times, most recently from bab7ef5 to f459305 Compare April 17, 2025 11:20
runmsg("CHECK", test_name)

expected_status = expected_log.read_text().strip().splitlines()[-1]
expected_status = 121 if expected_status.startswith("!") else 0
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good for now, but maybe we can enhance the code later to check whether the error messages from the failing tests align with the expected errors.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally, we are going to end up with multiple implementations (in-kernel runtime check, out-of-kernel-but-still-C checker and the rocq-extracted-to-ocaml checker) and want some way to check correspondence between them.

Perhaps (not in this PR) we should give all the violations some error codes, like linters do, e.g.:
E01 - BBM Vioaltion
E02 - Race on PTE
etc

Then we can check that it fails with the same code.

@bensimner bensimner merged commit a0efe98 into main Apr 23, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants