1051a5ae9SMed Ismail Bennani""" 2051a5ae9SMed Ismail BennaniTest trimming long progress report in tiny terminal windows 3051a5ae9SMed Ismail Bennani""" 4051a5ae9SMed Ismail Bennani 5051a5ae9SMed Ismail Bennaniimport os 6051a5ae9SMed Ismail Bennaniimport tempfile 7051a5ae9SMed Ismail Bennaniimport re 8051a5ae9SMed Ismail Bennani 9051a5ae9SMed Ismail Bennaniimport lldb 10051a5ae9SMed Ismail Bennanifrom lldbsuite.test.decorators import * 11051a5ae9SMed Ismail Bennanifrom lldbsuite.test.lldbtest import * 12051a5ae9SMed Ismail Bennanifrom lldbsuite.test.lldbpexpect import PExpectTest 13051a5ae9SMed Ismail Bennani 14051a5ae9SMed Ismail Bennani 152238dcc3SJonas Devlieghereclass TestTrimmedProgressReporting(PExpectTest): 16051a5ae9SMed Ismail Bennani def do_test(self, term_width, pattern_list): 17051a5ae9SMed Ismail Bennani self.build() 18051a5ae9SMed Ismail Bennani # Start with a small window 19051a5ae9SMed Ismail Bennani self.launch(use_colors=True) 20051a5ae9SMed Ismail Bennani self.expect("set set show-progress true") 212238dcc3SJonas Devlieghere self.expect( 222238dcc3SJonas Devlieghere "set show show-progress", substrs=["show-progress (boolean) = true"] 232238dcc3SJonas Devlieghere ) 24051a5ae9SMed Ismail Bennani self.expect("set set term-width " + str(term_width)) 252238dcc3SJonas Devlieghere self.expect( 26*afd46902SJonas Devlieghere "set show term-width", 27*afd46902SJonas Devlieghere substrs=["term-width (unsigned) = " + str(term_width)], 282238dcc3SJonas Devlieghere ) 29051a5ae9SMed Ismail Bennani 30051a5ae9SMed Ismail Bennani self.child.send("file " + self.getBuildArtifact("a.out") + "\n") 31051a5ae9SMed Ismail Bennani self.child.expect(pattern_list) 32051a5ae9SMed Ismail Bennani 33051a5ae9SMed Ismail Bennani # PExpect uses many timeouts internally and doesn't play well 34051a5ae9SMed Ismail Bennani # under ASAN on a loaded machine.. 35051a5ae9SMed Ismail Bennani @skipIfAsan 36051a5ae9SMed Ismail Bennani @skipIfEditlineSupportMissing 37051a5ae9SMed Ismail Bennani def test_trimmed_progress_message(self): 388947469eSChelsea Cassanova self.do_test(19, ["Locating e...", "Parsing sy..."]) 39051a5ae9SMed Ismail Bennani 40051a5ae9SMed Ismail Bennani # PExpect uses many timeouts internally and doesn't play well 41051a5ae9SMed Ismail Bennani # under ASAN on a loaded machine.. 42051a5ae9SMed Ismail Bennani @skipIfAsan 43051a5ae9SMed Ismail Bennani @skipIfEditlineSupportMissing 44051a5ae9SMed Ismail Bennani def test_long_progress_message(self): 452238dcc3SJonas Devlieghere self.do_test( 462238dcc3SJonas Devlieghere 80, 472238dcc3SJonas Devlieghere [ 488947469eSChelsea Cassanova "Locating external symbol file", 498947469eSChelsea Cassanova "Parsing symbol table", 502238dcc3SJonas Devlieghere ], 512238dcc3SJonas Devlieghere ) 52