mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00

* 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>
75 lines
2.1 KiB
Text
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()";
|
|
}
|