brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · f398c54 Raw
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