1*051a5ae9SMed Ismail Bennani""" 2*051a5ae9SMed Ismail BennaniTest trimming long progress report in tiny terminal windows 3*051a5ae9SMed Ismail Bennani""" 4*051a5ae9SMed Ismail Bennani 5*051a5ae9SMed Ismail Bennaniimport os 6*051a5ae9SMed Ismail Bennaniimport pexpect 7*051a5ae9SMed Ismail Bennaniimport tempfile 8*051a5ae9SMed Ismail Bennaniimport re 9*051a5ae9SMed Ismail Bennani 10*051a5ae9SMed Ismail Bennaniimport lldb 11*051a5ae9SMed Ismail Bennanifrom lldbsuite.test.decorators import * 12*051a5ae9SMed Ismail Bennanifrom lldbsuite.test.lldbtest import * 13*051a5ae9SMed Ismail Bennanifrom lldbsuite.test.lldbpexpect import PExpectTest 14*051a5ae9SMed Ismail Bennani 15*051a5ae9SMed Ismail Bennaniclass TestTrimmedProgressReporting(PExpectTest): 16*051a5ae9SMed Ismail Bennani 17*051a5ae9SMed Ismail Bennani def do_test(self, term_width, pattern_list): 18*051a5ae9SMed Ismail Bennani self.build() 19*051a5ae9SMed Ismail Bennani # Start with a small window 20*051a5ae9SMed Ismail Bennani self.launch(use_colors=True) 21*051a5ae9SMed Ismail Bennani self.expect("set set show-progress true") 22*051a5ae9SMed Ismail Bennani self.expect("set show show-progress", substrs=["show-progress (boolean) = true"]) 23*051a5ae9SMed Ismail Bennani self.expect("set set term-width " + str(term_width)) 24*051a5ae9SMed Ismail Bennani self.expect("set show term-width", substrs=["term-width (int) = " + str(term_width)]) 25*051a5ae9SMed Ismail Bennani 26*051a5ae9SMed Ismail Bennani self.child.send("file " + self.getBuildArtifact("a.out") + "\n") 27*051a5ae9SMed Ismail Bennani self.child.expect(pattern_list) 28*051a5ae9SMed Ismail Bennani 29*051a5ae9SMed Ismail Bennani 30*051a5ae9SMed Ismail Bennani # PExpect uses many timeouts internally and doesn't play well 31*051a5ae9SMed Ismail Bennani # under ASAN on a loaded machine.. 32*051a5ae9SMed Ismail Bennani @skipIfAsan 33*051a5ae9SMed Ismail Bennani @skipUnlessDarwin 34*051a5ae9SMed Ismail Bennani @skipIfEditlineSupportMissing 35*051a5ae9SMed Ismail Bennani def test_trimmed_progress_message(self): 36*051a5ae9SMed Ismail Bennani self.do_test(19, ['Locating externa...', 37*051a5ae9SMed Ismail Bennani 'Loading Apple DW...', 38*051a5ae9SMed Ismail Bennani 'Parsing symbol t...']) 39*051a5ae9SMed Ismail Bennani 40*051a5ae9SMed Ismail Bennani # PExpect uses many timeouts internally and doesn't play well 41*051a5ae9SMed Ismail Bennani # under ASAN on a loaded machine.. 42*051a5ae9SMed Ismail Bennani @skipIfAsan 43*051a5ae9SMed Ismail Bennani @skipUnlessDarwin 44*051a5ae9SMed Ismail Bennani @skipIfEditlineSupportMissing 45*051a5ae9SMed Ismail Bennani def test_long_progress_message(self): 46*051a5ae9SMed Ismail Bennani self.do_test(80, ['Locating external symbol file for a.out...', 47*051a5ae9SMed Ismail Bennani 'Loading Apple DWARF index for a.out...', 48*051a5ae9SMed Ismail Bennani 'Parsing symbol table for dyld...']) 49