summaryrefslogtreecommitdiff
path: root/test/tpm_test/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/tpm_test/utils.py')
-rw-r--r--test/tpm_test/utils.py38
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)