| #!/usr/bin/python |
| # Copyright 2015 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Support functions for extended command based testing.""" |
| |
| import sys |
| |
| if hasattr(sys.stdout, 'isatty') and sys.stdout.isatty(): |
| cursor_back_cmd = '\x1b[1D' # Move one space to the left. |
| else: |
| cursor_back_cmd = '' |
| |
| |
| def cursor_back(): |
| """Return a string which would move cursor one space left, if available. |
| |
| This is used to remove the remaining 'spinner' character after the test |
| completes and its result is printed on the same line where the 'spinner' was |
| spinning. |
| |
| """ |
| return cursor_back_cmd |
| |
| |
| def hex_dump(binstr): |
| """Convert binary string into its multiline hex representation.""" |
| |
| dump_lines = ['',] |
| i = 0 |
| while i < len(binstr): |
| strsize = min(16, len(binstr) - i) |
| hexstr = ' '.join('%2.2x' % ord(x) for x in binstr[i:i+strsize]) |
| dump_lines.append(hexstr) |
| i += strsize |
| dump_lines.append('') |
| return '\n'.join(dump_lines) |