xref: /llvm-project/lldb/unittests/Utility/DataBufferTest.cpp (revision fc54427e76c89e567390dd4a1d64a65568f4ec26)
1*fc54427eSJonas Devlieghere //===-- DataBufferTest.cpp ------------------------------------------------===//
2*fc54427eSJonas Devlieghere //
3*fc54427eSJonas Devlieghere // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*fc54427eSJonas Devlieghere // See https://llvm.org/LICENSE.txt for license information.
5*fc54427eSJonas Devlieghere // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*fc54427eSJonas Devlieghere //
7*fc54427eSJonas Devlieghere //===----------------------------------------------------------------------===//
8*fc54427eSJonas Devlieghere 
9*fc54427eSJonas Devlieghere #include "gtest/gtest.h"
10*fc54427eSJonas Devlieghere 
11*fc54427eSJonas Devlieghere #include "lldb/Utility/DataBuffer.h"
12*fc54427eSJonas Devlieghere #include "lldb/Utility/DataBufferHeap.h"
13*fc54427eSJonas Devlieghere #include "lldb/Utility/DataBufferLLVM.h"
14*fc54427eSJonas Devlieghere 
15*fc54427eSJonas Devlieghere #include "llvm/Support/Casting.h"
16*fc54427eSJonas Devlieghere #include "llvm/Support/MemoryBuffer.h"
17*fc54427eSJonas Devlieghere 
18*fc54427eSJonas Devlieghere using namespace lldb_private;
19*fc54427eSJonas Devlieghere using namespace lldb;
20*fc54427eSJonas Devlieghere 
TEST(DataBufferTest,RTTI)21*fc54427eSJonas Devlieghere TEST(DataBufferTest, RTTI) {
22*fc54427eSJonas Devlieghere   {
23*fc54427eSJonas Devlieghere     DataBufferSP data_buffer_sp = std::make_shared<DataBufferHeap>();
24*fc54427eSJonas Devlieghere     DataBuffer *data_buffer = data_buffer_sp.get();
25*fc54427eSJonas Devlieghere 
26*fc54427eSJonas Devlieghere     EXPECT_TRUE(llvm::isa<DataBuffer>(data_buffer));
27*fc54427eSJonas Devlieghere     EXPECT_TRUE(llvm::isa<WritableDataBuffer>(data_buffer));
28*fc54427eSJonas Devlieghere     EXPECT_TRUE(llvm::isa<DataBufferHeap>(data_buffer));
29*fc54427eSJonas Devlieghere     EXPECT_FALSE(llvm::isa<DataBufferLLVM>(data_buffer));
30*fc54427eSJonas Devlieghere   }
31*fc54427eSJonas Devlieghere 
32*fc54427eSJonas Devlieghere   {
33*fc54427eSJonas Devlieghere     llvm::StringRef data;
34*fc54427eSJonas Devlieghere     DataBufferSP data_buffer_sp = std::make_shared<DataBufferLLVM>(
35*fc54427eSJonas Devlieghere         llvm::MemoryBuffer::getMemBufferCopy(data));
36*fc54427eSJonas Devlieghere     DataBuffer *data_buffer = data_buffer_sp.get();
37*fc54427eSJonas Devlieghere 
38*fc54427eSJonas Devlieghere     EXPECT_TRUE(llvm::isa<DataBuffer>(data_buffer));
39*fc54427eSJonas Devlieghere     EXPECT_TRUE(llvm::isa<DataBufferLLVM>(data_buffer));
40*fc54427eSJonas Devlieghere     EXPECT_FALSE(llvm::isa<WritableDataBuffer>(data_buffer));
41*fc54427eSJonas Devlieghere     EXPECT_FALSE(llvm::isa<WritableDataBufferLLVM>(data_buffer));
42*fc54427eSJonas Devlieghere     EXPECT_FALSE(llvm::isa<DataBufferHeap>(data_buffer));
43*fc54427eSJonas Devlieghere   }
44*fc54427eSJonas Devlieghere 
45*fc54427eSJonas Devlieghere   {
46*fc54427eSJonas Devlieghere     DataBufferSP data_buffer_sp = std::make_shared<WritableDataBufferLLVM>(
47*fc54427eSJonas Devlieghere         llvm::WritableMemoryBuffer::getNewMemBuffer(1));
48*fc54427eSJonas Devlieghere     DataBuffer *data_buffer = data_buffer_sp.get();
49*fc54427eSJonas Devlieghere 
50*fc54427eSJonas Devlieghere     EXPECT_TRUE(llvm::isa<DataBuffer>(data_buffer));
51*fc54427eSJonas Devlieghere     EXPECT_TRUE(llvm::isa<WritableDataBuffer>(data_buffer));
52*fc54427eSJonas Devlieghere     EXPECT_TRUE(llvm::isa<WritableDataBufferLLVM>(data_buffer));
53*fc54427eSJonas Devlieghere     EXPECT_FALSE(llvm::isa<DataBufferLLVM>(data_buffer));
54*fc54427eSJonas Devlieghere     EXPECT_FALSE(llvm::isa<DataBufferHeap>(data_buffer));
55*fc54427eSJonas Devlieghere   }
56*fc54427eSJonas Devlieghere }
57