61 lines · cpp
1//===-- DAPTypesTest.cpp ----------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "Protocol/DAPTypes.h"10#include "TestingSupport/TestUtilities.h"11#include "lldb/lldb-enumerations.h"12#include "llvm/Testing/Support/Error.h"13#include "gtest/gtest.h"14#include <optional>15 16using namespace llvm;17using namespace lldb;18using namespace lldb_dap;19using namespace lldb_dap::protocol;20using lldb_private::roundtripJSON;21 22TEST(DAPTypesTest, SourceLLDBData) {23 SourceLLDBData source_data;24 source_data.persistenceData =25 PersistenceData{"module_path123", "symbol_name456"};26 27 llvm::Expected<SourceLLDBData> deserialized_data = roundtripJSON(source_data);28 ASSERT_THAT_EXPECTED(deserialized_data, llvm::Succeeded());29 30 EXPECT_EQ(source_data.persistenceData->module_path,31 deserialized_data->persistenceData->module_path);32 EXPECT_EQ(source_data.persistenceData->symbol_name,33 deserialized_data->persistenceData->symbol_name);34}35 36TEST(DAPTypesTest, DAPSymbol) {37 Symbol symbol;38 symbol.id = 42;39 symbol.isDebug = true;40 symbol.isExternal = false;41 symbol.isSynthetic = true;42 symbol.type = lldb::eSymbolTypeTrampoline;43 symbol.fileAddress = 0x12345678;44 symbol.loadAddress = 0x87654321;45 symbol.size = 64;46 symbol.name = "testSymbol";47 48 llvm::Expected<Symbol> deserialized_symbol = roundtripJSON(symbol);49 ASSERT_THAT_EXPECTED(deserialized_symbol, llvm::Succeeded());50 51 EXPECT_EQ(symbol.id, deserialized_symbol->id);52 EXPECT_EQ(symbol.isDebug, deserialized_symbol->isDebug);53 EXPECT_EQ(symbol.isExternal, deserialized_symbol->isExternal);54 EXPECT_EQ(symbol.isSynthetic, deserialized_symbol->isSynthetic);55 EXPECT_EQ(symbol.type, deserialized_symbol->type);56 EXPECT_EQ(symbol.fileAddress, deserialized_symbol->fileAddress);57 EXPECT_EQ(symbol.loadAddress, deserialized_symbol->loadAddress);58 EXPECT_EQ(symbol.size, deserialized_symbol->size);59 EXPECT_EQ(symbol.name, deserialized_symbol->name);60}61