Skip to content

Commit 2d56e1d

Browse files
committed
Rebase and refactor SBProgress, add positive and negative test cases
1 parent 956c600 commit 2d56e1d

File tree

2 files changed

+42
-4
lines changed

2 files changed

+42
-4
lines changed

lldb/source/API/SBProgress.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,24 +10,26 @@
1010
#include "lldb/Core/Progress.h"
1111
#include "lldb/Utility/Instrumentation.h"
1212

13-
#include "Utils.h"
14-
1513
using namespace lldb;
1614

1715
SBProgress::SBProgress(const char *title, const char *details,
1816
SBDebugger &debugger) {
1917
LLDB_INSTRUMENT_VA(this, title, details, debugger);
2018

2119
m_opaque_up = std::make_unique<lldb_private::Progress>(
22-
title, details, std::nullopt, debugger.get());
20+
title, details, /*total=*/std::nullopt, debugger.get(),
21+
/*minimum_report_time=*/std::nullopt,
22+
lldb_private::Progress::Origin::eExternal);
2323
}
2424

2525
SBProgress::SBProgress(const char *title, const char *details,
2626
uint64_t total_units, SBDebugger &debugger) {
2727
LLDB_INSTRUMENT_VA(this, title, details, total_units, debugger);
2828

2929
m_opaque_up = std::make_unique<lldb_private::Progress>(
30-
title, details, total_units, debugger.get());
30+
title, details, total_units, debugger.get(),
31+
/*minimum_report_time=*/std::nullopt,
32+
lldb_private::Progress::Origin::eExternal);
3133
}
3234

3335
SBProgress::~SBProgress() = default;
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
"""Test the SBProgress API."""
2+
3+
import lldb
4+
from lldbsuite.test.lldbtest import *
5+
6+
7+
class SBProgressTestCase(TestBase):
8+
9+
def test_with_external_bit_set(self):
10+
"""Test SBProgress events are listened to when the external bit is set."""
11+
12+
progress = lldb.SBProgress("Test SBProgress", "Test progress", self.dbg)
13+
listener = lldb.SBListener("Test listener")
14+
broadcaster = self.dbg.GetBroadcaster()
15+
broadcaster.AddListener(listener, lldb.eBroadcastBitExternalProgress)
16+
event = lldb.SBEvent()
17+
18+
expected_string = "Test progress first increment"
19+
progress.Increment(1, expected_string)
20+
self.assertTrue(listener.PeekAtNextEvent(event))
21+
stream = lldb.SBStream()
22+
event.GetDescription(stream)
23+
self.assertTrue(expected_string in stream.GetData())
24+
25+
def test_without_external_bit_set(self):
26+
"""Test SBProgress events are not listened to on the internal progress bit."""
27+
28+
progress = lldb.SBProgress("Test SBProgress", "Test progress", self.dbg)
29+
listener = lldb.SBListener("Test listener")
30+
broadcaster = self.dbg.GetBroadcaster()
31+
broadcaster.AddListener(listener, lldb.eBroadcastBitProgress)
32+
event = lldb.SBEvent()
33+
34+
expected_string = "Test progress first increment"
35+
progress.Increment(1, expected_string)
36+
self.assertFalse(listener.PeekAtNextEvent(event))

0 commit comments

Comments
 (0)