summaryrefslogtreecommitdiff
path: root/spec/ruby/library/socket/unixsocket/pair_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/library/socket/unixsocket/pair_spec.rb')
-rw-r--r--spec/ruby/library/socket/unixsocket/pair_spec.rb56
1 files changed, 38 insertions, 18 deletions
diff --git a/spec/ruby/library/socket/unixsocket/pair_spec.rb b/spec/ruby/library/socket/unixsocket/pair_spec.rb
index 845ff76ecc..9f04f568fa 100644
--- a/spec/ruby/library/socket/unixsocket/pair_spec.rb
+++ b/spec/ruby/library/socket/unixsocket/pair_spec.rb
@@ -2,38 +2,58 @@ require_relative '../spec_helper'
require_relative '../fixtures/classes'
require_relative '../shared/partially_closable_sockets'
-describe "UNIXSocket#pair" do
- platform_is_not :windows do
+describe "UNIXSocket.pair" do
+ it_should_behave_like :partially_closable_sockets
- it_should_behave_like "partially closable sockets"
+ before :each do
+ @s1, @s2 = UNIXSocket.pair
+ end
- before :each do
- @s1, @s2 = UNIXSocket.pair
- end
+ after :each do
+ @s1.close
+ @s2.close
+ end
- after :each do
- @s1.close
- @s2.close
- end
+ it "returns two UNIXSockets" do
+ @s1.should.instance_of?(UNIXSocket)
+ @s2.should.instance_of?(UNIXSocket)
+ end
- it "returns a pair of connected sockets" do
- @s1.puts "foo"
- @s2.gets.should == "foo\n"
- 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
+ platform_is_not :windows do
+ it "sets the socket paths to empty Strings" do
@s1.path.should == ""
+ @s2.path.should == ""
end
- it "returns sockets with no address" do
+ it "sets the socket addresses to empty Strings" do
@s1.addr.should == ["AF_UNIX", ""]
@s2.addr.should == ["AF_UNIX", ""]
end
- it "returns sockets with no peeraddr" do
+ it "sets the socket peer addresses to empty Strings" do
@s1.peeraddr.should == ["AF_UNIX", ""]
@s2.peeraddr.should == ["AF_UNIX", ""]
end
end
+
+ platform_is :windows do
+ it "emulates unnamed sockets with a temporary file with a path" do
+ @s1.addr.should == ["AF_UNIX", @s1.path]
+ @s2.peeraddr.should == ["AF_UNIX", @s1.path]
+ end
+
+ it "sets the peer address of first socket to an empty string" do
+ @s1.peeraddr.should == ["AF_UNIX", ""]
+ end
+
+ it "sets the address and path of second socket to an empty string" do
+ @s2.addr.should == ["AF_UNIX", ""]
+ @s2.path.should == ""
+ end
+ end
end