]> xenbits.xensource.com Git - people/pauldu/xen.git/commitdiff
xen/tools: Fix gen-cpuid.py's ability to report errors
authorAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 26 Nov 2018 12:03:07 +0000 (12:03 +0000)
committerWei Liu <wei.liu2@citrix.com>
Tue, 27 Nov 2018 16:57:41 +0000 (16:57 +0000)
c/s 18596903 "xen/tools: support Python 2 and Python 3" unfortunately
introduced a TypeError when changing how Fail exceptions were printed:

  /local/xen.git/xen/../xen/tools/gen-cpuid.py:Traceback (most recent call last):
    File "/local/xen.git/xen/../xen/tools/gen-cpuid.py", line 483, in <module>
        sys.stderr.write(e)
  TypeError: expected a character buffer object

Coerce e to a string before printing.  While changing this, fold the three
write() calls making up the line into a single one, and take the opportunity
to neaten the output.

A sample error is:

  /local/xen.git/xen/tools/gen-cpuid.py: Fail: Aliased value between FOO and BAR

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
xen/tools/gen-cpuid.py

index 31fdee951e0a06a677e87c56323fcb9a66816ea1..27569bdd38236b751a7ba7578d7a28579920991d 100755 (executable)
@@ -479,9 +479,8 @@ if __name__ == "__main__":
         sys.exit(main())
     except Fail:
         e = sys.exc_info()[1]
-        sys.stderr.write("%s:" % (sys.argv[0],))
-        sys.stderr.write(e)
-        sys.stderr.write("\n")
+        sys.stderr.write("%s: Fail: %s\n" %
+                         (os.path.abspath(sys.argv[0]), str(e)))
         sys.exit(1)
     except SystemExit:
         e = sys.exc_info()[1]