bind9/bin/tests/system/configloading/tests_configloading.py
Nicki Křížek f076d0d619 Refactor configloading test
- Use WatchLog.wait_for_sequence() for the configloading test.
- Omit artifacts check, as it seems quite useless for this test case.
- Join all the tests together. The test case is fairly simple here and
  this is the easiest way to ensure the log will be in a predictable
  state for all tests. Previously, there was no way to ensure
  test_configloading_loading() won't be executed after the other tests,
  which would render the check moot. It could also be separated into
  its own module, but that seems excessive for a simple test case like
  this.
- Use jinja2 template for named.conf and remove setup.sh.
- Remove README and put the relevent comment directly next to the test.
- Remove _sh_ from the test filename to uphold the naming convention.
2025-07-18 12:13:30 +02:00

38 lines
1.3 KiB
Python

# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
#
# SPDX-License-Identifier: MPL-2.0
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
#
# See the COPYRIGHT file distributed with this work for additional
# information regarding copyright ownership.
def test_configloading_log(servers):
"""
This test is a "guard/warning" to make sure the named.conf loading
(parsing) is done outside of the exclusive mode (so, named is still able to
answer queries and operating normally in case of configuration reload). It
is currently based on logging, so it's quite brittle.
"""
server = servers["ns1"]
log_sequence = [
"load_configuration",
"parsing user configuration from ",
"apply_configuration",
"loop exclusive mode: starting",
]
with server.watch_log_from_start() as watcher:
watcher.wait_for_sequence(log_sequence)
with server.watch_log_from_here() as watcher:
server.rndc("reconfig")
watcher.wait_for_sequence(log_sequence)
with server.watch_log_from_here() as watcher:
server.rndc("reload")
watcher.wait_for_sequence(log_sequence)