spec/inputs/udp_spec.rb in logstash-input-udp-3.2.1 vs spec/inputs/udp_spec.rb in logstash-input-udp-3.3.0

- old
+ new

@@ -9,11 +9,12 @@ end let!(:helper) { UdpHelpers.new } let(:client) { LogStash::Inputs::Test::UDPClient.new(port) } let(:port) { rand(1024..65535) } - let(:config) { { "port" => port } } + let(:host) { "0.0.0.0" } + let(:config) { { "port" => port, "host" => host } } subject { LogStash::Plugin.lookup("input","udp").new(config) } after :each do subject.close rescue nil end @@ -23,31 +24,43 @@ expect { subject.register }.to_not raise_error end end describe "receive" do - let(:nevents) { 10 } + shared_examples "receiving" do + before(:each) do + subject.register + end - let(:events) do - helper.input(subject, nevents) do - nevents.times do |i| - client.send("msg #{i}") + let(:nevents) { 10 } + + let(:events) do + helper.input(subject, nevents) do + nevents.times do |i| + client.send("msg #{i}") + end end end - end - before(:each) do - subject.register + it "should receive events been generated" do + expect(events.size).to be(nevents) + messages = events.map { |event| event.get("message")} + messages.each do |message| + expect(message).to match(/msg \d+/) + end + end end - it "should receive events been generated" do - expect(events.size).to be(nevents) - messages = events.map { |event| event.get("message")} - messages.each do |message| - expect(message).to match(/msg \d+/) - end + context "ipv4" do + let(:client) { LogStash::Inputs::Test::UDPClient.new(port, "127.0.0.1") } + include_examples "receiving" end + context "ipv6" do + let(:host) { "::1" } + let(:client) { LogStash::Inputs::Test::UDPClient.new(port, "::1") } + include_examples "receiving" + end end describe "multiple lines per datagram using line codec" do # 3 workers for 3 datagrams send below let(:config) { { "port" => port, "workers" => 3, "codec" => "line" } } @@ -72,6 +85,6 @@ end it_behaves_like "an interruptible input plugin" do # see https://github.com/elastic/logstash-devutils/blob/9c4a1fbf2b0c4547e428c5a40ed84f60aad17f97/lib/logstash/devutils/rspec/shared_examples.rb end -end \ No newline at end of file +end