From 48a243069c39b18025f1ebb59f79c1309434ed22 Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Thu, 6 Aug 2020 22:23:29 -0700 Subject: [PATCH] Adjust a few btests that were unstable due to time-sensitivity --- .../intel/read-file-dist-cluster.zeek | 40 ++++++++++++++++--- .../frameworks/sumstats/basic-cluster.zeek | 2 +- .../sumstats/cluster-intermediate-update.zeek | 4 +- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/testing/btest/scripts/base/frameworks/intel/read-file-dist-cluster.zeek b/testing/btest/scripts/base/frameworks/intel/read-file-dist-cluster.zeek index 4f25151f20..84c8868a89 100644 --- a/testing/btest/scripts/base/frameworks/intel/read-file-dist-cluster.zeek +++ b/testing/btest/scripts/base/frameworks/intel/read-file-dist-cluster.zeek @@ -5,7 +5,7 @@ # @TEST-EXEC: btest-bg-run manager-1 ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=manager-1 zeek %INPUT # @TEST-EXEC: btest-bg-run worker-1 ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-1 zeek %INPUT # @TEST-EXEC: btest-bg-run worker-2 ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-2 zeek %INPUT -# @TEST-EXEC: btest-bg-wait 30 +# @TEST-EXEC: btest-bg-wait 40 # @TEST-EXEC: btest-diff manager-1/.stdout # @TEST-EXEC: btest-diff manager-1/intel.log # @TEST-EXEC: btest-diff worker-1/.stdout @@ -41,16 +41,44 @@ redef enum Intel::Where += { event do_it() { + if ( Cluster::node == "manager-1" ) + { + Broker::publish(Cluster::node_topic("worker-2"), do_it); + return; + } + Intel::seen([$host=1.2.3.4, $where=Intel::IN_A_TEST]); Intel::seen([$indicator="e@mail.com", $indicator_type=Intel::EMAIL, $where=Intel::IN_A_TEST]); + + if ( Cluster::node == "worker-1" ) + Broker::publish(Cluster::node_topic("manager-1"), do_it); } -event zeek_init() +global hi_count = 0; + +event start_it() { - # Delay the workers searching for hits briefly to allow for the data distribution - # mechanism to distribute the data to the workers. - if ( Cluster::local_node_type() == Cluster::WORKER ) - schedule 4sec { do_it() }; + Broker::publish(Cluster::node_topic("worker-1"), do_it); + } + +event hi() + { + if ( Cluster::node == "manager-1" ) + { + ++hi_count; + + if ( hi_count == 2 ) + # Give more time for intel distribution. + schedule 1sec { start_it() }; + } + else + Broker::publish(Cluster::node_topic("manager-1"), hi); + } + +event Cluster::node_up(name: string, id: string) &priority=-100 + { + if ( Cluster::node == "manager-1" ) + Broker::publish(Cluster::node_topic(name), hi); } event do_terminate() diff --git a/testing/btest/scripts/base/frameworks/sumstats/basic-cluster.zeek b/testing/btest/scripts/base/frameworks/sumstats/basic-cluster.zeek index 73ec48ac8e..86f81b14e5 100644 --- a/testing/btest/scripts/base/frameworks/sumstats/basic-cluster.zeek +++ b/testing/btest/scripts/base/frameworks/sumstats/basic-cluster.zeek @@ -5,7 +5,7 @@ # @TEST-EXEC: btest-bg-run manager-1 ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=manager-1 zeek %INPUT # @TEST-EXEC: btest-bg-run worker-1 ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-1 zeek %INPUT # @TEST-EXEC: btest-bg-run worker-2 ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=worker-2 zeek %INPUT -# @TEST-EXEC: btest-bg-wait 15 +# @TEST-EXEC: btest-bg-wait 30 # @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-sort btest-diff manager-1/.stdout diff --git a/testing/btest/scripts/base/frameworks/sumstats/cluster-intermediate-update.zeek b/testing/btest/scripts/base/frameworks/sumstats/cluster-intermediate-update.zeek index 965fc7c646..200339128c 100644 --- a/testing/btest/scripts/base/frameworks/sumstats/cluster-intermediate-update.zeek +++ b/testing/btest/scripts/base/frameworks/sumstats/cluster-intermediate-update.zeek @@ -22,7 +22,7 @@ event zeek_init() &priority=5 { local r1: SumStats::Reducer = [$stream="test.metric", $apply=set(SumStats::SUM)]; SumStats::create([$name="test", - $epoch=10secs, + $epoch=15secs, $reducers=set(r1), $epoch_result(ts: time, key: SumStats::Key, result: SumStats::Result) = { @@ -64,7 +64,7 @@ event Cluster::node_up(name: string, id: string) if ( Cluster::node == "worker-1" ) { schedule 0.1sec { do_stats(1) }; - schedule 5secs { do_stats(60) }; + schedule 1secs { do_stats(60) }; } if ( Cluster::node == "worker-2" ) schedule 0.5sec { do_stats(40) };