zeek/testing/btest/broker/remote_event.test
Daniel Thayer d91dd8d9a8 Fix Bro and unit tests when broker is not enabled
When Bro was compiled with broker disabled, then some Bro scripts
were referencing functions and types that were not defined.  Fixed
by adding @ifdefs to several scripts.  Removed one @ifdef because
it was causing several unit tests to fail.

Also fixed the @TEST-REQUIRES check in tests that rely on broker so
that such tests are skipped when broker is disabled.
2016-05-10 06:24:35 -05:00

94 lines
2.4 KiB
Text

# @TEST-SERIALIZE: brokercomm
# @TEST-REQUIRES: grep -q ENABLE_BROKER:BOOL=true $BUILD/CMakeCache.txt
# @TEST-EXEC: btest-bg-run recv "bro -b ../recv.bro broker_port=$BROKER_PORT >recv.out"
# @TEST-EXEC: btest-bg-run send "bro -b ../send.bro broker_port=$BROKER_PORT >send.out"
# @TEST-EXEC: btest-bg-wait 20
# @TEST-EXEC: btest-diff recv/recv.out
# @TEST-EXEC: btest-diff send/send.out
@TEST-START-FILE recv.bro
const broker_port: port &redef;
redef exit_only_after_terminate = T;
global event_handler: event(msg: string, c: count);
global auto_event_handler: event(msg: string, c: count);
event bro_init()
{
Broker::enable();
Broker::subscribe_to_events("bro/event/");
Broker::auto_event("bro/event/my_topic", auto_event_handler);
Broker::listen(broker_port, "127.0.0.1");
}
global event_count = 0;
global events_to_recv = 6;
event event_handler(msg: string, n: count)
{
++event_count;
print "got event msg", msg, n;
if ( event_count == events_to_recv )
{
terminate();
return;
}
event auto_event_handler(msg, n);
local args = Broker::event_args(event_handler, "pong", n);
Broker::send_event("bro/event/my_topic", args);
}
@TEST-END-FILE
@TEST-START-FILE send.bro
const broker_port: port &redef;
redef exit_only_after_terminate = T;
global event_handler: event(msg: string, c: count);
global auto_event_handler: event(msg: string, c: count);
event bro_init()
{
Broker::enable();
Broker::subscribe_to_events("bro/event/my_topic");
Broker::connect("127.0.0.1", broker_port, 1secs);
}
global event_count = 0;
event Broker::outgoing_connection_established(peer_address: string,
peer_port: port,
peer_name: string)
{
print "Broker::outgoing_connection_established", peer_address, peer_port;
local args = Broker::event_args(event_handler, "ping", event_count);
Broker::send_event("bro/event/hi", args);
++event_count;
}
event Broker::outgoing_connection_broken(peer_address: string,
peer_port: port)
{
terminate();
}
event event_handler(msg: string, n: count)
{
print "got event msg", msg, n;
local args = Broker::event_args(event_handler, "ping", event_count);
Broker::send_event("bro/event/hi", args);
++event_count;
}
event auto_event_handler(msg: string, n: count)
{
print "got auto event msg", msg, n;
}
@TEST-END-FILE