1234567891011121314151617181920212223242526272829303132333435363738394041 |
- //===- SymbolicFileTest.cpp - Tests for SymbolicFile.cpp ------------------===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- #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);
- }
|