]> git.puffer.fish Git - matthieu/frr.git/commitdiff
topotests: fix looging of memstat results
authorLou Berger <lberger@labn.net>
Sun, 2 Oct 2022 23:24:36 +0000 (23:24 +0000)
committerChristian Hopps <chopps@labn.net>
Thu, 11 May 2023 11:46:18 +0000 (07:46 -0400)
Signed-off-by: Lou Berger <lberger@labn.net>
tests/topotests/lib/topotest.py

index 967f09ecbd900e6e1fb2e4975c9fe573b4d5d4b2..9c594d3c8efdd0913a2079ed49b9b9dc33a9cc78 100644 (file)
@@ -1469,21 +1469,22 @@ class Router(Node):
                 if not running:
                     break
 
-        if not running:
-            return ""
-
-        logger.warning(
-            "%s: sending SIGBUS to: %s", self.name, ", ".join([x[0] for x in running])
-        )
-        for name, pid in running:
-            pidfile = "/var/run/{}/{}.pid".format(self.routertype, name)
-            logger.info("%s: killing %s", self.name, name)
-            self.cmd("kill -SIGBUS %d" % pid)
-            self.cmd("rm -- " + pidfile)
-
-        sleep(
-            0.5, "%s: waiting for daemons to exit/core after initial SIGBUS" % self.name
-        )
+        if running:
+            logger.warning(
+                "%s: sending SIGBUS to: %s",
+                self.name,
+                ", ".join([x[0] for x in running]),
+            )
+            for name, pid in running:
+                pidfile = "/var/run/{}/{}.pid".format(self.routertype, name)
+                logger.info("%s: killing %s", self.name, name)
+                self.cmd("kill -SIGBUS %d" % pid)
+                self.cmd("rm -- " + pidfile)
+
+            sleep(
+                0.5,
+                "%s: waiting for daemons to exit/core after initial SIGBUS" % self.name,
+            )
 
         errors = self.checkRouterCores(reportOnce=True)
         if self.checkRouterVersion("<", minErrorVersion):
@@ -1683,7 +1684,11 @@ class Router(Node):
         return self.getLog("out", daemon)
 
     def getLog(self, log, daemon):
-        return self.cmd("cat {}/{}/{}.{}".format(self.logdir, self.name, daemon, log))
+        filename = "{}/{}/{}.{}".format(self.logdir, self.name, daemon, log)
+        log = ""
+        with open(filename) as file:
+            log = file.read()
+        return log
 
     def startRouterDaemons(self, daemons=None, tgen=None):
         "Starts FRR daemons for this router."
@@ -1841,9 +1846,13 @@ class Router(Node):
                 logger.info(
                     "%s: %s %s launched in gdb window", self, self.routertype, daemon
                 )
-            elif daemon in perfds and (self.name in perfds[daemon] or "all" in perfds[daemon]):
+            elif daemon in perfds and (
+                self.name in perfds[daemon] or "all" in perfds[daemon]
+            ):
                 cmdopt += rediropt
-                cmd = " ".join(["perf record {} --".format(perf_options), binary, cmdopt])
+                cmd = " ".join(
+                    ["perf record {} --".format(perf_options), binary, cmdopt]
+                )
                 p = self.popen(cmd)
                 self.perf_daemons[daemon] = p
                 if p.poll() and p.returncode: