-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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
Check that all test cases are executed at least once #2691
Comments
#3458 adds a script that reports the test cases that are not executed at least once. They are (on
See a subsequent comment for analysis. The complete |
Analysis of the cases reported as not executedDeliberately skipped SSL testsSome test cases are prefixed by All of these test cases trigger a bug in OpenSSL that is fixed in 1.0.2q, 1.1.1a and 3.0.0 (upcoming). On our CI we currently only run
SSL tests specifically for valgrindWe don't run
SSL tests with a double quote in the descriptionIn
Parametrized SSL testsSome test cases in
RC4These test cases check that a ciphersuite is disabled. But there is a generic mechanism that skips tests that use a disabled ciphersuite (
Mistakes in dependencies
Fixed in #3463.
PSA entropy injectionThis feature was developed for the needs of Pelion. In production, it requires additional functions, and we don't have a mock of these functions for testing. The feature needs a redesign, but the functions aren't very difficult to mock so we should do this.
PSA crypto metadataThe PSA crypto metadata test cases only run if the corresponding algorithm might be enabled. The reason is that the macros that calculate the metadata might not give correct results for algorithms that are enabled. There are test cases for algorithms that are not implemented. Arguably either these test cases should be removed (if the metadata isn't correct) or they should be enabled in all configurations (if the metadata is correct). Fixed in #3463 by removing the test cases.
TLS without SHA-256
|
I haven't done any analysis for LTS branches (2.16, 2.7) because they don't have the outcome file machinery, so we don't have a way to collect the data. I think that's acceptable: if we backport any applicable fix from development that affects test coverage, LTS branches shouldn't lack coverage. |
Note that in 3.0, many test cases in |
All sub-issues have been closed and the enforcement mode was switched on in #9593 . |
We have test cases that are never executed on our CI because they depend on a particular configuration that we don't test. This is a gap in test coverage: if we wrote those tests, it's presumably because they're useful for something.
We should check that when we run
all.sh
, every test case in every.data
file is executed at least once, and every test case in `ssl-opt.sh is executed at least once.For example, I think (by visual inspection) that
entropy_nv_seed
intest_suite_entropy
has not been executed on CI for a long time, since it depends onMBEDTLS_PLATFORM_NV_SEED_ALT
but we never set that on CI until #2684 (it wasn't set byfull
). And it also depends onMBEDTLS_ENTROPY_SHA512_ACCUMULATOR
so before #2684 you'd have to setMBEDTLS_PLATFORM_NV_SEED_ALT
and not setMBEDTLS_ENTROPY_FORCE_SHA256
.Goal of this issue: if a CI job succeeds, it guarantees that all test cases have been executed, except for a curated whitelist of test cases that may be skipped.
Prerequisites:
Remaining tasks for this issue:
analyze_outcomes.py
in a mode where it reports errors if a test case is not executed.The text was updated successfully, but these errors were encountered: