summaryrefslogtreecommitdiffstats
path: root/lld/unittests
diff options
context:
space:
mode:
Diffstat (limited to 'lld/unittests')
-rw-r--r--lld/unittests/DriverTests/DarwinLdDriverTest.cpp70
-rw-r--r--lld/unittests/DriverTests/GnuLdDriverTest.cpp8
-rw-r--r--lld/unittests/DriverTests/WinLinkDriverTest.cpp145
3 files changed, 111 insertions, 112 deletions
diff --git a/lld/unittests/DriverTests/DarwinLdDriverTest.cpp b/lld/unittests/DriverTests/DarwinLdDriverTest.cpp
index 494c877b4a5..1af1a34fad5 100644
--- a/lld/unittests/DriverTests/DarwinLdDriverTest.cpp
+++ b/lld/unittests/DriverTests/DarwinLdDriverTest.cpp
@@ -29,7 +29,7 @@ protected:
};
TEST_F(DarwinLdParserTest, Basic) {
- EXPECT_FALSE(parse("ld", "foo.o", "bar.o", nullptr));
+ EXPECT_TRUE(parse("ld", "foo.o", "bar.o", nullptr));
EXPECT_FALSE(_context.allowRemainingUndefines());
EXPECT_FALSE(_context.deadStrip());
EXPECT_EQ(2, inputFileCount());
@@ -38,187 +38,187 @@ TEST_F(DarwinLdParserTest, Basic) {
}
TEST_F(DarwinLdParserTest, Output) {
- EXPECT_FALSE(parse("ld", "-o", "my.out", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-o", "my.out", "foo.o", nullptr));
EXPECT_EQ("my.out", _context.outputPath());
}
TEST_F(DarwinLdParserTest, Dylib) {
- EXPECT_FALSE(parse("ld", "-dylib", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-dylib", "foo.o", nullptr));
EXPECT_EQ(mach_o::MH_DYLIB, _context.outputFileType());
}
TEST_F(DarwinLdParserTest, Relocatable) {
- EXPECT_FALSE(parse("ld", "-r", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-r", "foo.o", nullptr));
EXPECT_EQ(mach_o::MH_OBJECT, _context.outputFileType());
}
TEST_F(DarwinLdParserTest, Bundle) {
- EXPECT_FALSE(parse("ld", "-bundle", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-bundle", "foo.o", nullptr));
EXPECT_EQ(mach_o::MH_BUNDLE, _context.outputFileType());
}
TEST_F(DarwinLdParserTest, Preload) {
- EXPECT_FALSE(parse("ld", "-preload", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-preload", "foo.o", nullptr));
EXPECT_EQ(mach_o::MH_PRELOAD, _context.outputFileType());
}
TEST_F(DarwinLdParserTest, Static) {
- EXPECT_FALSE(parse("ld", "-static", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-static", "foo.o", nullptr));
EXPECT_EQ(mach_o::MH_EXECUTE, _context.outputFileType());
}
TEST_F(DarwinLdParserTest, Entry) {
- EXPECT_FALSE(parse("ld", "-e", "entryFunc", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-e", "entryFunc", "foo.o", nullptr));
EXPECT_EQ("entryFunc", _context.entrySymbolName());
}
TEST_F(DarwinLdParserTest, OutputPath) {
- EXPECT_FALSE(parse("ld", "-o", "foo", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-o", "foo", "foo.o", nullptr));
EXPECT_EQ("foo", _context.outputPath());
}
TEST_F(DarwinLdParserTest, DeadStrip) {
- EXPECT_FALSE(parse("ld", "-dead_strip", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-dead_strip", "foo.o", nullptr));
EXPECT_TRUE(_context.deadStrip());
}
TEST_F(DarwinLdParserTest, DeadStripRootsExe) {
- EXPECT_FALSE(parse("ld", "-dead_strip", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-dead_strip", "foo.o", nullptr));
EXPECT_FALSE(_context.globalsAreDeadStripRoots());
}
TEST_F(DarwinLdParserTest, DeadStripRootsDylib) {
- EXPECT_FALSE(parse("ld", "-dylib", "-dead_strip", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-dylib", "-dead_strip", "foo.o", nullptr));
EXPECT_TRUE(_context.globalsAreDeadStripRoots());
}
TEST_F(DarwinLdParserTest, Arch) {
- EXPECT_FALSE(parse("ld", "-arch", "x86_64", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-arch", "x86_64", "foo.o", nullptr));
EXPECT_EQ(MachOLinkingContext::arch_x86_64, _context.arch());
EXPECT_EQ(mach_o::CPU_TYPE_X86_64, _context.getCPUType());
EXPECT_EQ(mach_o::CPU_SUBTYPE_X86_64_ALL, _context.getCPUSubType());
}
TEST_F(DarwinLdParserTest, Arch_x86) {
- EXPECT_FALSE(parse("ld", "-arch", "i386", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-arch", "i386", "foo.o", nullptr));
EXPECT_EQ(MachOLinkingContext::arch_x86, _context.arch());
EXPECT_EQ(mach_o::CPU_TYPE_I386, _context.getCPUType());
EXPECT_EQ(mach_o::CPU_SUBTYPE_X86_ALL, _context.getCPUSubType());
}
TEST_F(DarwinLdParserTest, Arch_armv6) {
- EXPECT_FALSE(parse("ld", "-arch", "armv6", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-arch", "armv6", "foo.o", nullptr));
EXPECT_EQ(MachOLinkingContext::arch_armv6, _context.arch());
EXPECT_EQ(mach_o::CPU_TYPE_ARM, _context.getCPUType());
EXPECT_EQ(mach_o::CPU_SUBTYPE_ARM_V6, _context.getCPUSubType());
}
TEST_F(DarwinLdParserTest, Arch_armv7) {
- EXPECT_FALSE(parse("ld", "-arch", "armv7", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-arch", "armv7", "foo.o", nullptr));
EXPECT_EQ(MachOLinkingContext::arch_armv7, _context.arch());
EXPECT_EQ(mach_o::CPU_TYPE_ARM, _context.getCPUType());
EXPECT_EQ(mach_o::CPU_SUBTYPE_ARM_V7, _context.getCPUSubType());
}
TEST_F(DarwinLdParserTest, Arch_armv7s) {
- EXPECT_FALSE(parse("ld", "-arch", "armv7s", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-arch", "armv7s", "foo.o", nullptr));
EXPECT_EQ(MachOLinkingContext::arch_armv7s, _context.arch());
EXPECT_EQ(mach_o::CPU_TYPE_ARM, _context.getCPUType());
EXPECT_EQ(mach_o::CPU_SUBTYPE_ARM_V7S, _context.getCPUSubType());
}
TEST_F(DarwinLdParserTest, MinMacOSX10_7) {
- EXPECT_FALSE(parse("ld", "-macosx_version_min", "10.7", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-macosx_version_min", "10.7", "foo.o", nullptr));
EXPECT_EQ(MachOLinkingContext::OS::macOSX, _context.os());
EXPECT_TRUE(_context.minOS("10.7", ""));
EXPECT_FALSE(_context.minOS("10.8", ""));
}
TEST_F(DarwinLdParserTest, MinMacOSX10_8) {
- EXPECT_FALSE(parse("ld", "-macosx_version_min", "10.8.3", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-macosx_version_min", "10.8.3", "foo.o", nullptr));
EXPECT_EQ(MachOLinkingContext::OS::macOSX, _context.os());
EXPECT_TRUE(_context.minOS("10.7", ""));
EXPECT_TRUE(_context.minOS("10.8", ""));
}
TEST_F(DarwinLdParserTest, iOS5) {
- EXPECT_FALSE(parse("ld", "-ios_version_min", "5.0", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-ios_version_min", "5.0", "foo.o", nullptr));
EXPECT_EQ(MachOLinkingContext::OS::iOS, _context.os());
EXPECT_TRUE(_context.minOS("", "5.0"));
EXPECT_FALSE(_context.minOS("", "6.0"));
}
TEST_F(DarwinLdParserTest, iOS6) {
- EXPECT_FALSE(parse("ld", "-ios_version_min", "6.0", "foo.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-ios_version_min", "6.0", "foo.o", nullptr));
EXPECT_EQ(MachOLinkingContext::OS::iOS, _context.os());
EXPECT_TRUE(_context.minOS("", "5.0"));
EXPECT_TRUE(_context.minOS("", "6.0"));
}
TEST_F(DarwinLdParserTest, iOS_Simulator5) {
- EXPECT_FALSE(parse("ld", "-ios_simulator_version_min", "5.0", "a.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-ios_simulator_version_min", "5.0", "a.o", nullptr));
EXPECT_EQ(MachOLinkingContext::OS::iOS_simulator, _context.os());
EXPECT_TRUE(_context.minOS("", "5.0"));
EXPECT_FALSE(_context.minOS("", "6.0"));
}
TEST_F(DarwinLdParserTest, iOS_Simulator6) {
- EXPECT_FALSE(parse("ld", "-ios_simulator_version_min", "6.0", "a.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-ios_simulator_version_min", "6.0", "a.o", nullptr));
EXPECT_EQ(MachOLinkingContext::OS::iOS_simulator, _context.os());
EXPECT_TRUE(_context.minOS("", "5.0"));
EXPECT_TRUE(_context.minOS("", "6.0"));
}
TEST_F(DarwinLdParserTest, compatibilityVersion) {
- EXPECT_FALSE(
+ EXPECT_TRUE(
parse("ld", "-dylib", "-compatibility_version", "1.2.3", "a.o", nullptr));
EXPECT_EQ(_context.compatibilityVersion(), 0x10203U);
}
TEST_F(DarwinLdParserTest, compatibilityVersionInvalidType) {
- EXPECT_TRUE(parse("ld", "-bundle", "-compatibility_version", "1.2.3", "a.o",
- nullptr));
+ EXPECT_FALSE(parse("ld", "-bundle", "-compatibility_version", "1.2.3", "a.o",
+ nullptr));
}
TEST_F(DarwinLdParserTest, compatibilityVersionInvalidValue) {
- EXPECT_TRUE(parse("ld", "-bundle", "-compatibility_version", "1,2,3", "a.o",
- nullptr));
+ EXPECT_FALSE(parse("ld", "-bundle", "-compatibility_version", "1,2,3", "a.o",
+ nullptr));
}
TEST_F(DarwinLdParserTest, currentVersion) {
- EXPECT_FALSE(
+ EXPECT_TRUE(
parse("ld", "-dylib", "-current_version", "1.2.3", "a.o", nullptr));
EXPECT_EQ(_context.currentVersion(), 0x10203U);
}
TEST_F(DarwinLdParserTest, currentVersionInvalidType) {
- EXPECT_TRUE(
+ EXPECT_FALSE(
parse("ld", "-bundle", "-current_version", "1.2.3", "a.o", nullptr));
}
TEST_F(DarwinLdParserTest, currentVersionInvalidValue) {
- EXPECT_TRUE(
+ EXPECT_FALSE(
parse("ld", "-bundle", "-current_version", "1,2,3", "a.o", nullptr));
}
TEST_F(DarwinLdParserTest, bundleLoader) {
- EXPECT_FALSE(
+ EXPECT_TRUE(
parse("ld", "-bundle", "-bundle_loader", "/bin/ls", "a.o", nullptr));
EXPECT_EQ(_context.bundleLoader(), "/bin/ls");
}
TEST_F(DarwinLdParserTest, bundleLoaderInvalidType) {
- EXPECT_TRUE(parse("ld", "-bundle_loader", "/bin/ls", "a.o", nullptr));
+ EXPECT_FALSE(parse("ld", "-bundle_loader", "/bin/ls", "a.o", nullptr));
}
TEST_F(DarwinLdParserTest, deadStrippableDylib) {
- EXPECT_FALSE(
+ EXPECT_TRUE(
parse("ld", "-dylib", "-mark_dead_strippable_dylib", "a.o", nullptr));
EXPECT_EQ(true, _context.deadStrippableDylib());
}
TEST_F(DarwinLdParserTest, deadStrippableDylibInvalidType) {
- EXPECT_TRUE(parse("ld", "-mark_dead_strippable_dylib", "a.o", nullptr));
+ EXPECT_FALSE(parse("ld", "-mark_dead_strippable_dylib", "a.o", nullptr));
}
} // end anonymous namespace
diff --git a/lld/unittests/DriverTests/GnuLdDriverTest.cpp b/lld/unittests/DriverTests/GnuLdDriverTest.cpp
index 62b5847726a..3313fd9f1bd 100644
--- a/lld/unittests/DriverTests/GnuLdDriverTest.cpp
+++ b/lld/unittests/DriverTests/GnuLdDriverTest.cpp
@@ -28,13 +28,13 @@ protected:
};
TEST_F(GnuLdParserTest, Empty) {
- EXPECT_TRUE(parse("ld", nullptr));
+ EXPECT_FALSE(parse("ld", nullptr));
EXPECT_EQ(linkingContext(), nullptr);
EXPECT_EQ("No input files\n", errorMessage());
}
TEST_F(GnuLdParserTest, Basic) {
- EXPECT_FALSE(parse("ld", "infile.o", nullptr));
+ EXPECT_TRUE(parse("ld", "infile.o", nullptr));
EXPECT_NE(linkingContext(), nullptr);
EXPECT_EQ("a.out", linkingContext()->outputPath());
EXPECT_EQ(1, inputFileCount());
@@ -44,8 +44,8 @@ TEST_F(GnuLdParserTest, Basic) {
}
TEST_F(GnuLdParserTest, ManyOptions) {
- EXPECT_FALSE(parse("ld", "-entry", "_start", "-o", "outfile",
- "--output-filetype=yaml", "infile.o", nullptr));
+ EXPECT_TRUE(parse("ld", "-entry", "_start", "-o", "outfile",
+ "--output-filetype=yaml", "infile.o", nullptr));
EXPECT_NE(linkingContext(), nullptr);
EXPECT_EQ("outfile", linkingContext()->outputPath());
EXPECT_EQ("_start", linkingContext()->entrySymbolName());
diff --git a/lld/unittests/DriverTests/WinLinkDriverTest.cpp b/lld/unittests/DriverTests/WinLinkDriverTest.cpp
index 3dee43889f6..55defc838f8 100644
--- a/lld/unittests/DriverTests/WinLinkDriverTest.cpp
+++ b/lld/unittests/DriverTests/WinLinkDriverTest.cpp
@@ -31,8 +31,8 @@ protected:
};
TEST_F(WinLinkParserTest, Basic) {
- EXPECT_FALSE(parse("link.exe", "/subsystem:console", "/out:a.exe",
- "-entry:start", "a.obj", "b.obj", "c.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/subsystem:console", "/out:a.exe",
+ "-entry:start", "a.obj", "b.obj", "c.obj", nullptr));
EXPECT_EQ(llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI, _context.getSubsystem());
EXPECT_EQ(llvm::COFF::IMAGE_FILE_MACHINE_I386, _context.getMachineType());
EXPECT_EQ("a.exe", _context.outputPath());
@@ -64,8 +64,8 @@ TEST_F(WinLinkParserTest, Basic) {
}
TEST_F(WinLinkParserTest, StartsWithHyphen) {
- EXPECT_FALSE(parse("link.exe", "-subsystem:console", "-out:a.exe",
- "a.obj", nullptr));
+ EXPECT_TRUE(
+ parse("link.exe", "-subsystem:console", "-out:a.exe", "a.obj", nullptr));
EXPECT_EQ(llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI, _context.getSubsystem());
EXPECT_EQ("a.exe", _context.outputPath());
EXPECT_EQ(1, inputFileCount());
@@ -73,8 +73,8 @@ TEST_F(WinLinkParserTest, StartsWithHyphen) {
}
TEST_F(WinLinkParserTest, UppercaseOption) {
- EXPECT_FALSE(parse("link.exe", "/SUBSYSTEM:CONSOLE", "/OUT:a.exe", "a.obj",
- nullptr));
+ EXPECT_TRUE(
+ parse("link.exe", "/SUBSYSTEM:CONSOLE", "/OUT:a.exe", "a.obj", nullptr));
EXPECT_EQ(llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI, _context.getSubsystem());
EXPECT_EQ("a.exe", _context.outputPath());
EXPECT_EQ(1, inputFileCount());
@@ -82,14 +82,14 @@ TEST_F(WinLinkParserTest, UppercaseOption) {
}
TEST_F(WinLinkParserTest, Mllvm) {
- EXPECT_FALSE(parse("link.exe", "/mllvm:-debug", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/mllvm:-debug", "a.obj", nullptr));
const std::vector<const char *> &options = _context.llvmOptions();
EXPECT_EQ(1U, options.size());
EXPECT_STREQ("-debug", options[0]);
}
TEST_F(WinLinkParserTest, NoInputFiles) {
- EXPECT_TRUE(parse("link.exe", nullptr));
+ EXPECT_FALSE(parse("link.exe", nullptr));
EXPECT_EQ("No input files\n", errorMessage());
}
@@ -98,7 +98,7 @@ TEST_F(WinLinkParserTest, NoInputFiles) {
//
TEST_F(WinLinkParserTest, NoFileExtension) {
- EXPECT_FALSE(parse("link.exe", "foo", "bar", nullptr));
+ EXPECT_TRUE(parse("link.exe", "foo", "bar", nullptr));
EXPECT_EQ("foo.exe", _context.outputPath());
EXPECT_EQ(2, inputFileCount());
EXPECT_EQ("foo.obj", inputFile(0));
@@ -106,15 +106,15 @@ TEST_F(WinLinkParserTest, NoFileExtension) {
}
TEST_F(WinLinkParserTest, NonStandardFileExtension) {
- EXPECT_FALSE(parse("link.exe", "foo.o", nullptr));
+ EXPECT_TRUE(parse("link.exe", "foo.o", nullptr));
EXPECT_EQ("foo.exe", _context.outputPath());
EXPECT_EQ(1, inputFileCount());
EXPECT_EQ("foo.o", inputFile(0));
}
TEST_F(WinLinkParserTest, Libpath) {
- EXPECT_FALSE(parse("link.exe", "/libpath:dir1", "/libpath:dir2",
- "a.obj", nullptr));
+ EXPECT_TRUE(
+ parse("link.exe", "/libpath:dir1", "/libpath:dir2", "a.obj", nullptr));
const std::vector<StringRef> &paths = _context.getInputSearchPaths();
EXPECT_EQ(2U, paths.size());
EXPECT_EQ("dir1", paths[0]);
@@ -126,100 +126,100 @@ TEST_F(WinLinkParserTest, Libpath) {
//
TEST_F(WinLinkParserTest, MachineX86) {
- EXPECT_FALSE(parse("link.exe", "/machine:x86", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/machine:x86", "a.obj", nullptr));
EXPECT_EQ(llvm::COFF::IMAGE_FILE_MACHINE_I386, _context.getMachineType());
}
TEST_F(WinLinkParserTest, MachineX64) {
- EXPECT_TRUE(parse("link.exe", "/machine:x64", "a.obj", nullptr));
- EXPECT_TRUE(StringRef(errorMessage()).startswith(
- "Machine type other than x86 is not supported"));
+ EXPECT_FALSE(parse("link.exe", "/machine:x64", "a.obj", nullptr));
+ EXPECT_TRUE(StringRef(errorMessage())
+ .startswith("Machine type other than x86 is not supported"));
}
TEST_F(WinLinkParserTest, MajorImageVersion) {
- EXPECT_FALSE(parse("link.exe", "/version:7", "foo.o", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/version:7", "foo.o", nullptr));
EXPECT_EQ(7, _context.getImageVersion().majorVersion);
EXPECT_EQ(0, _context.getImageVersion().minorVersion);
}
TEST_F(WinLinkParserTest, MajorMinorImageVersion) {
- EXPECT_FALSE(parse("link.exe", "/version:72.35", "foo.o", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/version:72.35", "foo.o", nullptr));
EXPECT_EQ(72, _context.getImageVersion().majorVersion);
EXPECT_EQ(35, _context.getImageVersion().minorVersion);
}
TEST_F(WinLinkParserTest, MinMajorOSVersion) {
- EXPECT_FALSE(parse("link.exe", "/subsystem:windows,3", "foo.o", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/subsystem:windows,3", "foo.o", nullptr));
EXPECT_EQ(llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_GUI, _context.getSubsystem());
EXPECT_EQ(3, _context.getMinOSVersion().majorVersion);
EXPECT_EQ(0, _context.getMinOSVersion().minorVersion);
}
TEST_F(WinLinkParserTest, MinMajorMinorOSVersion) {
- EXPECT_FALSE(parse("link.exe", "/subsystem:windows,3.1", "foo.o", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/subsystem:windows,3.1", "foo.o", nullptr));
EXPECT_EQ(llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_GUI, _context.getSubsystem());
EXPECT_EQ(3, _context.getMinOSVersion().majorVersion);
EXPECT_EQ(1, _context.getMinOSVersion().minorVersion);
}
TEST_F(WinLinkParserTest, Base) {
- EXPECT_FALSE(parse("link.exe", "/base:8388608", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/base:8388608", "a.obj", nullptr));
EXPECT_EQ(0x800000U, _context.getBaseAddress());
}
TEST_F(WinLinkParserTest, InvalidBase) {
- EXPECT_TRUE(parse("link.exe", "/base:1234", "a.obj", nullptr));
- EXPECT_TRUE(StringRef(errorMessage()).startswith(
- "Base address have to be multiple of 64K"));
+ EXPECT_FALSE(parse("link.exe", "/base:1234", "a.obj", nullptr));
+ EXPECT_TRUE(StringRef(errorMessage())
+ .startswith("Base address have to be multiple of 64K"));
}
TEST_F(WinLinkParserTest, StackReserve) {
- EXPECT_FALSE(parse("link.exe", "/stack:8192", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/stack:8192", "a.obj", nullptr));
EXPECT_EQ(8192U, _context.getStackReserve());
EXPECT_EQ(4096U, _context.getStackCommit());
}
TEST_F(WinLinkParserTest, StackReserveAndCommit) {
- EXPECT_FALSE(parse("link.exe", "/stack:16384,8192", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/stack:16384,8192", "a.obj", nullptr));
EXPECT_EQ(16384U, _context.getStackReserve());
EXPECT_EQ(8192U, _context.getStackCommit());
}
TEST_F(WinLinkParserTest, InvalidStackSize) {
- EXPECT_TRUE(parse("link.exe", "/stack:8192,16384", "a.obj", nullptr));
+ EXPECT_FALSE(parse("link.exe", "/stack:8192,16384", "a.obj", nullptr));
EXPECT_TRUE(StringRef(errorMessage()).startswith("Invalid stack size"));
}
TEST_F(WinLinkParserTest, HeapReserve) {
- EXPECT_FALSE(parse("link.exe", "/heap:8192", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/heap:8192", "a.obj", nullptr));
EXPECT_EQ(8192U, _context.getHeapReserve());
EXPECT_EQ(4096U, _context.getHeapCommit());
}
TEST_F(WinLinkParserTest, HeapReserveAndCommit) {
- EXPECT_FALSE(parse("link.exe", "/heap:16384,8192", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/heap:16384,8192", "a.obj", nullptr));
EXPECT_EQ(16384U, _context.getHeapReserve());
EXPECT_EQ(8192U, _context.getHeapCommit());
}
TEST_F(WinLinkParserTest, InvalidHeapSize) {
- EXPECT_TRUE(parse("link.exe", "/heap:8192,16384", "a.obj", nullptr));
+ EXPECT_FALSE(parse("link.exe", "/heap:8192,16384", "a.obj", nullptr));
EXPECT_TRUE(StringRef(errorMessage()).startswith("Invalid heap size"));
}
TEST_F(WinLinkParserTest, SectionAlignment) {
- EXPECT_FALSE(parse("link.exe", "/align:8192", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/align:8192", "a.obj", nullptr));
EXPECT_EQ(8192U, _context.getSectionAlignment());
}
TEST_F(WinLinkParserTest, InvalidAlignment) {
- EXPECT_TRUE(parse("link.exe", "/align:1000", "a.obj", nullptr));
+ EXPECT_FALSE(parse("link.exe", "/align:1000", "a.obj", nullptr));
EXPECT_EQ("Section alignment must be a power of 2, but got 1000\n",
errorMessage());
}
TEST_F(WinLinkParserTest, Include) {
- EXPECT_FALSE(parse("link.exe", "/include:foo", "a.out", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/include:foo", "a.out", nullptr));
auto symbols = _context.initialUndefinedSymbols();
EXPECT_FALSE(symbols.empty());
EXPECT_EQ("foo", symbols[0]);
@@ -232,8 +232,8 @@ TEST_F(WinLinkParserTest, Include) {
//
TEST_F(WinLinkParserTest, DefaultLib) {
- EXPECT_FALSE(parse("link.exe", "/defaultlib:user32.lib",
- "/defaultlib:kernel32", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/defaultlib:user32.lib",
+ "/defaultlib:kernel32", "a.obj", nullptr));
EXPECT_EQ(3, inputFileCount());
EXPECT_EQ("a.obj", inputFile(0));
EXPECT_EQ("user32.lib", inputFile(1));
@@ -241,18 +241,17 @@ TEST_F(WinLinkParserTest, DefaultLib) {
}
TEST_F(WinLinkParserTest, NoDefaultLib) {
- EXPECT_FALSE(parse("link.exe", "/defaultlib:user32.lib",
- "/defaultlib:kernel32", "/nodefaultlib:user32.lib",
- "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/defaultlib:user32.lib",
+ "/defaultlib:kernel32", "/nodefaultlib:user32.lib", "a.obj",
+ nullptr));
EXPECT_EQ(2, inputFileCount());
EXPECT_EQ("a.obj", inputFile(0));
EXPECT_EQ("kernel32.lib", inputFile(1));
}
TEST_F(WinLinkParserTest, NoDefaultLibAll) {
- EXPECT_FALSE(parse("link.exe", "/defaultlib:user32.lib",
- "/defaultlib:kernel32", "/nodefaultlib", "a.obj",
- nullptr));
+ EXPECT_TRUE(parse("link.exe", "/defaultlib:user32.lib",
+ "/defaultlib:kernel32", "/nodefaultlib", "a.obj", nullptr));
EXPECT_EQ(1, inputFileCount());
EXPECT_EQ("a.obj", inputFile(0));
}
@@ -262,93 +261,93 @@ TEST_F(WinLinkParserTest, NoDefaultLibAll) {
//
TEST_F(WinLinkParserTest, Force) {
- EXPECT_FALSE(parse("link.exe", "/force", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/force", "a.obj", nullptr));
EXPECT_TRUE(_context.allowRemainingUndefines());
}
TEST_F(WinLinkParserTest, ForceUnresolved) {
- EXPECT_FALSE(parse("link.exe", "/force:unresolved", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/force:unresolved", "a.obj", nullptr));
EXPECT_TRUE(_context.allowRemainingUndefines());
}
TEST_F(WinLinkParserTest, NoNxCompat) {
- EXPECT_FALSE(parse("link.exe", "/nxcompat:no", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/nxcompat:no", "a.obj", nullptr));
EXPECT_FALSE(_context.isNxCompat());
}
TEST_F(WinLinkParserTest, LargeAddressAware) {
- EXPECT_FALSE(parse("link.exe", "/largeaddressaware", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/largeaddressaware", "a.obj", nullptr));
EXPECT_TRUE(_context.getLargeAddressAware());
}
TEST_F(WinLinkParserTest, NoLargeAddressAware) {
- EXPECT_FALSE(parse("link.exe", "/largeaddressaware:no", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/largeaddressaware:no", "a.obj", nullptr));
EXPECT_FALSE(_context.getLargeAddressAware());
}
TEST_F(WinLinkParserTest, AllowBind) {
- EXPECT_FALSE(parse("link.exe", "/allowbind", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/allowbind", "a.obj", nullptr));
EXPECT_TRUE(_context.getAllowBind());
}
TEST_F(WinLinkParserTest, NoAllowBind) {
- EXPECT_FALSE(parse("link.exe", "/allowbind:no", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/allowbind:no", "a.obj", nullptr));
EXPECT_FALSE(_context.getAllowBind());
}
TEST_F(WinLinkParserTest, AllowIsolation) {
- EXPECT_FALSE(parse("link.exe", "/allowisolation", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/allowisolation", "a.obj", nullptr));
EXPECT_TRUE(_context.getAllowIsolation());
}
TEST_F(WinLinkParserTest, NoAllowIsolation) {
- EXPECT_FALSE(parse("link.exe", "/allowisolation:no", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/allowisolation:no", "a.obj", nullptr));
EXPECT_FALSE(_context.getAllowIsolation());
}
TEST_F(WinLinkParserTest, SwapRunFromCD) {
- EXPECT_FALSE(parse("link.exe", "/swaprun:cd", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/swaprun:cd", "a.obj", nullptr));
EXPECT_TRUE(_context.getSwapRunFromCD());
}
TEST_F(WinLinkParserTest, SwapRunFromNet) {
- EXPECT_FALSE(parse("link.exe", "/swaprun:net", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/swaprun:net", "a.obj", nullptr));
EXPECT_TRUE(_context.getSwapRunFromNet());
}
TEST_F(WinLinkParserTest, Debug) {
- EXPECT_FALSE(parse("link.exe", "/debug", "a.out", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/debug", "a.out", nullptr));
EXPECT_FALSE(_context.deadStrip());
}
TEST_F(WinLinkParserTest, Fixed) {
- EXPECT_FALSE(parse("link.exe", "/fixed", "a.out", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/fixed", "a.out", nullptr));
EXPECT_FALSE(_context.getBaseRelocationEnabled());
EXPECT_FALSE(_context.getDynamicBaseEnabled());
}
TEST_F(WinLinkParserTest, NoFixed) {
- EXPECT_FALSE(parse("link.exe", "/fixed:no", "a.out", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/fixed:no", "a.out", nullptr));
EXPECT_TRUE(_context.getBaseRelocationEnabled());
}
TEST_F(WinLinkParserTest, TerminalServerAware) {
- EXPECT_FALSE(parse("link.exe", "/tsaware", "a.out", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/tsaware", "a.out", nullptr));
EXPECT_TRUE(_context.isTerminalServerAware());
}
TEST_F(WinLinkParserTest, NoTerminalServerAware) {
- EXPECT_FALSE(parse("link.exe", "/tsaware:no", "a.out", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/tsaware:no", "a.out", nullptr));
EXPECT_FALSE(_context.isTerminalServerAware());
}
TEST_F(WinLinkParserTest, DynamicBase) {
- EXPECT_FALSE(parse("link.exe", "/dynamicbase", "a.out", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/dynamicbase", "a.out", nullptr));
EXPECT_TRUE(_context.getDynamicBaseEnabled());
}
TEST_F(WinLinkParserTest, NoDynamicBase) {
- EXPECT_FALSE(parse("link.exe", "/dynamicbase:no", "a.out", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/dynamicbase:no", "a.out", nullptr));
EXPECT_FALSE(_context.getDynamicBaseEnabled());
}
@@ -357,14 +356,14 @@ TEST_F(WinLinkParserTest, NoDynamicBase) {
//
TEST_F(WinLinkParserTest, FailIfMismatch_Match) {
- EXPECT_FALSE(parse("link.exe", "/failifmismatch:foo=bar",
- "/failifmismatch:foo=bar", "/failifmismatch:abc=def",
- "a.out", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/failifmismatch:foo=bar",
+ "/failifmismatch:foo=bar", "/failifmismatch:abc=def",
+ "a.out", nullptr));
}
TEST_F(WinLinkParserTest, FailIfMismatch_Mismatch) {
- EXPECT_TRUE(parse("link.exe", "/failifmismatch:foo=bar",
- "/failifmismatch:foo=baz", "a.out", nullptr));
+ EXPECT_FALSE(parse("link.exe", "/failifmismatch:foo=bar",
+ "/failifmismatch:foo=baz", "a.out", nullptr));
}
//
@@ -374,11 +373,11 @@ TEST_F(WinLinkParserTest, FailIfMismatch_Mismatch) {
TEST_F(WinLinkParserTest, Ignore) {
// There are some no-op command line options that are recognized for
// compatibility with link.exe.
- EXPECT_FALSE(parse("link.exe", "/nologo", "/errorreport:prompt",
- "/incremental", "/incremental:no", "/delay:unload",
- "/delayload:user32", "/pdb:foo", "/pdbaltpath:bar",
- "/verbose", "/verbose:icf", "/wx", "/wx:no", "a.obj",
- nullptr));
+ EXPECT_TRUE(parse("link.exe", "/nologo", "/errorreport:prompt",
+ "/incremental", "/incremental:no", "/delay:unload",
+ "/delayload:user32", "/pdb:foo", "/pdbaltpath:bar",
+ "/verbose", "/verbose:icf", "/wx", "/wx:no", "a.obj",
+ nullptr));
EXPECT_EQ("", errorMessage());
EXPECT_EQ(1, inputFileCount());
EXPECT_EQ("a.obj", inputFile(0));
@@ -389,8 +388,8 @@ TEST_F(WinLinkParserTest, Ignore) {
//
TEST_F(WinLinkParserTest, DashDash) {
- EXPECT_FALSE(parse("link.exe", "/subsystem:console", "/out:a.exe",
- "a.obj", "--", "b.obj", "-c.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/subsystem:console", "/out:a.exe", "a.obj",
+ "--", "b.obj", "-c.obj", nullptr));
EXPECT_EQ(llvm::COFF::IMAGE_SUBSYSTEM_WINDOWS_CUI, _context.getSubsystem());
EXPECT_EQ("a.exe", _context.outputPath());
EXPECT_EQ(3, inputFileCount());
@@ -404,12 +403,12 @@ TEST_F(WinLinkParserTest, DashDash) {
//
TEST_F(WinLinkParserTest, DefEntryNameConsole) {
- EXPECT_FALSE(parse("link.exe", "/subsystem:console", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/subsystem:console", "a.obj", nullptr));
EXPECT_EQ("_mainCRTStartup", _context.entrySymbolName());
}
TEST_F(WinLinkParserTest, DefEntryNameWindows) {
- EXPECT_FALSE(parse("link.exe", "/subsystem:windows", "a.obj", nullptr));
+ EXPECT_TRUE(parse("link.exe", "/subsystem:windows", "a.obj", nullptr));
EXPECT_EQ("_WinMainCRTStartup", _context.entrySymbolName());
}
OpenPOWER on IntegriCloud