llvm-project/clang/test/Analysis/scan-build/silence-core-checkers.test
Matthias Braun 2868e26d0a
Use cmake to find perl executable (#91275)
`clang/tools/scan-build` is implemented in `perl`. However given `perl`
is not mentioned as a required dependency in `GettingStarted.rst` we
should make this optional.

This adds a `find_package(Perl)` check to cmake and disables the
`scan-build` tests when no perl executable is found.

Ideally we would also check if dependent perl modules like `Hash::Util`
are present on the system, but I don't see any pre-existing cmake macros
to easily test this. So for now I go with a plain check for the `perl`
package, at least this allows to use `cmake
-DCMAKE_DISABLE_FIND_PACKAGE_Perl=ON` to manually disable `perl` and the
tests.
2024-05-08 07:35:47 -07:00

28 lines
1.1 KiB
Plaintext

RUN: rm -rf %t.output_dir && mkdir %t.output_dir
RUN: %scan-build -o %t.output_dir \
RUN: %clang -S %S/Inputs/null_dereference_and_division_by_zero.c \
RUN: | FileCheck %s -check-prefix CHECK-TWO-BUGS
RUN: rm -rf %t.output_dir && mkdir %t.output_dir
RUN: %scan-build -o %t.output_dir \
RUN: -disable-checker core.DivideZero \
RUN: %clang -S %S/Inputs/null_dereference_and_division_by_zero.c \
RUN: | FileCheck %s -check-prefix CHECK-ONE-BUG
RUN: rm -rf %t.output_dir && mkdir %t.output_dir
RUN: %scan-build -o %t.output_dir \
RUN: -disable-checker core.NullDereference \
RUN: %clang -S %S/Inputs/null_dereference_and_division_by_zero.c \
RUN: | FileCheck %s -check-prefix CHECK-ONE-BUG
RUN: rm -rf %t.output_dir && mkdir %t.output_dir
RUN: %scan-build -o %t.output_dir \
RUN: -disable-checker core.NullDereference \
RUN: -disable-checker core.DivideZero \
RUN: %clang -S %S/Inputs/null_dereference_and_division_by_zero.c \
RUN: | FileCheck %s -check-prefix CHECK-NO-BUGS
CHECK-NO-BUGS: scan-build: No bugs found.
CHECK-ONE-BUG: scan-build: 1 bug found.
CHECK-TWO-BUGS: scan-build: 2 bugs found.