1from __future__ import print_function 2# 3# Test auxiliary vector is loaded via gdbstub 4# 5# This is launched via tests/guest-debug/run-test.py 6# 7 8import gdb 9import sys 10 11failcount = 0 12 13def report(cond, msg): 14 "Report success/fail of test" 15 if cond: 16 print ("PASS: %s" % (msg)) 17 else: 18 print ("FAIL: %s" % (msg)) 19 global failcount 20 failcount += 1 21 22def run_test(): 23 "Run through the tests one by one" 24 25 auxv = gdb.execute("info auxv", False, True) 26 report(isinstance(auxv, str), "Fetched auxv from inferior") 27 report(auxv.find("sha1"), "Found test binary name in auxv") 28 29# 30# This runs as the script it sourced (via -x, via run-test.py) 31# 32try: 33 inferior = gdb.selected_inferior() 34 arch = inferior.architecture() 35 print("ATTACHED: %s" % arch.name()) 36except (gdb.error, AttributeError): 37 print("SKIPPING (not connected)", file=sys.stderr) 38 exit(0) 39 40if gdb.parse_and_eval('$pc') == 0: 41 print("SKIP: PC not set") 42 exit(0) 43 44try: 45 # Run the actual tests 46 run_test() 47except (gdb.error): 48 print ("GDB Exception: %s" % (sys.exc_info()[0])) 49 failcount += 1 50 pass 51 52print("All tests complete: %d failures" % failcount) 53exit(failcount) 54