//===-- DAPTypesTest.cpp ----------------------------------------*- C++ -*-===// // // 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 "Protocol/DAPTypes.h" #include "TestingSupport/TestUtilities.h" #include "lldb/lldb-enumerations.h" #include "llvm/Testing/Support/Error.h" #include "gtest/gtest.h" #include using namespace llvm; using namespace lldb; using namespace lldb_dap; using namespace lldb_dap::protocol; using lldb_private::roundtripJSON; TEST(DAPTypesTest, SourceLLDBData) { SourceLLDBData source_data; source_data.persistenceData = PersistenceData{"module_path123", "symbol_name456"}; llvm::Expected deserialized_data = roundtripJSON(source_data); ASSERT_THAT_EXPECTED(deserialized_data, llvm::Succeeded()); EXPECT_EQ(source_data.persistenceData->module_path, deserialized_data->persistenceData->module_path); EXPECT_EQ(source_data.persistenceData->symbol_name, deserialized_data->persistenceData->symbol_name); } TEST(DAPTypesTest, DAPSymbol) { Symbol symbol; symbol.id = 42; symbol.isDebug = true; symbol.isExternal = false; symbol.isSynthetic = true; symbol.type = lldb::eSymbolTypeTrampoline; symbol.fileAddress = 0x12345678; symbol.loadAddress = 0x87654321; symbol.size = 64; symbol.name = "testSymbol"; llvm::Expected deserialized_symbol = roundtripJSON(symbol); ASSERT_THAT_EXPECTED(deserialized_symbol, llvm::Succeeded()); EXPECT_EQ(symbol.id, deserialized_symbol->id); EXPECT_EQ(symbol.isDebug, deserialized_symbol->isDebug); EXPECT_EQ(symbol.isExternal, deserialized_symbol->isExternal); EXPECT_EQ(symbol.isSynthetic, deserialized_symbol->isSynthetic); EXPECT_EQ(symbol.type, deserialized_symbol->type); EXPECT_EQ(symbol.fileAddress, deserialized_symbol->fileAddress); EXPECT_EQ(symbol.loadAddress, deserialized_symbol->loadAddress); EXPECT_EQ(symbol.size, deserialized_symbol->size); EXPECT_EQ(symbol.name, deserialized_symbol->name); }