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