mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-07-30 22:43:08 +03:00
Test CT asm under valgrind
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
This commit is contained in:
committed by
Dave Rodgman
parent
822c9c7d4e
commit
246210e3c4
@ -48,8 +48,14 @@
|
|||||||
#pragma GCC diagnostic ignored "-Wredundant-decls"
|
#pragma GCC diagnostic ignored "-Wredundant-decls"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Disable asm under Memsan because it confuses Memsan and generates false errors */
|
/* Disable asm under Memsan because it confuses Memsan and generates false errors.
|
||||||
#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN)
|
*
|
||||||
|
* We also disable under Valgrind by default, because it's more useful
|
||||||
|
* for Valgrind to test the plain C implementation. MBEDTLS_TEST_CONSTANT_FLOW_ASM //no-check-names
|
||||||
|
* may be set to permit building asm under Valgrind.
|
||||||
|
*/
|
||||||
|
#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) || \
|
||||||
|
(defined(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND) && !defined(MBEDTLS_TEST_CONSTANT_FLOW_ASM)) //no-check-names
|
||||||
#define MBEDTLS_CT_NO_ASM
|
#define MBEDTLS_CT_NO_ASM
|
||||||
#elif defined(__has_feature)
|
#elif defined(__has_feature)
|
||||||
#if __has_feature(memory_sanitizer)
|
#if __has_feature(memory_sanitizer)
|
||||||
|
@ -1892,6 +1892,16 @@ skip_suites_without_constant_flow () {
|
|||||||
export SKIP_TEST_SUITES
|
export SKIP_TEST_SUITES
|
||||||
}
|
}
|
||||||
|
|
||||||
|
skip_all_except_given_suite () {
|
||||||
|
# Skip all but the given test suite
|
||||||
|
SKIP_TEST_SUITES=$(
|
||||||
|
ls -1 tests/suites/test_suite_*.function |
|
||||||
|
grep -v $1.function |
|
||||||
|
sed 's/tests.suites.test_suite_//; s/\.function$//' |
|
||||||
|
tr '\n' ,)
|
||||||
|
export SKIP_TEST_SUITES
|
||||||
|
}
|
||||||
|
|
||||||
component_test_memsan_constant_flow () {
|
component_test_memsan_constant_flow () {
|
||||||
# This tests both (1) accesses to undefined memory, and (2) branches or
|
# This tests both (1) accesses to undefined memory, and (2) branches or
|
||||||
# memory access depending on secret values. To distinguish between those:
|
# memory access depending on secret values. To distinguish between those:
|
||||||
@ -1951,6 +1961,16 @@ component_test_valgrind_constant_flow () {
|
|||||||
# details are left in Testing/<date>/DynamicAnalysis.xml
|
# details are left in Testing/<date>/DynamicAnalysis.xml
|
||||||
msg "test: some suites (full minus MBEDTLS_USE_PSA_CRYPTO, valgrind + constant flow)"
|
msg "test: some suites (full minus MBEDTLS_USE_PSA_CRYPTO, valgrind + constant flow)"
|
||||||
make memcheck
|
make memcheck
|
||||||
|
|
||||||
|
# Test asm path in constant time module - by default, it will test the plain C
|
||||||
|
# path under Valgrind or Memsan. Running only the constant_time tests is fast (<1s)
|
||||||
|
msg "test: valgrind asm constant_time"
|
||||||
|
scripts/config.py --force set MBEDTLS_TEST_CONSTANT_FLOW_ASM
|
||||||
|
skip_all_except_given_suite test_suite_constant_time
|
||||||
|
cmake -D CMAKE_BUILD_TYPE:String=Release .
|
||||||
|
make clean
|
||||||
|
make
|
||||||
|
make memcheck
|
||||||
}
|
}
|
||||||
|
|
||||||
component_test_valgrind_constant_flow_psa () {
|
component_test_valgrind_constant_flow_psa () {
|
||||||
|
Reference in New Issue
Block a user