Add back code to clean up triggers in entry.S
[riscv-tests.git] / debug / testlib.py
index b59e6e81e9ac1a5cff2c8de45c0868069dbece6b..ce2ec2e16d7675b4c410bde62986753663aa1ffc 100644 (file)
@@ -261,7 +261,7 @@ class Openocd(object):
         try:
             self.process.kill()
             self.process.wait()
-        except OSError:
+        except (OSError, AttributeError):
             pass
 
 class OpenocdCli(object):
@@ -416,8 +416,9 @@ def run_all_tests(module, target, parsed):
     todo = []
     if parsed.misaval:
         target.misa = int(parsed.misaval, 16)
-        print "Assuming $MISA value of 0x%x. Skipping ExamineTarget." % \
-                target.misa
+        print "Using $misa from command line: 0x%x" % target.misa
+    elif target.misa:
+        print "Using $misa from target definition: 0x%x" % target.misa
     else:
         todo.append(("ExamineTarget", ExamineTarget))
 
@@ -538,9 +539,16 @@ class BaseTest(object):
 
     def classSetup(self):
         self.compile()
-        self.target_process = self.target.target()
-        self.server = self.target.server()
-        self.logs.append(self.server.logname)
+        self.target_process = self.target.create()
+        if self.target_process:
+            self.logs.append(self.target_process.logname)
+        try:
+            self.server = self.target.server()
+            self.logs.append(self.server.logname)
+        except Exception:
+            for log in self.logs:
+                print_log(log)
+            raise
 
     def classTeardown(self):
         del self.server
@@ -563,9 +571,8 @@ class BaseTest(object):
 
         self.start = time.time()
 
-        self.classSetup()
-
         try:
+            self.classSetup()
             self.setup()
             result = self.test()    # pylint: disable=no-member
         except TestNotApplicable:
@@ -621,6 +628,9 @@ class GdbTest(BaseTest):
             thread = random.choice(self.gdb.threads())
             self.gdb.thread(thread)
 
+        for cmd in self.target.gdb_setup:
+            self.gdb.command(cmd)
+
         # FIXME: OpenOCD doesn't handle PRIV now
         #self.gdb.p("$priv=3")