net-proto 1.3.1 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGES +3 -0
- data/MANIFEST +1 -1
- data/Rakefile +4 -4
- data/lib/net/proto/common.rb +1 -1
- data/net-proto.gemspec +4 -4
- data/spec/net_proto_spec.rb +123 -0
- metadata +12 -12
- metadata.gz.sig +0 -0
- data/test/test_net_proto.rb +0 -136
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22fc633cd0a57112a8a74a3725ef8cf228a0e4d7234d092b154bd075fb6467e3
|
4
|
+
data.tar.gz: d1b70a57d424a8a9f8088c38f3551fd339ed9ba35b701de4d53354358555cee7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7bb84b41f65803a273e6343d3a2e6d7126a2589831529120bbd255b6fcae57e642ea76d1976bd4f44287be0ededc5941f9393136d2b3429558e1b63174101934
|
7
|
+
data.tar.gz: 0a9abc6743751706c141314275595f2162f69924ee4b8a63dd14a6fff9caa2f0a66edfa855031e9e563b62408b351e81afb012889355564e79bc807134eac2b0
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGES
CHANGED
data/MANIFEST
CHANGED
data/Rakefile
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'rake/testtask'
|
3
3
|
require 'rake/clean'
|
4
|
+
require 'rspec/core/rake_task'
|
4
5
|
|
5
6
|
CLEAN.include('**/*.gem', '**/*.rbx', '**/*.rbc')
|
6
7
|
|
@@ -25,9 +26,8 @@ task :example do
|
|
25
26
|
ruby '-Ilib examples/example_net_proto.rb'
|
26
27
|
end
|
27
28
|
|
28
|
-
|
29
|
-
t.
|
30
|
-
t.verbose = true
|
29
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
30
|
+
t.pattern = ['spec/net_proto_spec.rb']
|
31
31
|
end
|
32
32
|
|
33
|
-
task :default => :
|
33
|
+
task :default => :spec
|
data/lib/net/proto/common.rb
CHANGED
data/net-proto.gemspec
CHANGED
@@ -2,20 +2,20 @@ require 'rubygems'
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'net-proto'
|
5
|
-
spec.version = '1.
|
5
|
+
spec.version = '1.4.0'
|
6
6
|
spec.author = 'Daniel J. Berger'
|
7
7
|
spec.license = 'Apache-2.0'
|
8
8
|
spec.email = 'djberg96@gmail.com'
|
9
9
|
spec.homepage = 'https://github.com/djberg96/net-proto'
|
10
10
|
spec.summary = 'A Ruby interface for determining protocol information'
|
11
|
-
spec.test_file = '
|
11
|
+
spec.test_file = 'spec/net_proto_spec.rb'
|
12
12
|
spec.files = Dir['**/*'].reject{ |f| f.include?('git') }
|
13
13
|
spec.cert_chain = Dir['certs/*']
|
14
14
|
|
15
15
|
spec.extra_rdoc_files = ['CHANGES', 'README', 'MANIFEST', 'doc/netproto.txt']
|
16
16
|
|
17
|
-
spec.add_dependency('ffi', '
|
18
|
-
spec.add_development_dependency('
|
17
|
+
spec.add_dependency('ffi', '~> 1.0')
|
18
|
+
spec.add_development_dependency('rspec', '~> 3.9')
|
19
19
|
spec.add_development_dependency('rake')
|
20
20
|
|
21
21
|
spec.metadata = {
|
@@ -0,0 +1,123 @@
|
|
1
|
+
###########################################################################
|
2
|
+
# net_netproto_spec.rb
|
3
|
+
#
|
4
|
+
# Test suite for net-proto all platforms. This test suite should be run
|
5
|
+
# via the 'rake spec' task.
|
6
|
+
###########################################################################
|
7
|
+
require 'net/proto'
|
8
|
+
require 'rspec'
|
9
|
+
|
10
|
+
RSpec.describe Net::Proto do
|
11
|
+
# These were the protocols listed in my own /etc/protocols file on Solaris 9
|
12
|
+
let(:protocols) do
|
13
|
+
%w[
|
14
|
+
ip icmp igmp ggp ipip tcp cbt egp igp pup udp mux hmp
|
15
|
+
xns-idp rdp idpr idpr-cmtp sdrp idrp rsvp gre
|
16
|
+
mobile ospf pim ipcomp vrrp sctp hopopt ipv6
|
17
|
+
ipv6-route ipv6-frag esp ah ipv6-icmp ipv6-nonxt ipv6-opts
|
18
|
+
]
|
19
|
+
end
|
20
|
+
|
21
|
+
example "version number is set to expected value" do
|
22
|
+
expect(Net::Proto::VERSION).to eq('1.4.0')
|
23
|
+
expect(Net::Proto::VERSION.frozen?).to eq(true)
|
24
|
+
end
|
25
|
+
|
26
|
+
example "get_protocol method basic functionality" do
|
27
|
+
expect(Net::Proto).to respond_to(:get_protocol)
|
28
|
+
end
|
29
|
+
|
30
|
+
example "get_protocol method accepts a string or a number" do
|
31
|
+
expect{ Net::Proto.get_protocol(1) }.not_to raise_error
|
32
|
+
expect{ Net::Proto.get_protocol('tcp') }.not_to raise_error
|
33
|
+
end
|
34
|
+
|
35
|
+
example "get_protocol returns nil if protocol not found" do
|
36
|
+
expect(Net::Proto.get_protocol(9999999)).to be_nil
|
37
|
+
end
|
38
|
+
|
39
|
+
example "get_protocol fails if an invalid type is passed" do
|
40
|
+
expect{ Net::Proto.get_protocol([]) }.to raise_error(TypeError)
|
41
|
+
end
|
42
|
+
|
43
|
+
example "getprotobynumber basic functionality" do
|
44
|
+
expect(Net::Proto).to respond_to(:getprotobynumber)
|
45
|
+
expect{ 0.upto(132){ |n| Net::Proto.getprotobynumber(n) } }.not_to raise_error
|
46
|
+
expect(Net::Proto.getprotobynumber(1)).to be_kind_of(String)
|
47
|
+
end
|
48
|
+
|
49
|
+
example "getprotobynumber returns the expected result" do
|
50
|
+
expect(Net::Proto.getprotobynumber(1)).to eq('icmp')
|
51
|
+
expect(Net::Proto.getprotobynumber(6)).to eq('tcp')
|
52
|
+
end
|
53
|
+
|
54
|
+
example "getprotobynumber returns nil if not found" do
|
55
|
+
expect(Net::Proto.getprotobynumber(9999999)).to eq(nil)
|
56
|
+
expect(Net::Proto.getprotobynumber(-1)).to eq(nil)
|
57
|
+
end
|
58
|
+
|
59
|
+
example "getprotobynumber raises a TypeError if a non-numeric arg is used" do
|
60
|
+
expect{ Net::Proto.getprotobynumber('foo') }.to raise_error(TypeError)
|
61
|
+
expect{ Net::Proto.getprotobynumber(nil) }.to raise_error(TypeError)
|
62
|
+
end
|
63
|
+
|
64
|
+
example "getprotobyname method basic functionality" do
|
65
|
+
expect(Net::Proto).to respond_to(:getprotobyname)
|
66
|
+
protocols.each{ |n| expect{ Net::Proto.getprotobyname(n) }.not_to raise_error }
|
67
|
+
end
|
68
|
+
|
69
|
+
example "getprotobyname returns the expected result" do
|
70
|
+
expect(Net::Proto.getprotobyname('icmp')).to eq(1)
|
71
|
+
expect(Net::Proto.getprotobyname('tcp')).to eq(6)
|
72
|
+
end
|
73
|
+
|
74
|
+
example "getprotobyname returns nil if the protocol is not found" do
|
75
|
+
expect(Net::Proto.getprotobyname('foo')).to be_nil
|
76
|
+
expect(Net::Proto.getprotobyname('tcpx')).to be_nil
|
77
|
+
expect(Net::Proto.getprotobyname('')).to be_nil
|
78
|
+
end
|
79
|
+
|
80
|
+
example "getprotobyname raises a TypeError if an invalid arg is passed" do
|
81
|
+
expect{ Net::Proto.getprotobyname(1) }.to raise_error(TypeError)
|
82
|
+
expect{ Net::Proto.getprotobyname(nil) }.to raise_error(TypeError)
|
83
|
+
end
|
84
|
+
|
85
|
+
example "getprotoent basic functionality" do
|
86
|
+
expect(Net::Proto).to respond_to(:getprotoent)
|
87
|
+
expect{ Net::Proto.getprotoent }.not_to raise_error
|
88
|
+
expect(Net::Proto.getprotoent).to be_kind_of(Array)
|
89
|
+
end
|
90
|
+
|
91
|
+
example "getprotoent method returns the expected results" do
|
92
|
+
expect(Net::Proto.getprotoent.first).to be_kind_of(Struct::ProtoStruct)
|
93
|
+
expect(Net::Proto.getprotoent{}).to be_nil
|
94
|
+
end
|
95
|
+
|
96
|
+
example "struct returned by getprotoent method contains the expected data" do
|
97
|
+
protoent = Net::Proto.getprotoent.first
|
98
|
+
expect( protoent.members).to eq([:name, :aliases, :proto])
|
99
|
+
expect( protoent.name).to be_kind_of(String)
|
100
|
+
expect( protoent.aliases).to be_kind_of(Array)
|
101
|
+
expect( protoent.proto).to be_kind_of(Integer)
|
102
|
+
end
|
103
|
+
|
104
|
+
example "all members of the aliases struct member are strings" do
|
105
|
+
protoent = Net::Proto.getprotoent.first
|
106
|
+
expect(protoent.aliases.all?{ |e| e.is_a?(String) }).to eq(true)
|
107
|
+
end
|
108
|
+
|
109
|
+
example "struct returned by getprotoent method is frozen" do
|
110
|
+
protoent = Net::Proto.getprotoent.first
|
111
|
+
expect(protoent.frozen?).to eq(true)
|
112
|
+
end
|
113
|
+
|
114
|
+
example "there is no constructor" do
|
115
|
+
expect{ Net::Proto.new }.to raise_error(NoMethodError)
|
116
|
+
end
|
117
|
+
|
118
|
+
example "ffi functions are private" do
|
119
|
+
methods = Net::Proto.methods(false)
|
120
|
+
expect(methods.include?(:setprotoent)).to eq(false)
|
121
|
+
expect(methods.include?(:endprotoent)).to eq(false)
|
122
|
+
end
|
123
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-proto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
@@ -41,30 +41,30 @@ dependencies:
|
|
41
41
|
name: ffi
|
42
42
|
requirement: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- - "
|
44
|
+
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
46
|
version: '1.0'
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- - "
|
51
|
+
- - "~>"
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '1.0'
|
54
54
|
- !ruby/object:Gem::Dependency
|
55
|
-
name:
|
55
|
+
name: rspec
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
57
57
|
requirements:
|
58
|
-
- - "
|
58
|
+
- - "~>"
|
59
59
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
60
|
+
version: '3.9'
|
61
61
|
type: :development
|
62
62
|
prerelease: false
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
64
64
|
requirements:
|
65
|
-
- - "
|
65
|
+
- - "~>"
|
66
66
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
67
|
+
version: '3.9'
|
68
68
|
- !ruby/object:Gem::Dependency
|
69
69
|
name: rake
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
@@ -93,10 +93,10 @@ extra_rdoc_files:
|
|
93
93
|
- doc/netproto.txt
|
94
94
|
files:
|
95
95
|
- LICENSE
|
96
|
-
- test
|
97
|
-
- test/test_net_proto.rb
|
98
96
|
- CHANGES
|
99
97
|
- MANIFEST
|
98
|
+
- spec
|
99
|
+
- spec/net_proto_spec.rb
|
100
100
|
- README
|
101
101
|
- Rakefile
|
102
102
|
- certs
|
@@ -149,9 +149,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
149
|
- !ruby/object:Gem::Version
|
150
150
|
version: '0'
|
151
151
|
requirements: []
|
152
|
-
rubygems_version: 3.
|
152
|
+
rubygems_version: 3.1.4
|
153
153
|
signing_key:
|
154
154
|
specification_version: 4
|
155
155
|
summary: A Ruby interface for determining protocol information
|
156
156
|
test_files:
|
157
|
-
-
|
157
|
+
- spec/net_proto_spec.rb
|
metadata.gz.sig
CHANGED
Binary file
|
data/test/test_net_proto.rb
DELETED
@@ -1,136 +0,0 @@
|
|
1
|
-
###########################################################################
|
2
|
-
# test_net_netproto.rb
|
3
|
-
#
|
4
|
-
# Test suite for net-proto - all platforms. This test suite should be run
|
5
|
-
# via the 'rake test' task.
|
6
|
-
###########################################################################
|
7
|
-
require 'net/proto'
|
8
|
-
require 'test-unit'
|
9
|
-
|
10
|
-
class TC_Net_Proto < Test::Unit::TestCase
|
11
|
-
|
12
|
-
# These were the protocols listed in my own /etc/protocols file on Solaris 9
|
13
|
-
def self.startup
|
14
|
-
@@protocols = %w/
|
15
|
-
ip icmp igmp ggp ipip tcp cbt egp igp pup udp mux hmp
|
16
|
-
xns-idp rdp idpr idpr-cmtp sdrp idrp rsvp gre
|
17
|
-
mobile ospf pim ipcomp vrrp sctp hopopt ipv6
|
18
|
-
ipv6-route ipv6-frag esp ah ipv6-icmp ipv6-nonxt ipv6-opts
|
19
|
-
/
|
20
|
-
end
|
21
|
-
|
22
|
-
def setup
|
23
|
-
@protoent = nil
|
24
|
-
end
|
25
|
-
|
26
|
-
test "version number is set to expected value" do
|
27
|
-
assert_equal('1.3.1', Net::Proto::VERSION)
|
28
|
-
assert_true(Net::Proto::VERSION.frozen?)
|
29
|
-
end
|
30
|
-
|
31
|
-
test "get_protocol method basic functionality" do
|
32
|
-
assert_respond_to(Net::Proto, :get_protocol)
|
33
|
-
end
|
34
|
-
|
35
|
-
test "get_protocol method accepts a string or a number" do
|
36
|
-
assert_nothing_raised{ Net::Proto.get_protocol(1) }
|
37
|
-
assert_nothing_raised{ Net::Proto.get_protocol('tcp') }
|
38
|
-
end
|
39
|
-
|
40
|
-
test "get_protocol returns nil if protocol not found" do
|
41
|
-
assert_nil(Net::Proto.get_protocol(9999999))
|
42
|
-
end
|
43
|
-
|
44
|
-
test "get_protocol fails if an invalid type is passed" do
|
45
|
-
assert_raise(TypeError){ Net::Proto.get_protocol([]) }
|
46
|
-
end
|
47
|
-
|
48
|
-
test "getprotobynumber basic functionality" do
|
49
|
-
assert_respond_to(Net::Proto, :getprotobynumber)
|
50
|
-
assert_nothing_raised{ 0.upto(132){ |n| Net::Proto.getprotobynumber(n) } }
|
51
|
-
assert_kind_of(String, Net::Proto.getprotobynumber(1))
|
52
|
-
end
|
53
|
-
|
54
|
-
test "getprotobynumber returns the expected result" do
|
55
|
-
assert_equal('icmp', Net::Proto.getprotobynumber(1))
|
56
|
-
assert_equal('tcp', Net::Proto.getprotobynumber(6))
|
57
|
-
end
|
58
|
-
|
59
|
-
test "getprotobynumber returns nil if not found" do
|
60
|
-
assert_equal(nil, Net::Proto.getprotobynumber(9999999))
|
61
|
-
assert_equal(nil, Net::Proto.getprotobynumber(-1))
|
62
|
-
end
|
63
|
-
|
64
|
-
test "getprotobynumber raises a TypeError if a non-numeric arg is used" do
|
65
|
-
assert_raise(TypeError){ Net::Proto.getprotobynumber('foo') }
|
66
|
-
assert_raise(TypeError){ Net::Proto.getprotobynumber(nil) }
|
67
|
-
end
|
68
|
-
|
69
|
-
test "getprotobyname method basic functionality" do
|
70
|
-
assert_respond_to(Net::Proto, :getprotobyname)
|
71
|
-
@@protocols.each{ |n| assert_nothing_raised{ Net::Proto.getprotobyname(n) } }
|
72
|
-
end
|
73
|
-
|
74
|
-
test "getprotobyname returns the expected result" do
|
75
|
-
assert_equal(1, Net::Proto.getprotobyname('icmp'))
|
76
|
-
assert_equal(6, Net::Proto.getprotobyname('tcp'))
|
77
|
-
end
|
78
|
-
|
79
|
-
test "getprotobyname returns nil if the protocol is not found" do
|
80
|
-
assert_nil(Net::Proto.getprotobyname('foo'))
|
81
|
-
assert_nil(Net::Proto.getprotobyname('tcpx'))
|
82
|
-
assert_nil(Net::Proto.getprotobyname(''))
|
83
|
-
end
|
84
|
-
|
85
|
-
test "getprotobyname raises a TypeError if an invalid arg is passed" do
|
86
|
-
assert_raises(TypeError){ Net::Proto.getprotobyname(1) }
|
87
|
-
assert_raises(TypeError){ Net::Proto.getprotobyname(nil) }
|
88
|
-
end
|
89
|
-
|
90
|
-
test "getprotoent basic functionality" do
|
91
|
-
assert_respond_to(Net::Proto, :getprotoent)
|
92
|
-
assert_nothing_raised{ Net::Proto.getprotoent }
|
93
|
-
assert_kind_of(Array, Net::Proto.getprotoent)
|
94
|
-
end
|
95
|
-
|
96
|
-
test "getprotoent method returns the expected results" do
|
97
|
-
assert_kind_of(Struct::ProtoStruct, Net::Proto.getprotoent.first)
|
98
|
-
assert_nil(Net::Proto.getprotoent{})
|
99
|
-
end
|
100
|
-
|
101
|
-
test "struct returned by getprotoent method contains the expected data" do
|
102
|
-
@protoent = Net::Proto.getprotoent.first
|
103
|
-
assert_equal([:name, :aliases, :proto], @protoent.members)
|
104
|
-
assert_kind_of(String, @protoent.name)
|
105
|
-
assert_kind_of(Array, @protoent.aliases)
|
106
|
-
assert_kind_of(Integer, @protoent.proto)
|
107
|
-
end
|
108
|
-
|
109
|
-
test "all members of the aliases struct member are strings" do
|
110
|
-
@protoent = Net::Proto.getprotoent.first
|
111
|
-
assert_true(@protoent.aliases.all?{ |e| e.is_a?(String) })
|
112
|
-
end
|
113
|
-
|
114
|
-
test "struct returned by getprotoent method is frozen" do
|
115
|
-
@protoent = Net::Proto.getprotoent.first
|
116
|
-
assert_true(@protoent.frozen?)
|
117
|
-
end
|
118
|
-
|
119
|
-
test "there is no constructor" do
|
120
|
-
assert_raise(NoMethodError){ Net::Proto.new }
|
121
|
-
end
|
122
|
-
|
123
|
-
test "ffi functions are private" do
|
124
|
-
methods = Net::Proto.methods(false).map{ |m| m.to_sym }
|
125
|
-
assert_false(methods.include?(:setprotoent))
|
126
|
-
assert_false(methods.include?(:endprotoent))
|
127
|
-
end
|
128
|
-
|
129
|
-
def teardown
|
130
|
-
@protoent = nil
|
131
|
-
end
|
132
|
-
|
133
|
-
def self.shutdown
|
134
|
-
@@protocols = nil
|
135
|
-
end
|
136
|
-
end
|