summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonatas Abraitis <donatas@opensourcerouting.org>2025-04-17 18:18:26 +0300
committerGitHub <noreply@github.com>2025-04-17 18:18:26 +0300
commit0850ae7db7257a4db19b072a9c6b28b8ff9f9605 (patch)
treebd99b9bc5dce5b0174cede5878646a06394c33d5
parent2892c20097599d637d13902920110fb3f8557976 (diff)
parentbb6f2c2fb04fa6c2faf2967a5a84c8b81b0aedd9 (diff)
Merge pull request #18658 from y-bharath14/srib-tests-v12
tests: Resource leak in common_config.py
-rw-r--r--tests/topotests/lib/common_config.py66
1 files changed, 34 insertions, 32 deletions
diff --git a/tests/topotests/lib/common_config.py b/tests/topotests/lib/common_config.py
index 54142e8526..a19c61b19d 100644
--- a/tests/topotests/lib/common_config.py
+++ b/tests/topotests/lib/common_config.py
@@ -330,13 +330,12 @@ def create_common_configurations(
for router in routers:
fname = "{}/{}/{}".format(tgen.logdir, router, FRRCFG_FILE)
try:
- frr_cfg_fd = open(fname, mode)
- if config_type:
- frr_cfg_fd.write(config_map[config_type])
- for line in config_dict[router]:
- frr_cfg_fd.write("{} \n".format(str(line)))
- frr_cfg_fd.write("\n")
-
+ with open(fname, mode) as frr_cfg_fd:
+ if config_type:
+ frr_cfg_fd.write(config_map[config_type])
+ for line in config_dict[router]:
+ frr_cfg_fd.write("{} \n".format(str(line)))
+ frr_cfg_fd.write("\n")
except IOError as err:
logger.error("Unable to open FRR Config '%s': %s" % (fname, str(err)))
return False
@@ -487,12 +486,13 @@ def save_initial_config_on_routers(tgen):
procs = {}
for rname in router_list:
logger.debug("Fetching running config for router %s", rname)
- procs[rname] = router_list[rname].popen(
- ["/usr/bin/env", "vtysh", "-c", "show running-config no-header"],
- stdin=None,
- stdout=open(target_cfg_fmt.format(rname), "w"),
- stderr=subprocess.PIPE,
- )
+ with open(target_cfg_fmt.format(rname), "w") as target_cfg_fd:
+ procs[rname] = router_list[rname].popen(
+ ["/usr/bin/env", "vtysh", "-c", "show running-config no-header"],
+ stdin=None,
+ stdout=target_cfg_fd,
+ stderr=subprocess.PIPE,
+ )
for rname, p in procs.items():
_, error = p.communicate()
if p.returncode:
@@ -543,12 +543,13 @@ def reset_config_on_routers(tgen, routerName=None):
procs = {}
for rname in router_list:
logger.debug("Fetching running config for router %s", rname)
- procs[rname] = router_list[rname].popen(
- ["/usr/bin/env", "vtysh", "-c", "show running-config no-header"],
- stdin=None,
- stdout=open(run_cfg_fmt.format(rname, gen), "w"),
- stderr=subprocess.PIPE,
- )
+ with open(run_cfg_fmt.format(rname, gen), "w") as run_cfg_fd:
+ procs[rname] = router_list[rname].popen(
+ ["/usr/bin/env", "vtysh", "-c", "show running-config no-header"],
+ stdin=None,
+ stdout=run_cfg_fd,
+ stderr=subprocess.PIPE,
+ )
for rname, p in procs.items():
_, error = p.communicate()
if p.returncode:
@@ -567,19 +568,20 @@ def reset_config_on_routers(tgen, routerName=None):
logger.debug(
"Generating delta for router %s to new configuration (gen %d)", rname, gen
)
- procs[rname] = tgen.net.popen(
- [
- "/usr/lib/frr/frr-reload.py",
- "--test-reset",
- "--input",
- run_cfg_fmt.format(rname, gen),
- "--test",
- target_cfg_fmt.format(rname),
- ],
- stdin=None,
- stdout=open(delta_fmt.format(rname, gen), "w"),
- stderr=subprocess.PIPE,
- )
+ with open(delta_fmt.format(rname, gen), "w") as delta_fd:
+ procs[rname] = tgen.net.popen(
+ [
+ "/usr/lib/frr/frr-reload.py",
+ "--test-reset",
+ "--input",
+ run_cfg_fmt.format(rname, gen),
+ "--test",
+ target_cfg_fmt.format(rname),
+ ],
+ stdin=None,
+ stdout=delta_fd,
+ stderr=subprocess.PIPE,
+ )
for rname, p in procs.items():
_, error = p.communicate()
if p.returncode: