diff options
Diffstat (limited to 'test/tpm_test/utils.py')
-rw-r--r-- | test/tpm_test/utils.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/tpm_test/utils.py b/test/tpm_test/utils.py new file mode 100644 index 0000000000..233a97eeff --- /dev/null +++ b/test/tpm_test/utils.py @@ -0,0 +1,38 @@ +#!/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) |