summaryrefslogtreecommitdiffstats
path: root/lld/unittests/DriverTests/GnuLdDriverTest.cpp
diff options
context:
space:
mode:
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