| // Part of the Crubit project, under the Apache License v2.0 with LLVM | |
| // Exceptions. See /LICENSE for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| #ifndef CRUBIT_NULLABILITY_TEST_CHECK_DIAGNOSTICS_H_ | |
| #define CRUBIT_NULLABILITY_TEST_CHECK_DIAGNOSTICS_H_ | |
| #include "nullability/pragma.h" | |
| #include "clang/AST/ASTContext.h" | |
| #include "clang/Testing/CommandLineArgs.h" | |
| #include "llvm/ADT/StringRef.h" | |
| #include "llvm/Testing/Annotations/Annotations.h" | |
| namespace clang { | |
| namespace tidy { | |
| namespace nullability { | |
| /// Runs nullability verification on `SourceCode` and returns whether | |
| /// diagnostics are produced on those lines marked in the source code with | |
| /// `llvm::Annotations` style annotations (and no other lines). | |
| /// TODO(mboehme): So far, we only check the locations of the diagnostics; it | |
| /// would be desirable to check their actual content too. | |
| bool checkDiagnostics(llvm::StringRef SourceCode); | |
| /// Same as `checkDiagnostics`, but allows for untracked errors. | |
| bool checkDiagnosticsHasUntracked(llvm::StringRef SourceCode); | |
| bool checkDiagnosticsWithMin(llvm::StringRef SourceCode, TestLanguage Min); | |
| bool checkDiagnostics(ASTContext& AST, llvm::Annotations AnnotatedCode, | |
| const NullabilityPragmas& Pragmas = NullabilityPragmas(), | |
| bool AllowUntracked = false); | |
| } // namespace nullability | |
| } // namespace tidy | |
| } // namespace clang | |
| #endif // CRUBIT_NULLABILITY_TEST_CHECK_DIAGNOSTICS_H_ |