Provide an easy way for test runners to run all tests, even those guarded by an erratum. Setting ERRATA_FORCE forces errata() and errata_relaxed() to always return true. ./run_tests.sh -a is also updated to set it. Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx> Reviewed-by: Laurent Vivier <lvivier@xxxxxxxxxx> --- lib/errata.h | 21 +++++++++++++++++++-- run_tests.sh | 2 ++ 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/errata.h b/lib/errata.h index 7b089c2578ad..f3ebca2d8a6c 100644 --- a/lib/errata.h +++ b/lib/errata.h @@ -13,16 +13,33 @@ #define _ERRATA_RELAXED(erratum) errata_relaxed("ERRATA_" # erratum) #define ERRATA_RELAXED(erratum) _ERRATA_RELAXED(erratum) +static inline bool errata_force(void) +{ + char *s = getenv("ERRATA_FORCE"); + + return s && (*s == '1' || *s == 'y' || *s == 'Y'); +} + static inline bool errata(const char *erratum) { - char *s = getenv(erratum); + char *s; + + if (errata_force()) + return true; + + s = getenv(erratum); return s && (*s == '1' || *s == 'y' || *s == 'Y'); } static inline bool errata_relaxed(const char *erratum) { - char *s = getenv(erratum); + char *s; + + if (errata_force()) + return true; + + s = getenv(erratum); return !(s && (*s == '0' || *s == 'n' || *s == 'N')); } diff --git a/run_tests.sh b/run_tests.sh index c7972cbd198b..aa2e65f622ce 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -19,6 +19,7 @@ Usage: $0 [-h] [-v] [-a] [-g group] [-j NUM-TASKS] -h: Output this help text -v: Enables verbose mode -a: Run all tests, including those flagged as 'nodefault' + and those guarded by errata. -g: Only execute tests in the given group -j: Execute tests in parallel @@ -35,6 +36,7 @@ while getopts "ag:hj:v" opt; do case $opt in a) run_all_tests="yes" + export ERRATA_FORCE=y ;; g) only_group=$OPTARG -- 2.9.4