diff options
author | Armando Montanez <amontanez@google.com> | 2018-12-11 01:00:16 +0000 |
---|---|---|
committer | Armando Montanez <amontanez@google.com> | 2018-12-11 01:00:16 +0000 |
commit | 6d6ff2e0d720b2b50c7a7566363d45b7706a6433 (patch) | |
tree | 715ab73920146f576c6d168141fbb4c55abb14d1 /llvm/unittests/TextAPI | |
parent | 21d45a2c98461634fe453f5fbcb473a801bae820 (diff) | |
download | bcm5719-llvm-6d6ff2e0d720b2b50c7a7566363d45b7706a6433.tar.gz bcm5719-llvm-6d6ff2e0d720b2b50c7a7566363d45b7706a6433.zip |
[TextAPI][elfabi] Make SoName optional
This change makes DT_SONAME treated as an optional trait for ELF TextAPI
stubs. This change accounts for the fact that shared objects aren't
guaranteed to have a DT_SONAME entry. Tests have been updated to check
for correct behavior of an optional soname.
Differential Revision: https://reviews.llvm.org/D55533
llvm-svn: 348817
Diffstat (limited to 'llvm/unittests/TextAPI')
-rw-r--r-- | llvm/unittests/TextAPI/ELFYAMLTest.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/unittests/TextAPI/ELFYAMLTest.cpp b/llvm/unittests/TextAPI/ELFYAMLTest.cpp index 1797c0b2d79..802a2d7127b 100644 --- a/llvm/unittests/TextAPI/ELFYAMLTest.cpp +++ b/llvm/unittests/TextAPI/ELFYAMLTest.cpp @@ -37,7 +37,6 @@ void compareByLine(StringRef LHS, StringRef RHS) { TEST(ElfYamlTextAPI, YAMLReadableTBE) { const char Data[] = "--- !tapi-tbe\n" "TbeVersion: 1.0\n" - "SoName: test.so\n" "Arch: x86_64\n" "NeededLibs: [libc.so, libfoo.so, libbar.so]\n" "Symbols:\n" @@ -47,8 +46,8 @@ TEST(ElfYamlTextAPI, YAMLReadableTBE) { ASSERT_THAT_ERROR(StubOrErr.takeError(), Succeeded()); std::unique_ptr<ELFStub> Stub = std::move(StubOrErr.get()); EXPECT_NE(Stub.get(), nullptr); + EXPECT_FALSE(Stub->SoName.hasValue()); EXPECT_EQ(Stub->Arch, (uint16_t)llvm::ELF::EM_X86_64); - EXPECT_STREQ(Stub->SoName.c_str(), "test.so"); EXPECT_EQ(Stub->NeededLibs.size(), 3u); EXPECT_STREQ(Stub->NeededLibs[0].c_str(), "libc.so"); EXPECT_STREQ(Stub->NeededLibs[1].c_str(), "libfoo.so"); @@ -72,6 +71,8 @@ TEST(ElfYamlTextAPI, YAMLReadsTBESymbols) { ASSERT_THAT_ERROR(StubOrErr.takeError(), Succeeded()); std::unique_ptr<ELFStub> Stub = std::move(StubOrErr.get()); EXPECT_NE(Stub.get(), nullptr); + EXPECT_TRUE(Stub->SoName.hasValue()); + EXPECT_STREQ(Stub->SoName->c_str(), "test.so"); EXPECT_EQ(Stub->Symbols.size(), 5u); auto Iterator = Stub->Symbols.begin(); @@ -143,7 +144,6 @@ TEST(ElfYamlTextAPI, YAMLWritesTBESymbols) { const char Expected[] = "--- !tapi-tbe\n" "TbeVersion: 1.0\n" - "SoName: test.so\n" "Arch: AArch64\n" "Symbols: \n" " foo: { Type: NoType, Size: 99, Warning: Does nothing }\n" @@ -152,7 +152,6 @@ TEST(ElfYamlTextAPI, YAMLWritesTBESymbols) { "...\n"; ELFStub Stub; Stub.TbeVersion = VersionTuple(1, 0); - Stub.SoName = "test.so"; Stub.Arch = ELF::EM_AARCH64; ELFSymbol SymFoo("foo"); |