aboutsummaryrefslogtreecommitdiff
path: root/unittests/Object
diff options
context:
space:
mode:
Diffstat (limited to 'unittests/Object')
-rw-r--r--unittests/Object/CMakeLists.txt1
-rw-r--r--unittests/Object/SymbolicFileTest.cpp42
2 files changed, 43 insertions, 0 deletions
diff --git a/unittests/Object/CMakeLists.txt b/unittests/Object/CMakeLists.txt
index 7a63c167a30b..e1376bffbc0f 100644
--- a/unittests/Object/CMakeLists.txt
+++ b/unittests/Object/CMakeLists.txt
@@ -4,5 +4,6 @@ set(LLVM_LINK_COMPONENTS
add_llvm_unittest(ObjectTests
SymbolSizeTest.cpp
+ SymbolicFileTest.cpp
)
diff --git a/unittests/Object/SymbolicFileTest.cpp b/unittests/Object/SymbolicFileTest.cpp
new file mode 100644
index 000000000000..ec954e5e67d0
--- /dev/null
+++ b/unittests/Object/SymbolicFileTest.cpp
@@ -0,0 +1,42 @@
+//===- SymbolicFileTest.cpp - Tests for SymbolicFile.cpp ------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/Object/SymbolicFile.h"
+#include "llvm/Support/Host.h"
+#include "llvm/Support/raw_ostream.h"
+#include "gtest/gtest.h"
+#include <sstream>
+
+TEST(Object, DataRefImplOstream) {
+ std::string s;
+ llvm::raw_string_ostream OS(s);
+ llvm::object::DataRefImpl Data;
+ Data.d.a = 0xeeee0000;
+ Data.d.b = 0x0000ffff;
+
+ static_assert(sizeof Data.p == sizeof(uint64_t) ||
+ sizeof Data.p == sizeof(uint32_t),
+ "Test expected pointer type to be 32 or 64-bit.");
+
+ char const *Expected;
+
+ if (sizeof Data.p == sizeof(uint64_t)) {
+ Expected = llvm::sys::IsLittleEndianHost
+ ? "(0xffffeeee0000 (0xeeee0000, 0x0000ffff))"
+ : "(0xeeee00000000ffff (0xeeee0000, 0x0000ffff))";
+ }
+ else {
+ Expected = "(0xeeee0000 (0xeeee0000, 0x0000ffff))";
+ }
+
+ OS << Data;
+ OS.flush();
+
+ EXPECT_EQ(Expected, s);
+}