diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2011-05-02 19:34:44 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2011-05-02 19:34:44 +0000 |
commit | 6b943ff3a3f8617113ecbf611cf0f8957e4e19d2 (patch) | |
tree | fc5f365fb9035b2d0c622bbf06c9bbe8627d7279 /utils/lit | |
parent | d0e4e96dc17a6c1c6de3340842c80f0e187ba349 (diff) |
Notes
Diffstat (limited to 'utils/lit')
-rw-r--r-- | utils/lit/lit/ProgressBar.py | 21 | ||||
-rw-r--r-- | utils/lit/lit/TestRunner.py | 15 | ||||
-rw-r--r-- | utils/lit/lit/TestingConfig.py | 2 | ||||
-rw-r--r-- | utils/lit/setup.py | 2 |
4 files changed, 29 insertions, 11 deletions
diff --git a/utils/lit/lit/ProgressBar.py b/utils/lit/lit/ProgressBar.py index 85c95f57f7ac..5c85a175c5ca 100644 --- a/utils/lit/lit/ProgressBar.py +++ b/utils/lit/lit/ProgressBar.py @@ -105,6 +105,7 @@ class TerminalController: # Look up numeric capabilities. self.COLS = curses.tigetnum('cols') self.LINES = curses.tigetnum('lines') + self.XN = curses.tigetflag('xenl') # Look up string capabilities. for capability in self._STRING_CAPABILITIES: @@ -205,7 +206,7 @@ class ProgressBar: The progress bar is colored, if the terminal supports color output; and adjusts to the width of the terminal. """ - BAR = '%s${GREEN}[${BOLD}%s%s${NORMAL}${GREEN}]${NORMAL}%s\n' + BAR = '%s${GREEN}[${BOLD}%s%s${NORMAL}${GREEN}]${NORMAL}%s' HEADER = '${BOLD}${CYAN}%s${NORMAL}\n\n' def __init__(self, term, header, useETA=True): @@ -213,7 +214,15 @@ class ProgressBar: if not (self.term.CLEAR_EOL and self.term.UP and self.term.BOL): raise ValueError("Terminal isn't capable enough -- you " "should use a simpler progress dispaly.") - self.width = self.term.COLS or 75 + self.BOL = self.term.BOL # BoL from col#79 + self.XNL = "\n" # Newline from col#79 + if self.term.COLS: + self.width = self.term.COLS + if not self.term.XN: + self.BOL = self.term.UP + self.term.BOL + self.XNL = "" # Cursor must be fed to the next line + else: + self.width = 75 self.bar = term.render(self.BAR) self.header = self.term.render(self.HEADER % header.center(self.width)) self.cleared = 1 #: true if we haven't drawn the bar yet. @@ -244,15 +253,19 @@ class ProgressBar: else: message = '... ' + message[-(self.width-4):] sys.stdout.write( - self.term.BOL + self.term.UP + self.term.CLEAR_EOL + + self.BOL + self.term.UP + self.term.CLEAR_EOL + (self.bar % (prefix, '='*n, '-'*(barWidth-n), suffix)) + + self.XNL + self.term.CLEAR_EOL + message) + if not self.term.XN: + sys.stdout.flush() def clear(self): if not self.cleared: - sys.stdout.write(self.term.BOL + self.term.CLEAR_EOL + + sys.stdout.write(self.BOL + self.term.CLEAR_EOL + self.term.UP + self.term.CLEAR_EOL + self.term.UP + self.term.CLEAR_EOL) + sys.stdout.flush() self.cleared = 1 def test(): diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py index dba78143bee2..80d0ba118399 100644 --- a/utils/lit/lit/TestRunner.py +++ b/utils/lit/lit/TestRunner.py @@ -337,23 +337,28 @@ def executeTclScriptInternal(test, litConfig, tmpBase, commands, cwd): return out, err, exitCode def executeScript(test, litConfig, tmpBase, commands, cwd): + bashPath = litConfig.getBashPath(); + isWin32CMDEXE = (litConfig.isWindows and not bashPath) script = tmpBase + '.script' - if litConfig.isWindows: + if isWin32CMDEXE: script += '.bat' # Write script file f = open(script,'w') - if litConfig.isWindows: + if isWin32CMDEXE: f.write('\nif %ERRORLEVEL% NEQ 0 EXIT\n'.join(commands)) else: f.write(' &&\n'.join(commands)) f.write('\n') f.close() - if litConfig.isWindows: + if isWin32CMDEXE: command = ['cmd','/c', script] else: - command = ['/bin/sh', script] + if bashPath: + command = [bashPath, script] + else: + command = ['/bin/sh', script] if litConfig.useValgrind: # FIXME: Running valgrind on sh is overkill. We probably could just # run on clang with no real loss. @@ -553,7 +558,7 @@ def executeShTest(test, litConfig, useExternalSh): if test.config.unsupported: return (Test.UNSUPPORTED, 'Test is unsupported') - res = parseIntegratedTestScript(test) + res = parseIntegratedTestScript(test, useExternalSh) if len(res) == 2: return res diff --git a/utils/lit/lit/TestingConfig.py b/utils/lit/lit/TestingConfig.py index 0d9bc00a8357..25bb3417de43 100644 --- a/utils/lit/lit/TestingConfig.py +++ b/utils/lit/lit/TestingConfig.py @@ -17,7 +17,7 @@ class TestingConfig: 'PATHEXT' : os.environ.get('PATHEXT',''), 'SYSTEMROOT' : os.environ.get('SYSTEMROOT',''), 'LLVM_DISABLE_CRT_DEBUG' : '1', - 'PRINTF_EXPONENT_DIGITS' : '2', + 'PYTHONUNBUFFERED' : '1', } config = TestingConfig(parent, diff --git a/utils/lit/setup.py b/utils/lit/setup.py index 738ee23776d8..a94e6ea833e9 100644 --- a/utils/lit/setup.py +++ b/utils/lit/setup.py @@ -38,7 +38,7 @@ Features Documentation ============= -The offical *lit* documentation is in the man page, available online at the LLVM +The official *lit* documentation is in the man page, available online at the LLVM Command Guide: http://llvm.org/cmds/lit.html. |