-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI: Add Docker-based compatibility tests, add tests to make quickcheck
#562
Conversation
450171a
to
0f00d5e
Compare
a5d40bf
to
2ae4cbb
Compare
2673d61
to
b49ea96
Compare
77980fc
to
8e1e2a6
Compare
make quickcheck
8e1e2a6
to
08cba24
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @hanno-becker - very nice step towards better compatibility. We should really eliminate the tests script in the near future.
I don't think it's a good idea to remove -O3
from the default flags as someone may benchmark mlkem-native with default flags and draw wrong conclusions about performance. I instead changed it to explicitlity setting -O0
for some of the CI jobs.
You may want to add that to more jobs.
Rest looks very good to me if the goal is to eliminatethe test script soon, but then we should really finish it soon.
08cba24
to
cadd396
Compare
8d9d43e
to
27526c5
Compare
O3 slows down CI runs, and is not needed except when we benchmark for performance. This commit explicitly sets -O0 for the compatibility and compiler tests to speed-up CI. This also adds an additional variable to pass to the Makefile called EXTRAFLAGS which can be used to overwrite default flags. Those will be appended to the CFLAGS after the default flags. Otherwise, the default optimization flags overwrite the custom flags. Signed-off-by: Hanno Becker <[email protected]> Signed-off-by: Matthias J. Kannwischer <[email protected]>
Signed-off-by: Hanno Becker <[email protected]>
The test script processes the output of test runs with two functions: An `actual_proc` and an `expect_proc`. The `actual_proc` is mostly preprocessing, while the `expect_proc` checks against an expected value. The does not seem to be a reason for this split. This commit conatenates `actual_proc` and `expect_proc` into a single output-checking function `check_proc`. Signed-off-by: Hanno Becker <[email protected]>
This commit adds a basic script META.sh to query the META.json. If jq is present, it's used for the query. Otherwise, some basic fiddling with cat, grep, cut, and tr is used. This is used to conduct a bash-based KAT test in `make quickcheck`, rather then running the test scripts, which already require a Python setup. Signed-off-by: Hanno Becker <[email protected]>
This enables double-checking in the CI logs whether the desired tests were run. Signed-off-by: Hanno Becker <[email protected]>
This will run slightly slower, but hopefully more stable as it is less likely exceeds the maximum request rate for EC2. Signed-off-by: Hanno Becker <[email protected]>
The ACVP client was originally introduced as a standalone script but later added to `tests`, imposing the test infrastructure's dependencies. This commit re-introduces the original standalone script and adds it to `make quickcheck`. The ACVP test within the test scripts remains for now, but should likely be reconciled. Signed-off-by: Hanno Becker <[email protected]>
CPPFLAGS was misnamed. This commit uses EXTRAFLAGS instead. Signed-off-by: Matthias J. Kannwischer <[email protected]>
27526c5
to
0a769d9
Compare
This PR adds Docker-based compatibility tests for various Ubuntu-20, Ubuntu-22, Debian, and Amazon Linux docker images; so far, AArch64 only.
A number of changes had to be made, esp. to the test scripts; see commits, paving the way for the removal of
tests
.