Don't eat compile errors.
[riscv-tests.git] / debug / testlib.py
index b8e9ad4d209c47e41865e4aab933ab6d99d90504..c9b3f8dd4e00e3e5a1899c1dc27c25f72d2550ae 100644 (file)
@@ -165,14 +165,19 @@ class Openocd(object):
         PORT_REGEX = re.compile(r'(?P<port>\d+) \(LISTEN\)')
         for _ in range(MAX_ATTEMPTS):
             with open(os.devnull, 'w') as devnull:
-                output = subprocess.check_output([
-                    'lsof',
-                    '-a',  # Take the AND of the following selectors
-                    '-p{}'.format(self.process.pid),  # Filter on PID
-                    '-iTCP',  # Filter only TCP sockets
-                ], stderr=devnull)
+                try:
+                    output = subprocess.check_output([
+                        'lsof',
+                        '-a',  # Take the AND of the following selectors
+                        '-p{}'.format(self.process.pid),  # Filter on PID
+                        '-iTCP',  # Filter only TCP sockets
+                    ], stderr=devnull)
+                except subprocess.CalledProcessError:
+                    output = ""
             matches = list(PORT_REGEX.finditer(output))
+            matches = [m for m in matches if m.group('port') not in ('6666', '4444')]
             if len(matches) > 1:
+                print output
                 raise Exception(
                     "OpenOCD listening on multiple ports. Cannot uniquely "
                     "identify gdb server port.")
@@ -369,18 +374,9 @@ class BaseTest(object):
         compile_args = getattr(self, 'compile_args', None)
         if compile_args:
             if compile_args not in BaseTest.compiled:
-                try:
-                    # pylint: disable=star-args
-                    BaseTest.compiled[compile_args] = \
-                            self.target.compile(*compile_args)
-                except Exception: # pylint: disable=broad-except
-                    print "exception while compiling in %.2fs" % (
-                            time.time() - self.start)
-                    print "=" * 40
-                    header("Traceback")
-                    traceback.print_exc(file=sys.stdout)
-                    print "/" * 40
-                    return "exception"
+                # pylint: disable=star-args
+                BaseTest.compiled[compile_args] = \
+                        self.target.compile(*compile_args)
         self.binary = BaseTest.compiled.get(compile_args)
 
     def classSetup(self):