nn-core 0.1.0 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt CHANGED
@@ -1,3 +1,10 @@
1
+ 20130215 / 0.1.5
2
+ * libnanomsg has removed the nn_init and nn_term functions. Updated
3
+ specs to remove those features.
4
+
5
+ * Added NN_BUS protocol.
6
+
7
+
1
8
  20130204 / 0.1.0
2
9
  * Initial release. Wrapped the nanomsg library as of commit
3
10
  5ded934af0.
@@ -32,6 +32,9 @@ module NNCore
32
32
  NN_SURVEY_ID = 6
33
33
  NN_SURVEYOR = (NN_SURVEY_ID * 16 + 0)
34
34
  NN_RESPONDENT = (NN_SURVEY_ID * 16 + 1)
35
+
36
+ NN_BUS_ID = 7
37
+ NN_BUS = (NN_BUS_ID * 16 + 0)
35
38
 
36
39
  # Socket Option Levels (SOL)
37
40
  NN_SOL_SOCKET = 0
@@ -81,5 +84,5 @@ module NNCore
81
84
  EFSM = Errno::EFSM::Errno rescue NN_HAUSNUMERO + 54
82
85
 
83
86
  # Miscellaneous
84
- NN_INPROCB_NAMELEN_MAX = 64
87
+ NN_SOCKADDR_MAX = 128
85
88
  end
@@ -35,8 +35,6 @@ module NNCore
35
35
 
36
36
  attach_function :nn_version, [:pointer, :pointer, :pointer], :int
37
37
 
38
- attach_function :nn_init, [], :int
39
- attach_function :nn_term, [], :int
40
38
  attach_function :nn_errno, [], :int
41
39
  attach_function :nn_strerror, [:int], :string
42
40
  attach_function :nn_socket, [:int, :int], :int
@@ -1,3 +1,3 @@
1
1
  module NNCore
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.5"
3
3
  end
data/spec/nn_bind_spec.rb CHANGED
@@ -4,19 +4,14 @@ module NNCore
4
4
  describe "nn_bind" do
5
5
 
6
6
  context "given an initialized library and" do
7
- before(:each) { LibNanomsg.nn_init }
8
- after(:each) { LibNanomsg.nn_term }
9
-
10
7
 
11
8
  context "given a valid socket" do
12
9
  before(:each) do
13
- LibNanomsg.nn_init
14
10
  @socket = LibNanomsg.nn_socket(AF_SP, NN_PUB)
15
11
  end
16
12
 
17
13
  after(:each) do
18
14
  LibNanomsg.nn_close(@socket)
19
- LibNanomsg.nn_term
20
15
  end
21
16
 
22
17
  it "returns a non-zero endpoint number for a valid INPROC address" do
@@ -41,7 +36,7 @@ module NNCore
41
36
  end
42
37
 
43
38
  it "returns -1 for an invalid INPROC address (too long)" do
44
- rc = LibNanomsg.nn_bind(@socket, "inproc://#{'a' * (NN_INPROCB_NAMELEN_MAX + 1)}")
39
+ rc = LibNanomsg.nn_bind(@socket, "inproc://#{'a' * (NN_SOCKADDR_MAX + 1)}")
45
40
  rc.should == -1
46
41
  LibNanomsg.nn_errno.should == ENAMETOOLONG
47
42
  end
@@ -3,19 +3,7 @@ require 'spec_helper'
3
3
  module NNCore
4
4
  describe "nn_close" do
5
5
 
6
- context "given an unitialized library" do
7
- before(:each) { LibNanomsg.nn_term }
8
-
9
- it "returns -1 and sets nn_errno to EFAULT" do
10
- LibNanomsg.nn_close(0).should == -1
11
- LibNanomsg.nn_errno.should == EFAULT
12
- end
13
-
14
- end
15
-
16
6
  context "given an initialized library and" do
17
- before(:each) { LibNanomsg.nn_init }
18
- after(:each) { LibNanomsg.nn_term }
19
7
 
20
8
  context "given a valid socket" do
21
9
  before(:each) { @socket = LibNanomsg.nn_socket(AF_SP, NN_PUB) }
@@ -10,19 +10,14 @@ module NNCore
10
10
  describe "nn_connect" do
11
11
 
12
12
  context "given an initialized library and" do
13
- before(:each) { LibNanomsg.nn_init }
14
- after(:each) { LibNanomsg.nn_term }
15
-
16
13
 
17
14
  context "given a valid socket" do
18
15
  before(:each) do
19
- LibNanomsg.nn_init
20
16
  @socket = LibNanomsg.nn_socket(AF_SP, NN_PUB)
21
17
  end
22
18
 
23
19
  after(:each) do
24
20
  LibNanomsg.nn_close(@socket)
25
- LibNanomsg.nn_term
26
21
  end
27
22
 
28
23
  it "returns a non-zero endpoint number for a valid INPROC address" do
@@ -47,7 +42,7 @@ module NNCore
47
42
  end
48
43
 
49
44
  it "returns -1 for an invalid INPROC address (too long)" do
50
- rc = LibNanomsg.nn_connect(@socket, "inproc://#{'a' * (NN_INPROCB_NAMELEN_MAX + 1)}")
45
+ rc = LibNanomsg.nn_connect(@socket, "inproc://#{'a' * (NN_SOCKADDR_MAX + 1)}")
51
46
  rc.should == -1
52
47
  LibNanomsg.nn_errno.should == ENAMETOOLONG
53
48
  end
@@ -4,13 +4,9 @@ module NNCore
4
4
  describe "nn_getsockopt" do
5
5
 
6
6
  context "given an initialized library and" do
7
- before(:each) { LibNanomsg.nn_init }
8
- after(:each) { LibNanomsg.nn_term }
9
-
10
7
 
11
8
  context "given a valid socket" do
12
9
  before(:each) do
13
- LibNanomsg.nn_init
14
10
  @socket = LibNanomsg.nn_socket(AF_SP, NN_PUB)
15
11
  @option = FFI::MemoryPointer.new(:int32)
16
12
  @size = FFI::MemoryPointer.new :size_t
@@ -19,7 +15,6 @@ module NNCore
19
15
 
20
16
  after(:each) do
21
17
  LibNanomsg.nn_close(@socket)
22
- LibNanomsg.nn_term
23
18
  end
24
19
 
25
20
  it "NN_LINGER returns a default of 1000" do
data/spec/nn_recv_spec.rb CHANGED
@@ -4,13 +4,9 @@ module NNCore
4
4
  describe "nn_recv" do
5
5
 
6
6
  context "given an initialized library and" do
7
- before(:each) { LibNanomsg.nn_init }
8
- after(:each) { LibNanomsg.nn_term }
9
-
10
7
 
11
8
  context "given a valid connected sender and receiver socket pair" do
12
9
  before(:each) do
13
- LibNanomsg.nn_init
14
10
  @socket = LibNanomsg.nn_socket(AF_SP, NN_PAIR)
15
11
  @sender = LibNanomsg.nn_socket(AF_SP, NN_PAIR)
16
12
  @endpoint = LibNanomsg.nn_bind(@socket, "inproc://some_endpoint")
@@ -20,7 +16,6 @@ module NNCore
20
16
  after(:each) do
21
17
  LibNanomsg.nn_close(@socket)
22
18
  LibNanomsg.nn_close(@sender)
23
- LibNanomsg.nn_term
24
19
  end
25
20
 
26
21
  context "given a pre-allocated buffer" do
@@ -37,7 +32,6 @@ module NNCore
37
32
  end
38
33
 
39
34
  context "given no pre-allocated buffer" do
40
-
41
35
 
42
36
  it "returns the number of bytes received and returns the buffer" do
43
37
  string = "ABC"
data/spec/nn_send_spec.rb CHANGED
@@ -4,19 +4,14 @@ module NNCore
4
4
  describe "nn_send" do
5
5
 
6
6
  context "given an initialized library and" do
7
- before(:each) { LibNanomsg.nn_init }
8
- after(:each) { LibNanomsg.nn_term }
9
-
10
7
 
11
8
  context "given a valid socket" do
12
9
  before(:each) do
13
- LibNanomsg.nn_init
14
10
  @socket = LibNanomsg.nn_socket(AF_SP, NN_PUB)
15
11
  end
16
12
 
17
13
  after(:each) do
18
14
  LibNanomsg.nn_close(@socket)
19
- LibNanomsg.nn_term
20
15
  end
21
16
 
22
17
  context "given a valid endpoint" do
@@ -4,13 +4,9 @@ module NNCore
4
4
  describe "nn_setsockopt" do
5
5
 
6
6
  context "given an initialized library and" do
7
- before(:each) { LibNanomsg.nn_init }
8
- after(:each) { LibNanomsg.nn_term }
9
-
10
7
 
11
8
  context "given a valid socket" do
12
9
  before(:each) do
13
- LibNanomsg.nn_init
14
10
  @socket = LibNanomsg.nn_socket(AF_SP, NN_PUB)
15
11
  @option = FFI::MemoryPointer.new(:int32)
16
12
  @size = FFI::MemoryPointer.new :size_t
@@ -19,7 +15,6 @@ module NNCore
19
15
 
20
16
  after(:each) do
21
17
  LibNanomsg.nn_close(@socket)
22
- LibNanomsg.nn_term
23
18
  end
24
19
 
25
20
  SOCKET_OPTIONS.keys.each do |socket_option|
@@ -4,19 +4,14 @@ module NNCore
4
4
  describe "nn_shutdown" do
5
5
 
6
6
  context "given an initialized library and" do
7
- before(:each) { LibNanomsg.nn_init }
8
- after(:each) { LibNanomsg.nn_term }
9
-
10
7
 
11
8
  context "given a valid socket and" do
12
9
  before(:each) do
13
- LibNanomsg.nn_init
14
10
  @socket = LibNanomsg.nn_socket(AF_SP, NN_PUB)
15
11
  end
16
12
 
17
13
  after(:each) do
18
14
  LibNanomsg.nn_close(@socket)
19
- LibNanomsg.nn_term
20
15
  end
21
16
 
22
17
  context "given a valid endpoint" do
@@ -4,8 +4,6 @@ module NNCore
4
4
  describe "nn_socket" do
5
5
 
6
6
  context "given an initialized library and" do
7
- before(:each) { LibNanomsg.nn_init }
8
- after(:each) { LibNanomsg.nn_term }
9
7
 
10
8
  PROTOCOLS.keys.each do |protocol|
11
9
 
@@ -13,20 +11,22 @@ module NNCore
13
11
 
14
12
  it "returns a non-zero file descriptor for the socket" do
15
13
  @socket = LibNanomsg.nn_socket(AF_SP, PROTOCOLS[protocol])
16
-
14
+
17
15
  @socket.should == 0
18
-
16
+
19
17
  LibNanomsg.nn_close(@socket)
20
18
  end
21
19
  end
22
20
 
23
21
  context "given a supported protocol #{protocol} and address family AF_SP_RAW" do
24
22
 
25
- it "returns -1 and sets nn_errno to EINVAL" do
26
- @socket = LibNanomsg.nn_socket(AF_SP_RAW, PROTOCOLS[protocol])
27
-
28
- @socket.should == -1
29
- LibNanomsg.nn_errno.should == EINVAL
23
+ if RAW_UNSUPPORTED.include?(protocol)
24
+ it "returns -1 and sets nn_errno to EINVAL" do
25
+ @socket = LibNanomsg.nn_socket(AF_SP_RAW, PROTOCOLS[protocol])
26
+
27
+ @socket.should == -1
28
+ LibNanomsg.nn_errno.should == EINVAL
29
+ end
30
30
  end
31
31
  end
32
32
 
@@ -4,8 +4,6 @@ module NNCore
4
4
  describe "nn_bind" do
5
5
 
6
6
  context "given an initialized library" do
7
- before(:each) { LibNanomsg.nn_init }
8
- after(:each) { LibNanomsg.nn_term }
9
7
 
10
8
  it "returns 0 and populates the pointers with the major, minor and patch version numbers" do
11
9
  major = FFI::MemoryPointer.new(:int)
data/spec/spec_helper.rb CHANGED
@@ -15,11 +15,25 @@ module NNCore
15
15
 
16
16
  PROTOCOLS = {
17
17
  :NN_PUB => NN_PUB,
18
- :NN_SUB => NN_SUB
18
+ :NN_SUB => NN_SUB,
19
+ :NN_BUS => NN_BUS,
20
+ :NN_PAIR => NN_PAIR,
21
+ :NN_REQ => NN_REQ,
22
+ :NN_REP => NN_REP,
23
+ :NN_SOURCE => NN_SOURCE,
24
+ :NN_SINK => NN_SINK,
25
+ :NN_PUSH => NN_PUSH,
26
+ :NN_PULL => NN_PULL,
27
+ :NN_SURVEYOR => NN_SURVEYOR,
28
+ :NN_RESPONDENT => NN_RESPONDENT
19
29
  }
20
30
 
21
31
  ADDRESS_FAMILIES = {
22
32
  :AF_SP => AF_SP,
23
33
  :AF_SP_RAW => AF_SP_RAW
24
34
  }
35
+
36
+ # Some protocols support the AF_SP_RAW address family, so we need to skip those
37
+ # tests that are expecting a failure.
38
+ RAW_UNSUPPORTED = [:NN_PUB, :NN_SUB]
25
39
  end
metadata CHANGED
@@ -2,14 +2,14 @@
2
2
  name: nn-core
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.1.0
5
+ version: 0.1.5
6
6
  platform: ruby
7
7
  authors:
8
8
  - Chuck Remes
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-04 00:00:00.000000000 Z
12
+ date: 2013-02-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  prerelease: false
@@ -19,6 +19,7 @@ dependencies:
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0'
21
21
  none: false
22
+ type: :runtime
22
23
  version_requirements: !ruby/object:Gem::Requirement
23
24
  requirements:
24
25
  - - ! '>='
@@ -26,7 +27,6 @@ dependencies:
26
27
  version: '0'
27
28
  none: false
28
29
  name: ffi
29
- type: :runtime
30
30
  - !ruby/object:Gem::Dependency
31
31
  prerelease: false
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -35,6 +35,7 @@ dependencies:
35
35
  - !ruby/object:Gem::Version
36
36
  version: '2.6'
37
37
  none: false
38
+ type: :development
38
39
  version_requirements: !ruby/object:Gem::Requirement
39
40
  requirements:
40
41
  - - ~>
@@ -42,7 +43,6 @@ dependencies:
42
43
  version: '2.6'
43
44
  none: false
44
45
  name: rspec
45
- type: :development
46
46
  - !ruby/object:Gem::Dependency
47
47
  prerelease: false
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -51,6 +51,7 @@ dependencies:
51
51
  - !ruby/object:Gem::Version
52
52
  version: '0'
53
53
  none: false
54
+ type: :development
54
55
  version_requirements: !ruby/object:Gem::Requirement
55
56
  requirements:
56
57
  - - ! '>='
@@ -58,7 +59,6 @@ dependencies:
58
59
  version: '0'
59
60
  none: false
60
61
  name: rake
61
- type: :development
62
62
  description: ! 'Wraps the nanomsg networking library using the ruby FFI (foreign
63
63
 
64
64
  function interface). It only exposes the native C API to Ruby. Other gems should
@@ -105,8 +105,6 @@ files:
105
105
  c3BlYy9ubl9jb25uZWN0X3NwZWMucmI=
106
106
  - !binary |-
107
107
  c3BlYy9ubl9nZXRzb2Nrb3B0X3NwZWMucmI=
108
- - !binary |-
109
- c3BlYy9ubl9pbml0X3NwZWMucmI=
110
108
  - !binary |-
111
109
  c3BlYy9ubl9yZWN2X3NwZWMucmI=
112
110
  - !binary |-
@@ -117,8 +115,6 @@ files:
117
115
  c3BlYy9ubl9zaHV0ZG93bl9zcGVjLnJi
118
116
  - !binary |-
119
117
  c3BlYy9ubl9zb2NrZXRfc3BlYy5yYg==
120
- - !binary |-
121
- c3BlYy9ubl90ZXJtX3NwZWMucmI=
122
118
  - !binary |-
123
119
  c3BlYy9ubl92ZXJzaW9uX3NwZWMucmI=
124
120
  - !binary |-
@@ -156,8 +152,6 @@ test_files:
156
152
  c3BlYy9ubl9jb25uZWN0X3NwZWMucmI=
157
153
  - !binary |-
158
154
  c3BlYy9ubl9nZXRzb2Nrb3B0X3NwZWMucmI=
159
- - !binary |-
160
- c3BlYy9ubl9pbml0X3NwZWMucmI=
161
155
  - !binary |-
162
156
  c3BlYy9ubl9yZWN2X3NwZWMucmI=
163
157
  - !binary |-
@@ -168,8 +162,6 @@ test_files:
168
162
  c3BlYy9ubl9zaHV0ZG93bl9zcGVjLnJi
169
163
  - !binary |-
170
164
  c3BlYy9ubl9zb2NrZXRfc3BlYy5yYg==
171
- - !binary |-
172
- c3BlYy9ubl90ZXJtX3NwZWMucmI=
173
165
  - !binary |-
174
166
  c3BlYy9ubl92ZXJzaW9uX3NwZWMucmI=
175
167
  - !binary |-
data/spec/nn_init_spec.rb DELETED
@@ -1,11 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module NNCore
4
- describe "nn_init" do
5
-
6
- it "returns 0 for successful library initialization" do
7
- LibNanomsg.nn_init.should be_zero
8
- end
9
-
10
- end
11
- end
data/spec/nn_term_spec.rb DELETED
@@ -1,17 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module NNCore
4
- describe "nn_term" do
5
-
6
- context "given an initialized library and" do
7
- before(:each) { LibNanomsg.nn_init }
8
- after(:each) { LibNanomsg.nn_term }
9
-
10
- it "returns 0 for successful library termination" do
11
- LibNanomsg.nn_term.should be_zero
12
- end
13
-
14
- end
15
-
16
- end
17
- end