summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/IR/PassBuilderCallbacksTest.cpp
diff options
context:
space:
mode:
authorFedor Sergeev <fedor.sergeev@azul.com>2018-10-17 10:36:23 +0000
committerFedor Sergeev <fedor.sergeev@azul.com>2018-10-17 10:36:23 +0000
commitbd6b2138b94a47a9226ec1e69bf3be55a47fd1ef (patch)
treede58f3925965bf772e2becdad7ff066b456d90ed /llvm/unittests/IR/PassBuilderCallbacksTest.cpp
parent8a08412533536cf433097817e9f155a4ce68252b (diff)
downloadbcm5719-llvm-bd6b2138b94a47a9226ec1e69bf3be55a47fd1ef.tar.gz
bcm5719-llvm-bd6b2138b94a47a9226ec1e69bf3be55a47fd1ef.zip
[NewPM] teach -passes= to emit meaningful error messages
All the PassBuilder::parse interfaces now return descriptive StringError instead of a plain bool. It allows to make -passes/aa-pipeline parsing errors context-specific and thus less confusing. TODO: ideally we should also make suggestions for misspelled pass names, but that requires some extensions to PassBuilder. Reviewed By: philip.pfaffe, chandlerc Differential Revision: https://reviews.llvm.org/D53246 llvm-svn: 344685
Diffstat (limited to 'llvm/unittests/IR/PassBuilderCallbacksTest.cpp')
-rw-r--r--llvm/unittests/IR/PassBuilderCallbacksTest.cpp37
1 files changed, 19 insertions, 18 deletions
diff --git a/llvm/unittests/IR/PassBuilderCallbacksTest.cpp b/llvm/unittests/IR/PassBuilderCallbacksTest.cpp
index 97bbb81a6b0..20c47b045e7 100644
--- a/llvm/unittests/IR/PassBuilderCallbacksTest.cpp
+++ b/llvm/unittests/IR/PassBuilderCallbacksTest.cpp
@@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
+#include "llvm/Testing/Support/Error.h"
#include <functional>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
@@ -460,7 +461,7 @@ TEST_F(ModuleCallbacksTest, Passes) {
.WillOnce(Invoke(getAnalysisResult));
StringRef PipelineText = "test-transform";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
@@ -494,7 +495,7 @@ TEST_F(ModuleCallbacksTest, InstrumentedPasses) {
.InSequence(PISequence);
StringRef PipelineText = "test-transform";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
@@ -525,7 +526,7 @@ TEST_F(ModuleCallbacksTest, InstrumentedSkippedPasses) {
.Times(0);
StringRef PipelineText = "test-transform";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
@@ -537,7 +538,7 @@ TEST_F(FunctionCallbacksTest, Passes) {
.WillOnce(Invoke(getAnalysisResult));
StringRef PipelineText = "test-transform";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -571,7 +572,7 @@ TEST_F(FunctionCallbacksTest, InstrumentedPasses) {
.InSequence(PISequence);
StringRef PipelineText = "test-transform";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -604,7 +605,7 @@ TEST_F(FunctionCallbacksTest, InstrumentedSkippedPasses) {
.Times(0);
StringRef PipelineText = "test-transform";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -615,7 +616,7 @@ TEST_F(LoopCallbacksTest, Passes) {
.WillOnce(WithArgs<0, 1, 2>(Invoke(getAnalysisResult)));
StringRef PipelineText = "test-transform";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -650,7 +651,7 @@ TEST_F(LoopCallbacksTest, InstrumentedPasses) {
.InSequence(PISequence);
StringRef PipelineText = "test-transform";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -682,7 +683,7 @@ TEST_F(LoopCallbacksTest, InstrumentedSkippedPasses) {
.Times(0);
StringRef PipelineText = "test-transform";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -693,7 +694,7 @@ TEST_F(CGSCCCallbacksTest, Passes) {
.WillOnce(WithArgs<0, 1, 2>(Invoke(getAnalysisResult)));
StringRef PipelineText = "test-transform";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -727,7 +728,7 @@ TEST_F(CGSCCCallbacksTest, InstrumentedPasses) {
.InSequence(PISequence);
StringRef PipelineText = "test-transform";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -759,7 +760,7 @@ TEST_F(CGSCCCallbacksTest, InstrumentedSkippedPasses) {
.Times(0);
StringRef PipelineText = "test-transform";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -774,7 +775,7 @@ TEST_F(ModuleCallbacksTest, AnalysisUtilities) {
EXPECT_CALL(AnalysisHandle, invalidate(HasName("<string>"), _, _));
StringRef PipelineText = "require<test-analysis>,invalidate<test-analysis>";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -784,7 +785,7 @@ TEST_F(CGSCCCallbacksTest, PassUtilities) {
EXPECT_CALL(AnalysisHandle, invalidate(HasName("(foo)"), _, _));
StringRef PipelineText = "require<test-analysis>,invalidate<test-analysis>";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -794,7 +795,7 @@ TEST_F(FunctionCallbacksTest, AnalysisUtilities) {
EXPECT_CALL(AnalysisHandle, invalidate(HasName("foo"), _, _));
StringRef PipelineText = "require<test-analysis>,invalidate<test-analysis>";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -805,7 +806,7 @@ TEST_F(LoopCallbacksTest, PassUtilities) {
StringRef PipelineText = "require<test-analysis>,invalidate<test-analysis>";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
}
@@ -845,13 +846,13 @@ TEST_F(ModuleCallbacksTest, ParseTopLevelPipeline) {
StringRef PipelineText =
"another-pipeline(test-transform,invalidate<test-analysis>)";
- ASSERT_TRUE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Succeeded())
<< "Pipeline was: " << PipelineText;
PM.run(*M, AM);
/// Test the negative case
PipelineText = "another-pipeline(instcombine)";
- ASSERT_FALSE(PB.parsePassPipeline(PM, PipelineText, true))
+ ASSERT_THAT_ERROR(PB.parsePassPipeline(PM, PipelineText, true), Failed())
<< "Pipeline was: " << PipelineText;
}
} // end anonymous namespace
OpenPOWER on IntegriCloud