diff options
| -rw-r--r-- | Documentation/test-suite | 4 | ||||
| -rwxr-xr-x | validation/test-suite | 12 |
2 files changed, 16 insertions, 0 deletions
diff --git a/Documentation/test-suite b/Documentation/test-suite index 626bc3fe..bf4518a2 100644 --- a/Documentation/test-suite +++ b/Documentation/test-suite @@ -27,6 +27,10 @@ check-arch-only: <arch[|...]> Ignore the test if the current architecture (as returned by 'uname -m') match or not one of the archs given in the pattern. +check-assert: <condition> + Ignore the test if the given condition is false when evaluated as a + static assertion (_Static_assert). + check-cpp-if: <condition> Ignore the test if the given condition is false when evaluated by sparse's pre-processor. diff --git a/validation/test-suite b/validation/test-suite index 6c6d34b2..04607a3e 100755 --- a/validation/test-suite +++ b/validation/test-suite @@ -79,6 +79,7 @@ get_tag_value() check_output_pattern=0 check_arch_ignore="" check_arch_only="" + check_assert="" check_cpp_if="" lines=$(grep 'check-[a-z-]*' $1 | \ @@ -103,6 +104,7 @@ get_tag_value() check_arch_ignore="$val" ;; check-arch-only:) arch=$(uname -m) check_arch_only="$val" ;; + check-assert:) check_assert="$val" ;; check-cpp-if:) check_cpp_if="$val" ;; check-description:) ;; # ignore @@ -303,6 +305,16 @@ do_test() return 3 fi fi + if [ "$check_assert" != "" ]; then + res=$(../sparse - 2>&1 >/dev/null <<- EOF + _Static_assert($check_assert, "$check_assert"); + EOF + ) + if [ "$res" != "" ]; then + disable "$test_name" "$file" + return 3 + fi + fi if [ "$check_cpp_if" != "" ]; then res=$(../sparse -E - 2>/dev/null <<- EOF #if !($check_cpp_if) |
