Skip to content

Commit

Permalink
Merge pull request #1133 from herwinw/unixsocket_pair
Browse files Browse the repository at this point in the history
Merge specs of UNIXSocket.pair and UNIXSocket.socketpair into a shared spec
  • Loading branch information
andrykonchin committed Jun 26, 2024
2 parents 0f7410d + fed1b52 commit 9c57d41
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 49 deletions.
22 changes: 2 additions & 20 deletions library/socket/unixsocket/pair_spec.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
require_relative '../spec_helper'
require_relative '../fixtures/classes'
require_relative '../shared/partially_closable_sockets'
require_relative 'shared/pair'

with_feature :unix_socket do
describe "UNIXSocket.pair" do
it_should_behave_like :unixsocket_pair
it_should_behave_like :partially_closable_sockets

before :each do
Expand All @@ -14,25 +16,5 @@
@s1.close
@s2.close
end

it "returns a pair of connected sockets" do
@s1.puts "foo"
@s2.gets.should == "foo\n"
end

it "returns sockets with no name" do
@s1.path.should == @s2.path
@s1.path.should == ""
end

it "returns sockets with no address" do
@s1.addr.should == ["AF_UNIX", ""]
@s2.addr.should == ["AF_UNIX", ""]
end

it "returns sockets with no peeraddr" do
@s1.peeraddr.should == ["AF_UNIX", ""]
@s2.peeraddr.should == ["AF_UNIX", ""]
end
end
end
29 changes: 29 additions & 0 deletions library/socket/unixsocket/shared/pair.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
require_relative '../../spec_helper'
require_relative '../../fixtures/classes'

describe :unixsocket_pair, shared: true do
it "returns two UNIXSockets" do
@s1.should be_an_instance_of(UNIXSocket)
@s2.should be_an_instance_of(UNIXSocket)
end

it "returns a pair of connected sockets" do
@s1.puts "foo"
@s2.gets.should == "foo\n"
end

it "sets the socket paths to empty Strings" do
@s1.path.should == ""
@s2.path.should == ""
end

it "sets the socket addresses to empty Strings" do
@s1.addr.should == ["AF_UNIX", ""]
@s2.addr.should == ["AF_UNIX", ""]
end

it "sets the socket peer addresses to empty Strings" do
@s1.peeraddr.should == ["AF_UNIX", ""]
@s2.peeraddr.should == ["AF_UNIX", ""]
end
end
38 changes: 9 additions & 29 deletions library/socket/unixsocket/socketpair_spec.rb
Original file line number Diff line number Diff line change
@@ -1,40 +1,20 @@
require_relative '../spec_helper'
require_relative '../fixtures/classes'
require_relative '../shared/partially_closable_sockets'
require_relative 'shared/pair'

with_feature :unix_socket do
describe 'UNIXSocket.socketpair' do
before do
describe "UNIXSocket.socketpair" do
it_should_behave_like :unixsocket_pair
it_should_behave_like :partially_closable_sockets

before :each do
@s1, @s2 = UNIXSocket.socketpair
end

after do
after :each do
@s1.close
@s2.close
end

it 'returns two UNIXSockets' do
@s1.should be_an_instance_of(UNIXSocket)
@s2.should be_an_instance_of(UNIXSocket)
end

it 'connects the sockets to each other' do
@s1.write('hello')

@s2.recv(5).should == 'hello'
end

it 'sets the socket paths to empty Strings' do
@s1.path.should == ''
@s2.path.should == ''
end

it 'sets the socket addresses to empty Strings' do
@s1.addr.should == ['AF_UNIX', '']
@s2.addr.should == ['AF_UNIX', '']
end

it 'sets the socket peer addresses to empty Strings' do
@s1.peeraddr.should == ['AF_UNIX', '']
@s2.peeraddr.should == ['AF_UNIX', '']
end
end
end

0 comments on commit 9c57d41

Please sign in to comment.