From baca6ba769b14644b96e138ee4698d902ee23ac3 Mon Sep 17 00:00:00 2001 From: Arne Welzel Date: Thu, 21 Nov 2024 18:04:29 +0100 Subject: [PATCH] btest: Test Broker::make_event() together with Cluster::publish_hrw() --- .../manager-1..stdout | 52 ++++++++++ .../proxy-1..stdout | 10 ++ .../proxy-2..stdout | 24 +++++ .../topic_distribution_make_event.zeek | 99 +++++++++++++++++++ 4 files changed, 185 insertions(+) create mode 100644 testing/btest/Baseline/scripts.base.frameworks.cluster.topic_distribution_make_event/manager-1..stdout create mode 100644 testing/btest/Baseline/scripts.base.frameworks.cluster.topic_distribution_make_event/proxy-1..stdout create mode 100644 testing/btest/Baseline/scripts.base.frameworks.cluster.topic_distribution_make_event/proxy-2..stdout create mode 100644 testing/btest/scripts/base/frameworks/cluster/topic_distribution_make_event.zeek diff --git a/testing/btest/Baseline/scripts.base.frameworks.cluster.topic_distribution_make_event/manager-1..stdout b/testing/btest/Baseline/scripts.base.frameworks.cluster.topic_distribution_make_event/manager-1..stdout new file mode 100644 index 0000000000..b966781c80 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.cluster.topic_distribution_make_event/manager-1..stdout @@ -0,0 +1,52 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +1st stuff +hrw, 0, T +hrw, 1, T +hrw, 2, T +hrw, 3, T +hrw, 13, T +hrw, 37, T +hrw, 42, T +hrw, 101, T +rr, T +rr, T +rr, T +rr, T +rr, T +rr, T +rr, T +rr, T +2nd stuff +hrw, 0, T +hrw, 1, T +hrw, 2, T +hrw, 3, T +hrw, 13, T +hrw, 37, T +hrw, 42, T +hrw, 101, T +rr, T +rr, T +rr, T +rr, T +rr, T +rr, T +rr, T +rr, T +no stuff +hrw, 0, F +hrw, 1, F +hrw, 2, F +hrw, 3, F +hrw, 13, F +hrw, 37, F +hrw, 42, F +hrw, 101, F +rr, F +rr, F +rr, F +rr, F +rr, F +rr, F +rr, F +rr, F diff --git a/testing/btest/Baseline/scripts.base.frameworks.cluster.topic_distribution_make_event/proxy-1..stdout b/testing/btest/Baseline/scripts.base.frameworks.cluster.topic_distribution_make_event/proxy-1..stdout new file mode 100644 index 0000000000..c4e16958ba --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.cluster.topic_distribution_make_event/proxy-1..stdout @@ -0,0 +1,10 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +got distributed event hrw, 1 +got distributed event hrw, 13 +got distributed event hrw, 37 +got distributed event hrw, 42 +got distributed event hrw, 101 +got distributed event rr, 0 +got distributed event rr, 2 +got distributed event rr, 13 +got distributed event rr, 42 diff --git a/testing/btest/Baseline/scripts.base.frameworks.cluster.topic_distribution_make_event/proxy-2..stdout b/testing/btest/Baseline/scripts.base.frameworks.cluster.topic_distribution_make_event/proxy-2..stdout new file mode 100644 index 0000000000..fec1ae9fe4 --- /dev/null +++ b/testing/btest/Baseline/scripts.base.frameworks.cluster.topic_distribution_make_event/proxy-2..stdout @@ -0,0 +1,24 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +got distributed event hrw, 0 +got distributed event hrw, 2 +got distributed event hrw, 3 +got distributed event rr, 1 +got distributed event rr, 3 +got distributed event rr, 37 +got distributed event rr, 101 +got distributed event hrw, 0 +got distributed event hrw, 1 +got distributed event hrw, 2 +got distributed event hrw, 3 +got distributed event hrw, 13 +got distributed event hrw, 37 +got distributed event hrw, 42 +got distributed event hrw, 101 +got distributed event rr, 0 +got distributed event rr, 1 +got distributed event rr, 2 +got distributed event rr, 3 +got distributed event rr, 13 +got distributed event rr, 37 +got distributed event rr, 42 +got distributed event rr, 101 diff --git a/testing/btest/scripts/base/frameworks/cluster/topic_distribution_make_event.zeek b/testing/btest/scripts/base/frameworks/cluster/topic_distribution_make_event.zeek new file mode 100644 index 0000000000..e966fc73ce --- /dev/null +++ b/testing/btest/scripts/base/frameworks/cluster/topic_distribution_make_event.zeek @@ -0,0 +1,99 @@ +# @TEST-DOC: Broker::make_event() together with Cluster::publish_hrw() and Cluster::publish_rr() +# @TEST-PORT: BROKER_PORT1 +# @TEST-PORT: BROKER_PORT2 +# @TEST-PORT: BROKER_PORT3 +# @TEST-PORT: BROKER_PORT4 +# @TEST-PORT: BROKER_PORT5 +# +# @TEST-EXEC: zeek -b --parse-only %INPUT +# @TEST-EXEC: btest-bg-run manager-1 ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=manager-1 zeek -b %INPUT +# @TEST-EXEC: btest-bg-run proxy-1 ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=proxy-1 zeek -b %INPUT +# @TEST-EXEC: btest-bg-run proxy-2 ZEEKPATH=$ZEEKPATH:.. CLUSTER_NODE=proxy-2 zeek -b %INPUT +# @TEST-EXEC: btest-bg-wait 30 +# @TEST-EXEC: btest-diff manager-1/.stdout +# @TEST-EXEC: btest-diff proxy-1/.stdout +# @TEST-EXEC: btest-diff proxy-2/.stdout + +@load policy/frameworks/cluster/experimental + +@TEST-START-FILE cluster-layout.zeek +redef Cluster::nodes = { + ["manager-1"] = [$node_type=Cluster::MANAGER, $ip=127.0.0.1, $p=to_port(getenv("BROKER_PORT1"))], + ["proxy-1"] = [$node_type=Cluster::PROXY, $ip=127.0.0.1, $p=to_port(getenv("BROKER_PORT2")), $manager="manager-1"], + ["proxy-2"] = [$node_type=Cluster::PROXY, $ip=127.0.0.1, $p=to_port(getenv("BROKER_PORT3")), $manager="manager-1"], +}; +@TEST-END-FILE + +global q = 0; + +event go_away() + { + terminate(); + } + +event distributed_event_hrw(c: count) + { + print "got distributed event hrw", c; + } + +event distributed_event_rr(c: count) + { + print "got distributed event rr", c; + } + +function send_stuff(heading: string) + { + print heading; + + local v: vector of count = vector(0, 1, 2, 3, 13, 37, 42, 101); + local e: Broker::Event; + + for ( i in v ) + { + e = Broker::make_event(distributed_event_hrw, v[i]); + print "hrw", v[i], Cluster::publish_hrw(Cluster::proxy_pool, v[i], e); + } + + local rr_key = "test"; + + for ( i in v ) + { + e = Broker::make_event(distributed_event_rr, v[i]); + print "rr", Cluster::publish_rr(Cluster::proxy_pool, rr_key, e); + } + } + +event Cluster::Experimental::cluster_started() + { + if ( Cluster::node != "manager-1" ) + return; + + send_stuff("1st stuff"); + local e = Broker::make_event(go_away); + Broker::publish(Cluster::node_topic("proxy-1"), e); + } + +event Cluster::node_down(name: string, id: string) + { + if ( Cluster::node != "manager-1" ) + return; + + if ( name == "proxy-1" ) + { + send_stuff("2nd stuff"); + local e = Broker::make_event(go_away); + Broker::publish(Cluster::node_topic("proxy-2"), e); + } + + if ( name == "proxy-2" ) + { + send_stuff("no stuff"); + terminate(); + } + } + +event Cluster::node_down(name: string, id: string) + { + if ( name == "manager-1" ) + terminate(); + }