blob: 28da96d14e846e46eae2d3ac568bf5a87283c966 [file] [edit]
//===----------------------------------------------------------------------===//
//
// 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/ProtocolEvents.h"
#include "TestingSupport/TestUtilities.h"
#include "llvm/Testing/Support/Error.h"
#include <gtest/gtest.h>
using namespace llvm;
using namespace lldb_dap::protocol;
using lldb_private::PrettyPrint;
using llvm::json::parse;
using llvm::json::Value;
TEST(ProtocolEventsTest, StoppedEventBody) {
StoppedEventBody body;
body.reason = lldb_dap::protocol::eStoppedReasonBreakpoint;
Expected<Value> expected_body = parse(R"({
"reason": "breakpoint"
})");
ASSERT_THAT_EXPECTED(expected_body, llvm::Succeeded());
EXPECT_EQ(PrettyPrint(*expected_body), PrettyPrint(body));
body.reason = eStoppedReasonBreakpoint;
body.description = "desc";
body.text = "text";
body.preserveFocusHint = true;
body.allThreadsStopped = true;
body.hitBreakpointIds = {1, 2, 3};
expected_body = parse(R"({
"reason": "breakpoint",
"allThreadsStopped": true,
"description": "desc",
"text": "text",
"preserveFocusHint": true,
"hitBreakpointIds": [1, 2, 3]
})");
ASSERT_THAT_EXPECTED(expected_body, llvm::Succeeded());
EXPECT_EQ(PrettyPrint(*expected_body), PrettyPrint(body));
}
TEST(ProtocolEventsTest, ProgressStartEventBody) {
ProgressStartEventBody body;
body.progressId = "1";
body.title = "Parsing symbols";
Expected<Value> expected_body = parse(R"({
"progressId": "1",
"title": "Parsing symbols"
})");
ASSERT_THAT_EXPECTED(expected_body, llvm::Succeeded());
EXPECT_EQ(PrettyPrint(*expected_body), PrettyPrint(body));
body.message = "foo.cpp";
body.requestId = 30;
body.percentage = 25;
body.cancellable = true;
expected_body = parse(R"({
"progressId": "1",
"title": "Parsing symbols",
"message": "foo.cpp",
"requestId": 30,
"percentage": 25,
"cancellable": true
})");
ASSERT_THAT_EXPECTED(expected_body, llvm::Succeeded());
EXPECT_EQ(PrettyPrint(*expected_body), PrettyPrint(body));
}
TEST(ProtocolEventsTest, ProgressUpdateEventBody) {
ProgressUpdateEventBody body;
body.progressId = "1";
Expected<Value> expected_body = parse(R"({
"progressId": "1"
})");
ASSERT_THAT_EXPECTED(expected_body, llvm::Succeeded());
EXPECT_EQ(PrettyPrint(*expected_body), PrettyPrint(body));
body.message = "bar.cpp";
body.percentage = 75;
expected_body = parse(R"({
"progressId": "1",
"message": "bar.cpp",
"percentage": 75
})");
ASSERT_THAT_EXPECTED(expected_body, llvm::Succeeded());
EXPECT_EQ(PrettyPrint(*expected_body), PrettyPrint(body));
}
TEST(ProtocolEventsTest, ProgressEndEventBody) {
ProgressEndEventBody body;
body.progressId = "1";
Expected<Value> expected_body = parse(R"({
"progressId": "1"
})");
ASSERT_THAT_EXPECTED(expected_body, llvm::Succeeded());
EXPECT_EQ(PrettyPrint(*expected_body), PrettyPrint(body));
body.message = "done.";
expected_body = parse(R"({
"progressId": "1",
"message": "done."
})");
ASSERT_THAT_EXPECTED(expected_body, llvm::Succeeded());
EXPECT_EQ(PrettyPrint(*expected_body), PrettyPrint(body));
}