zeek/testing/btest/supervisor/config-bare-mode.zeek
Josh Soref 74af1ebe16 Spelling testing
* alphabet
* another
* associated
* avoiding
* base
* because
* constructors
* defining
* deterministic
* directly
* endlessly
* entity
* function
* indefinitely
* initial
* interpreter
* into
* modifying
* negotiate
* nonexistent
* observations
* occasional
* omission
* orphaned
* overridden
* passing
* primitive
* produces
* reassembly
* repository
* restore
* shouldn't
* something
* statement
* the
* therefore
* transferred
* uninitialized
* unsuccessful

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-16 20:05:03 -05:00

75 lines
2.1 KiB
Text

# This test verifies the functionality of the bare_mode flag in NodeConfig.
# We launch two nodes, one regular, one in bare mode. Each outputs a different
# string depending on mode, and exits. We verify the resulting outputs.
# @TEST-PORT: BROKER_PORT
# @TEST-REQUIRES: test "${ZEEK_USE_CPP}" != "1"
# @TEST-EXEC: btest-bg-run zeek zeek -j -b %INPUT
# @TEST-EXEC: btest-bg-wait 30
# @TEST-EXEC: btest-diff zeek/inherit/node.out
# @TEST-EXEC: btest-diff zeek/bare/node.out
# @TEST-EXEC: btest-diff zeek/default/node.out
# So the supervised node doesn't terminate right away.
redef exit_only_after_terminate=T;
global node_output_file: file;
global topic = "test-topic";
event do_destroy(name: string)
{
Supervisor::destroy(name);
# When no nodes are left, exit.
local status = Supervisor::status();
if ( |status$nodes| == 0)
terminate();
}
event zeek_init()
{
if ( Supervisor::is_supervisor() )
{
Broker::subscribe(topic);
Broker::listen("127.0.0.1", to_port(getenv("BROKER_PORT")));
# Create a node that inherits base mode from us.
local sn = Supervisor::NodeConfig($name="inherit", $directory="inherit");
Supervisor::create(sn);
# Create a node that specifies bare mode.
sn = Supervisor::NodeConfig($name="bare", $directory="bare", $bare_mode=T);
Supervisor::create(sn);
# Create a node that specifies default mode.
sn = Supervisor::NodeConfig($name="default", $directory="default", $bare_mode=F);
Supervisor::create(sn);
}
else
{
Broker::peer("127.0.0.1", to_port(getenv("BROKER_PORT")));
node_output_file = open("node.out");
print node_output_file, "supervised node zeek_init()";
# This is only defined when we're loading init-default.zeek:
@ifdef ( Conn::LOG )
print node_output_file, "default mode";
@else
print node_output_file, "bare mode";
@endif
}
}
event Broker::peer_added(endpoint: Broker::EndpointInfo, msg: string)
{
if ( Supervisor::is_supervised() )
Broker::publish(topic, do_destroy, Supervisor::node()$name);
}
event zeek_done()
{
if ( Supervisor::is_supervised() )
print node_output_file, "supervised node zeek_done()";
}