mirror of
https://github.com/isc-projects/bind9.git
synced 2026-04-29 18:09:11 -04:00
Bind to random port numbers in unit tests
Some unit tests need various managers to be created before they are run. The interface manager spawned during libns tests listens on a fixed port number, which causes intermittent issues when multiple tests using an interface manager are run concurrently. Make the interface manager listen on a randomized port number to greatly reduce the risk of multiple unit tests using the same port concurrently.
This commit is contained in:
parent
423eee834a
commit
ea7bddb4ca
2 changed files with 6 additions and 3 deletions
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
#include <isc/list.h>
|
||||
#include <isc/print.h>
|
||||
#include <isc/random.h>
|
||||
|
||||
#include <dns/acl.h>
|
||||
|
||||
|
|
@ -60,13 +61,14 @@ _teardown(void **state) {
|
|||
static void
|
||||
ns_listenlist_default_test(void **state) {
|
||||
isc_result_t result;
|
||||
in_port_t port = 5300 + isc_random8();
|
||||
ns_listenlist_t *list = NULL;
|
||||
ns_listenelt_t *elt;
|
||||
int count;
|
||||
|
||||
UNUSED(state);
|
||||
|
||||
result = ns_listenlist_default(mctx, 5300, -1, false, &list);
|
||||
result = ns_listenlist_default(mctx, port, -1, false, &list);
|
||||
assert_int_equal(result, ISC_R_SUCCESS);
|
||||
assert_non_null(list);
|
||||
|
||||
|
|
@ -93,7 +95,7 @@ ns_listenlist_default_test(void **state) {
|
|||
|
||||
ns_listenlist_detach(&list);
|
||||
|
||||
result = ns_listenlist_default(mctx, 5300, -1, true, &list);
|
||||
result = ns_listenlist_default(mctx, port, -1, true, &list);
|
||||
assert_int_equal(result, ISC_R_SUCCESS);
|
||||
|
||||
assert_false(ISC_LIST_EMPTY(list->elts));
|
||||
|
|
|
|||
|
|
@ -215,6 +215,7 @@ scan_interfaces(isc_task_t *task, isc_event_t *event) {
|
|||
static isc_result_t
|
||||
create_managers(void) {
|
||||
isc_result_t result;
|
||||
in_port_t port = 5300 + isc_random8();
|
||||
ns_listenlist_t *listenon = NULL;
|
||||
isc_event_t *event = NULL;
|
||||
ncpus = isc_os_ncpus();
|
||||
|
|
@ -238,7 +239,7 @@ create_managers(void) {
|
|||
socketmgr, nm, dispatchmgr, maintask,
|
||||
ncpus, NULL, &interfacemgr));
|
||||
|
||||
CHECK(ns_listenlist_default(mctx, 5300, -1, true, &listenon));
|
||||
CHECK(ns_listenlist_default(mctx, port, -1, true, &listenon));
|
||||
ns_interfacemgr_setlistenon4(interfacemgr, listenon);
|
||||
ns_listenlist_detach(&listenon);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue