Files
carbon-lang/toolchain/diagnostics/mocks.h
T
Jon Ross-PerkinsandRichard Smith 0d618b1278 Tidy up lint issues. (#3429)
These are manual fixes; mostly from clang-tidy, some from clangd (which
notes unused includes).

In typed_insts, adding inlline due to misc-definitions-in-headers. Per
discussion, clang-tidy is wrong, but inline silences it.

For parameter name skew in definition versus declaration, I'm just using
the name from the definition.

---------

Co-authored-by: Richard Smith <richard@metafoo.co.uk>
2023-11-29 20:41:53 +00:00

60 lines
2.1 KiB
C++

// Part of the Carbon Language 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 CARBON_TOOLCHAIN_DIAGNOSTICS_MOCKS_H_
#define CARBON_TOOLCHAIN_DIAGNOSTICS_MOCKS_H_
#include <gmock/gmock.h>
#include "toolchain/diagnostics/diagnostic_emitter.h"
namespace Carbon::Testing {
class MockDiagnosticConsumer : public DiagnosticConsumer {
public:
MOCK_METHOD(void, HandleDiagnostic, (Diagnostic diagnostic), (override));
};
// NOLINTNEXTLINE(modernize-use-trailing-return-type): From the macro.
MATCHER_P(IsDiagnosticMessage, matcher, "") {
const Diagnostic& diag = arg;
return testing::ExplainMatchResult(
matcher, diag.message.format_fn(diag.message), result_listener);
}
inline auto IsDiagnostic(testing::Matcher<DiagnosticKind> kind,
testing::Matcher<DiagnosticLevel> level,
testing::Matcher<int> line_number,
testing::Matcher<int> column_number,
testing::Matcher<std::string> message) {
return testing::AllOf(
testing::Field("level", &Diagnostic::level, level),
testing::Field(
"message", &Diagnostic::message,
testing::AllOf(
testing::Field("kind", &DiagnosticMessage::kind, kind),
testing::Field(
&DiagnosticMessage::location,
testing::AllOf(
testing::Field("line_number",
&DiagnosticLocation::line_number,
line_number),
testing::Field("column_number",
&DiagnosticLocation::column_number,
column_number))))),
IsDiagnosticMessage(message));
}
} // namespace Carbon::Testing
namespace Carbon {
// Printing helpers for tests.
void PrintTo(const Diagnostic& diagnostic, std::ostream* os);
void PrintTo(DiagnosticLevel level, std::ostream* os);
} // namespace Carbon
#endif // CARBON_TOOLCHAIN_DIAGNOSTICS_MOCKS_H_