Files
clang-p2996/lldb/test/API/functionalities/progress_reporting/TestTrimmedProgressReporting.py
Jonas Devlieghere afd469023a [lldb] Fix term-width setting (#82736)
I noticed that the term-width setting would always report its default
value (80) despite the driver correctly setting the value with
SBDebugger::SetTerminalWidth.

```
(lldb) settings show term-width
term-width (int) = 80
```

The issue is that the setting was defined as a SInt64 instead of a
UInt64 while the getter returned an unsigned value. There's no reason
the terminal width should be a signed value. My best guess it that it
was using SInt64 because UInt64 didn't support min and max values. I
fixed that and correct the type and now lldb reports the correct
terminal width:

```
(lldb) settings show term-width
term-width (unsigned) = 189
```

rdar://123488999
2024-02-22 21:48:49 -08:00

53 lines
1.5 KiB
Python

"""
Test trimming long progress report in tiny terminal windows
"""
import os
import pexpect
import tempfile
import re
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test.lldbpexpect import PExpectTest
class TestTrimmedProgressReporting(PExpectTest):
def do_test(self, term_width, pattern_list):
self.build()
# Start with a small window
self.launch(use_colors=True)
self.expect("set set show-progress true")
self.expect(
"set show show-progress", substrs=["show-progress (boolean) = true"]
)
self.expect("set set term-width " + str(term_width))
self.expect(
"set show term-width",
substrs=["term-width (unsigned) = " + str(term_width)],
)
self.child.send("file " + self.getBuildArtifact("a.out") + "\n")
self.child.expect(pattern_list)
# PExpect uses many timeouts internally and doesn't play well
# under ASAN on a loaded machine..
@skipIfAsan
@skipIfEditlineSupportMissing
def test_trimmed_progress_message(self):
self.do_test(19, ["Locating e...", "Parsing sy..."])
# PExpect uses many timeouts internally and doesn't play well
# under ASAN on a loaded machine..
@skipIfAsan
@skipIfEditlineSupportMissing
def test_long_progress_message(self):
self.do_test(
80,
[
"Locating external symbol file",
"Parsing symbol table",
],
)