| """ |
| Test trimming long progress report in tiny terminal windows |
| """ |
| |
| import os |
| 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", |
| ], |
| ) |