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 # These are not very useful in scripts 46 gdb.execute("set pagination off") 47 gdb.execute("set confirm off") 48 49 # Run the actual tests 50 run_test() 51except (gdb.error): 52 print ("GDB Exception: %s" % (sys.exc_info()[0])) 53 failcount += 1 54 pass 55 56print("All tests complete: %d failures" % failcount) 57exit(failcount) 58