summaryrefslogtreecommitdiffstats
path: root/lld/unittests/DriverTests/GnuLdDriverTest.cpp
diff options
context:
space:
mode:
authorNick Kledzik <kledzik@apple.com>2013-07-16 18:45:57 +0000
committerNick Kledzik <kledzik@apple.com>2013-07-16 18:45:57 +0000
commit2a709eaa83e051e69e3722f9e4b21fae85e05ab6 (patch)
tree3f5e34009571da2273f3b9c4f5279584770ddb09 /lld/unittests/DriverTests/GnuLdDriverTest.cpp
parentcadc611e93103426cd7cab13601c4d2655f8d925 (diff)
downloadbcm5719-llvm-2a709eaa83e051e69e3722f9e4b21fae85e05ab6.tar.gz
bcm5719-llvm-2a709eaa83e051e69e3722f9e4b21fae85e05ab6.zip
Fix Driver tests to check return value of parse(), simplify subclassing, and remove unneeded instance variables
llvm-svn: 186440
Diffstat (limited to 'lld/unittests/DriverTests/GnuLdDriverTest.cpp')
-rw-r--r--lld/unittests/DriverTests/GnuLdDriverTest.cpp40
1 files changed, 22 insertions, 18 deletions
diff --git a/lld/unittests/DriverTests/GnuLdDriverTest.cpp b/lld/unittests/DriverTests/GnuLdDriverTest.cpp
index 87a25307d38..00cfa9558c1 100644
--- a/lld/unittests/DriverTests/GnuLdDriverTest.cpp
+++ b/lld/unittests/DriverTests/GnuLdDriverTest.cpp
@@ -21,32 +21,36 @@ using namespace lld;
namespace {
-class GnuLdParserTest : public ParserTest<GnuLdDriver, ELFTargetInfo> {
+class GnuLdParserTest : public ParserTest<
+ GnuLdDriver, std::unique_ptr<ELFTargetInfo> > {
protected:
- virtual ELFTargetInfo* doParse(int argc, const char **argv,
- raw_ostream &diag) {
- std::unique_ptr<ELFTargetInfo> info;
- GnuLdDriver::parse(argc, argv, info, diag);
- return info.release();
+ virtual const TargetInfo *targetInfo() {
+ return _info.get();
}
};
+TEST_F(GnuLdParserTest, Empty) {
+ EXPECT_TRUE(parse("ld", nullptr));
+ EXPECT_EQ(targetInfo(), nullptr);
+ EXPECT_EQ("No input files\n", errorMessage());
+}
+
TEST_F(GnuLdParserTest, Basic) {
- parse("ld", "infile.o", nullptr);
- ASSERT_TRUE(!!info);
- EXPECT_EQ("a.out", info->outputPath());
- EXPECT_EQ(1, (int)inputFiles.size());
- EXPECT_EQ("infile.o", inputFiles[0]);
- EXPECT_FALSE(info->outputYAML());
+ EXPECT_FALSE(parse("ld", "infile.o", nullptr));
+ EXPECT_NE(targetInfo(), nullptr);
+ EXPECT_EQ("a.out", targetInfo()->outputPath());
+ EXPECT_EQ(1, inputFileCount());
+ EXPECT_EQ("infile.o", inputFile(0));
+ EXPECT_FALSE(_info->outputYAML());
}
TEST_F(GnuLdParserTest, ManyOptions) {
- parse("ld", "-entry", "_start", "-o", "outfile",
- "-emit-yaml", "infile.o", nullptr);
- ASSERT_TRUE(!!info);
- EXPECT_EQ("outfile", info->outputPath());
- EXPECT_EQ("_start", info->entrySymbolName());
- EXPECT_TRUE(info->outputYAML());
+ EXPECT_FALSE(parse("ld", "-entry", "_start", "-o", "outfile",
+ "-emit-yaml", "infile.o", nullptr));
+ EXPECT_NE(targetInfo(), nullptr);
+ EXPECT_EQ("outfile", targetInfo()->outputPath());
+ EXPECT_EQ("_start", targetInfo()->entrySymbolName());
+ EXPECT_TRUE(_info->outputYAML());
}
} // end anonymous namespace
OpenPOWER on IntegriCloud