return False
-def test_named_shutdown(named_port, control_port):
+# We test named shutting down using two methods:
+# Method 1: using rndc ctop
+# Method 2: killing with SIGTERM
+# In both methods named should exit gracefully.
+@pytest.mark.parametrize("kill_method", [
+ "rndc",
+ "sigtem"
+])
+def test_named_shutdown(named_port, control_port, kill_method):
# pylint: disable-msg=too-many-locals
cfg_dir = os.path.join(os.getcwd(), "resolver")
assert os.path.isdir(cfg_dir)
resolver.nameservers = ["10.53.0.3"]
resolver.port = named_port
- # We test named shutting down using two methods:
- # Method 1: using rndc ctop
- # Method 2: killing with SIGTERM
- # In both methods named should exit gracefully.
- for kill_method in ("rndc", "sigterm"):
- named_cmdline = [named, "-c", cfg_file, "-f"]
- with subprocess.Popen(named_cmdline, cwd=cfg_dir) as named_proc:
- try:
- assert named_proc.poll() is None, "named isn't running"
- assert wait_for_named_loaded(resolver)
- do_work(
- named_proc,
- resolver,
- rndc_cmd,
- kill_method,
- n_workers=12,
- n_queries=16,
- )
- assert wait_for_proc_termination(named_proc)
- assert named_proc.returncode == 0, "named crashed"
- finally: # Ensure named is terminated in case of an exception
- named_proc.kill()
+ named_cmdline = [named, "-c", cfg_file, "-f"]
+ with subprocess.Popen(named_cmdline, cwd=cfg_dir) as named_proc:
+ try:
+ assert named_proc.poll() is None, "named isn't running"
+ assert wait_for_named_loaded(resolver)
+ do_work(
+ named_proc,
+ resolver,
+ rndc_cmd,
+ kill_method,
+ n_workers=12,
+ n_queries=16,
+ )
+ assert wait_for_proc_termination(named_proc)
+ assert named_proc.returncode == 0, "named crashed"
+ finally: # Ensure named is terminated in case of an exception
+ named_proc.kill()