14ab9a06fSDavid Bozier //===- SymbolicFileTest.cpp - Tests for SymbolicFile.cpp ------------------===//
24ab9a06fSDavid Bozier //
3*2946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*2946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information.
5*2946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
64ab9a06fSDavid Bozier //
74ab9a06fSDavid Bozier //===----------------------------------------------------------------------===//
84ab9a06fSDavid Bozier 
94ab9a06fSDavid Bozier #include "llvm/Object/SymbolicFile.h"
105c8e5f37SDavid Bozier #include "llvm/Support/Host.h"
114ab9a06fSDavid Bozier #include "llvm/Support/raw_ostream.h"
124ab9a06fSDavid Bozier #include "gtest/gtest.h"
134ab9a06fSDavid Bozier #include <sstream>
144ab9a06fSDavid Bozier 
TEST(Object,DataRefImplOstream)154ab9a06fSDavid Bozier TEST(Object, DataRefImplOstream) {
164ab9a06fSDavid Bozier   std::string s;
174ab9a06fSDavid Bozier   llvm::raw_string_ostream OS(s);
184ab9a06fSDavid Bozier   llvm::object::DataRefImpl Data;
194ab9a06fSDavid Bozier   Data.d.a = 0xeeee0000;
204ab9a06fSDavid Bozier   Data.d.b = 0x0000ffff;
214ab9a06fSDavid Bozier 
224ab9a06fSDavid Bozier   static_assert(sizeof Data.p == sizeof(uint64_t) ||
234ab9a06fSDavid Bozier                     sizeof Data.p == sizeof(uint32_t),
244ab9a06fSDavid Bozier                 "Test expected pointer type to be 32 or 64-bit.");
254ab9a06fSDavid Bozier 
265c8e5f37SDavid Bozier   char const *Expected;
275c8e5f37SDavid Bozier 
284b21d022SDavid Bozier   if (sizeof Data.p == sizeof(uint64_t)) {
294b21d022SDavid Bozier     Expected = llvm::sys::IsLittleEndianHost
304ab9a06fSDavid Bozier                              ? "(0xffffeeee0000 (0xeeee0000, 0x0000ffff))"
314b21d022SDavid Bozier                              : "(0xeeee00000000ffff (0xeeee0000, 0x0000ffff))";
325c8e5f37SDavid Bozier   }
335c8e5f37SDavid Bozier   else {
344b21d022SDavid Bozier     Expected = "(0xeeee0000 (0xeeee0000, 0x0000ffff))";
355c8e5f37SDavid Bozier   }
364ab9a06fSDavid Bozier 
374ab9a06fSDavid Bozier   OS << Data;
384ab9a06fSDavid Bozier   OS.flush();
394ab9a06fSDavid Bozier 
404ab9a06fSDavid Bozier   EXPECT_EQ(Expected, s);
414ab9a06fSDavid Bozier }
42