Skip to content

Commit 4e71976

Browse files
authored
[NFC][clang] Precommit test with confusing behavior of suppression list (#162192)
I want to change behavior, but none of existing tests sees the difference.
1 parent fd73bdd commit 4e71976

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

clang/unittests/Basic/DiagnosticTest.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,42 @@ TEST_F(SuppressionMappingTest, LongestMatchWins) {
314314
locForFile("clang/lib/Sema/foo.h")));
315315
}
316316

317+
TEST_F(SuppressionMappingTest, LongShortMatch) {
318+
llvm::StringLiteral SuppressionMappingFile = R"(
319+
[unused]
320+
src:*test/*
321+
src:*lld/*=emit)";
322+
Diags.getDiagnosticOptions().DiagnosticSuppressionMappingsFile = "foo.txt";
323+
FS->addFile("foo.txt", /*ModificationTime=*/{},
324+
llvm::MemoryBuffer::getMemBuffer(SuppressionMappingFile));
325+
clang::ProcessWarningOptions(Diags, Diags.getDiagnosticOptions(), *FS);
326+
EXPECT_THAT(diags(), IsEmpty());
327+
328+
EXPECT_TRUE(Diags.isSuppressedViaMapping(diag::warn_unused_function,
329+
locForFile("test/t1.cpp")));
330+
331+
// FIXME: This is confusing.
332+
EXPECT_TRUE(Diags.isSuppressedViaMapping(diag::warn_unused_function,
333+
locForFile("lld/test/t2.cpp")));
334+
}
335+
336+
TEST_F(SuppressionMappingTest, ShortLongMatch) {
337+
llvm::StringLiteral SuppressionMappingFile = R"(
338+
[unused]
339+
src:*lld/*=emit
340+
src:*test/*)";
341+
Diags.getDiagnosticOptions().DiagnosticSuppressionMappingsFile = "foo.txt";
342+
FS->addFile("foo.txt", /*ModificationTime=*/{},
343+
llvm::MemoryBuffer::getMemBuffer(SuppressionMappingFile));
344+
clang::ProcessWarningOptions(Diags, Diags.getDiagnosticOptions(), *FS);
345+
EXPECT_THAT(diags(), IsEmpty());
346+
347+
EXPECT_TRUE(Diags.isSuppressedViaMapping(diag::warn_unused_function,
348+
locForFile("test/t1.cpp")));
349+
EXPECT_TRUE(Diags.isSuppressedViaMapping(diag::warn_unused_function,
350+
locForFile("lld/test/t2.cpp")));
351+
}
352+
317353
TEST_F(SuppressionMappingTest, IsIgnored) {
318354
llvm::StringLiteral SuppressionMappingFile = R"(
319355
[unused]

0 commit comments

Comments
 (0)