Path: blob/master/Tests/CMakeLib/testDebuggerVariablesManager.cxx
3148 views
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file LICENSE.rst or https://cmake.org/licensing for details. */ #include <memory> #include <vector> #include <cm3p/cppdap/protocol.h> #include <cm3p/cppdap/types.h> #include <stdint.h> #include "cmDebuggerVariables.h" #include "cmDebuggerVariablesManager.h" #include "testCommon.h" static bool testVariablesRegistration() { auto variablesManager = std::make_shared<cmDebugger::cmDebuggerVariablesManager>(); int64_t line = 5; auto local = std::make_shared<cmDebugger::cmDebuggerVariables>( variablesManager, "Local", true, [=]() { return std::vector<cmDebugger::cmDebuggerVariableEntry>{ { "CurrentLine", line } }; }); dap::VariablesRequest variableRequest; variableRequest.variablesReference = local->GetId(); dap::array<dap::Variable> variables = variablesManager->HandleVariablesRequest(variableRequest); ASSERT_TRUE(variables.size() == 1); local.reset(); variables = variablesManager->HandleVariablesRequest(variableRequest); ASSERT_TRUE(variables.size() == 0); return true; } int testDebuggerVariablesManager(int, char*[]) { return runTests({ testVariablesRegistration }); }