diff options
| author | Christian Hopps <chopps@labn.net> | 2023-04-19 00:48:11 -0400 |
|---|---|---|
| committer | Christian Hopps <chopps@labn.net> | 2023-04-21 22:10:54 -0400 |
| commit | ff28990ee4312570c6e340b4421b6316d2c51a87 (patch) | |
| tree | c0c4cd18a4ac1421e8ec9e28857936744989f804 /tests/topotests/lib/topotest.py | |
| parent | 773fd82ed5b632e0e33004d3f9a80f6a60fab9f0 (diff) | |
tests: add --logd option
Signed-off-by: Christian Hopps <chopps@labn.net>
Diffstat (limited to 'tests/topotests/lib/topotest.py')
| -rw-r--r-- | tests/topotests/lib/topotest.py | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/tests/topotests/lib/topotest.py b/tests/topotests/lib/topotest.py index c3d5f05f40..b034852de5 100644 --- a/tests/topotests/lib/topotest.py +++ b/tests/topotests/lib/topotest.py @@ -1747,6 +1747,16 @@ class Router(Node): os.path.join(self.daemondir, "bgpd") + " -v" ).split()[2] logger.info("{}: running version: {}".format(self.name, self.version)) + + logd_options = {} + for logd in g_pytest_config.get_option("--logd", []): + if "," in logd: + daemon, routers = logd.split(",", 1) + logd_options[daemon] = routers.split(",") + else: + daemon = logd + logd_options[daemon] = ["all"] + # If `daemons` was specified then some upper API called us with # specific daemons, otherwise just use our own configuration. daemons_list = [] @@ -1758,6 +1768,8 @@ class Router(Node): if self.daemons[daemon] == 1: daemons_list.append(daemon) + tail_log_files = [] + def start_daemon(daemon, extra_opts=None): daemon_opts = self.daemons_options.get(daemon, "") rediropt = " > {0}.out 2> {0}.err".format(daemon) @@ -1796,9 +1808,16 @@ class Router(Node): daemon, self.logdir, self.name ) - cmdopt = "{} --command-log-always --log file:{}.log --log-level debug".format( - daemon_opts, daemon - ) + cmdopt = "{} --command-log-always ".format(daemon_opts) + cmdopt += "--log file:{}.log --log-level debug".format(daemon) + + if daemon in logd_options: + logdopt = logd_options[daemon] + if "all" in logdopt or self.name in logdopt: + tail_log_files.append( + "{}/{}/{}.log".format(self.logdir, self.name, daemon) + ) + if extra_opts: cmdopt += " " + extra_opts @@ -1893,6 +1912,14 @@ class Router(Node): self.cmd("chown frr:frr -R {}/{}".format(self.logdir, self.name)) self.cmd("chmod ug+rwX,o+r -R {}/{}".format(self.logdir, self.name)) + if "frr" in logd_options: + logdopt = logd_options["frr"] + if "all" in logdopt or self.name in logdopt: + tail_log_files.append("{}/{}/frr.log".format(self.logdir, self.name)) + + for tailf in tail_log_files: + self.run_in_window("tail -f " + tailf, title=tailf, background=True) + return "" def killRouterDaemons( |
