| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
| file LICENSE.rst or https://cmake.org/licensing for details. */ | |
| #include <memory> | |
| #include <string> | |
| #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 }); | |
| } |