net-ping 1.2.0 → 1.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +9 -0
- data/MANIFEST +23 -25
- data/README +2 -6
- data/Rakefile +44 -0
- data/lib/net/ping/external.rb +3 -2
- data/lib/net/ping/icmp.rb +0 -3
- data/lib/net/ping/ping.rb +1 -1
- data/test/tc_pingexternal.rb +14 -12
- data/test/tc_pinghttp.rb +15 -15
- data/test/tc_pingicmp.rb +16 -16
- data/test/tc_pingtcp.rb +17 -15
- data/test/tc_pingudp.rb +12 -10
- metadata +4 -3
data/CHANGES
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
== 1.2.1 - 6-Apr-2007
|
2
|
+
* For the Ping::External class, if a ping attempt results in 100% packet loss
|
3
|
+
it is now considered a failed ping, regardless of whether or not an error
|
4
|
+
was sent to stdout.
|
5
|
+
* Fixed the Ping::External class for OS X.
|
6
|
+
* Added a Rakefile. Installation and testing should now be run via Rake tasks.
|
7
|
+
* Minor fix for the Ping::ICMP class where I had accidentally dup'd some
|
8
|
+
aliases. This was harmless, but did cause warnings with -w.
|
9
|
+
|
1
10
|
== 1.2.0 - 5-Dec-2006
|
2
11
|
* Internal reorganization - each class now lives in its own file.
|
3
12
|
* Added the Ping::ICMP class. Thanks go to Jos Backus for contributing a
|
data/MANIFEST
CHANGED
@@ -1,25 +1,23 @@
|
|
1
|
-
MANIFEST
|
2
|
-
CHANGES
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
examples/test_pingexternal.rb
|
9
|
-
examples/test_pinghttp.rb
|
10
|
-
examples/test_pingtcp.rb
|
11
|
-
examples/test_pingudp.rb
|
12
|
-
|
13
|
-
lib/net/ping.rb
|
14
|
-
lib/net/ping/
|
15
|
-
lib/net/ping/
|
16
|
-
lib/net/ping/
|
17
|
-
lib/net/ping/
|
18
|
-
|
19
|
-
|
20
|
-
test/
|
21
|
-
test/
|
22
|
-
test/
|
23
|
-
test/
|
24
|
-
test/tc_pingudp.rb
|
25
|
-
test/ts_ping.rb
|
1
|
+
* MANIFEST
|
2
|
+
* CHANGES
|
3
|
+
* Rakefile
|
4
|
+
* README
|
5
|
+
* test.rb
|
6
|
+
* install.rb
|
7
|
+
* net-ping.gemspec
|
8
|
+
* examples/test_pingexternal.rb
|
9
|
+
* examples/test_pinghttp.rb
|
10
|
+
* examples/test_pingtcp.rb
|
11
|
+
* examples/test_pingudp.rb
|
12
|
+
* lib/net/ping.rb
|
13
|
+
* lib/net/ping/icmp.rb
|
14
|
+
* lib/net/ping/tcp.rb
|
15
|
+
* lib/net/ping/udp.rb
|
16
|
+
* lib/net/ping/http.rb
|
17
|
+
* lib/net/ping/external.rb
|
18
|
+
* test/tc_pingexternal.rb
|
19
|
+
* test/tc_pinghttp.rb
|
20
|
+
* test/tc_pingicmp.rb
|
21
|
+
* test/tc_pingtcp.rb
|
22
|
+
* test/tc_pingudp.rb
|
23
|
+
* test/ts_ping.rb
|
data/README
CHANGED
@@ -7,12 +7,8 @@
|
|
7
7
|
Net::Ping::External class.
|
8
8
|
|
9
9
|
== Installation
|
10
|
-
|
11
|
-
|
12
|
-
ruby install.rb
|
13
|
-
=== Gem Installation
|
14
|
-
ruby net-ping.gemspec
|
15
|
-
gem install net-ping-<version>.gem
|
10
|
+
rake test (optional)
|
11
|
+
rake install (standard) OR rake gem_install (gems)
|
16
12
|
|
17
13
|
== Notes
|
18
14
|
Please read the documentation. Especially pay attention to the docs
|
data/Rakefile
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
|
+
|
4
|
+
desc "Install the net-ping package without gems"
|
5
|
+
task :install do
|
6
|
+
ruby 'install.rb'
|
7
|
+
end
|
8
|
+
|
9
|
+
desc "Create and install a net-ping gem"
|
10
|
+
task :gem_install do
|
11
|
+
ruby 'net-ping.gemspec'
|
12
|
+
gem_file = Dir["*.gem"].first
|
13
|
+
sh "gem install #{gem_file}"
|
14
|
+
end
|
15
|
+
|
16
|
+
Rake::TestTask.new("test") do |t|
|
17
|
+
t.warning = true
|
18
|
+
t.test_files = FileList['test/ts_ping.rb']
|
19
|
+
end
|
20
|
+
|
21
|
+
Rake::TestTask.new("test_external") do |t|
|
22
|
+
t.warning = true
|
23
|
+
t.test_files = FileList['test/tc_pingexternal.rb']
|
24
|
+
end
|
25
|
+
|
26
|
+
Rake::TestTask.new("test_http") do |t|
|
27
|
+
t.warning = true
|
28
|
+
t.test_files = FileList['test/tc_pinghttp.rb']
|
29
|
+
end
|
30
|
+
|
31
|
+
Rake::TestTask.new("test_icmp") do |t|
|
32
|
+
t.warning = true
|
33
|
+
t.test_files = FileList['test/tc_pingicmp.rb']
|
34
|
+
end
|
35
|
+
|
36
|
+
Rake::TestTask.new("test_tcp") do |t|
|
37
|
+
t.warning = true
|
38
|
+
t.test_files = FileList['test/tc_pingtcp.rb']
|
39
|
+
end
|
40
|
+
|
41
|
+
Rake::TestTask.new("test_udp") do |t|
|
42
|
+
t.warning = true
|
43
|
+
t.test_files = FileList['test/tc_pingudp.rb']
|
44
|
+
end
|
data/lib/net/ping/external.rb
CHANGED
@@ -18,7 +18,7 @@ module Net
|
|
18
18
|
bool = false
|
19
19
|
|
20
20
|
case RUBY_PLATFORM
|
21
|
-
when /linux|bsd/i
|
21
|
+
when /linux|bsd|osx|mach|darwin/i
|
22
22
|
pstring += "-c 1 #{host}"
|
23
23
|
when /solaris|sunos/i
|
24
24
|
pstring += "#{host} 1"
|
@@ -65,7 +65,8 @@ module Net
|
|
65
65
|
no\ answer|
|
66
66
|
host\ unreachable|
|
67
67
|
could\ not\ find\ host|
|
68
|
-
request\ timed\ out
|
68
|
+
request\ timed\ out|
|
69
|
+
100%\ packet\ loss
|
69
70
|
/ix
|
70
71
|
lines.each{ |e|
|
71
72
|
if regexp.match(e)
|
data/lib/net/ping/icmp.rb
CHANGED
data/lib/net/ping/ping.rb
CHANGED
data/test/tc_pingexternal.rb
CHANGED
@@ -1,15 +1,9 @@
|
|
1
|
-
|
1
|
+
#########################################################################
|
2
2
|
# tc_pingexternal.rb
|
3
3
|
#
|
4
|
-
# Test case for the Net::PingExternal class
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
if base == "test" || base =~ /net-pingsimple.*/
|
9
|
-
Dir.chdir("..") if base == "test"
|
10
|
-
$LOAD_PATH.unshift(Dir.pwd + "/lib")
|
11
|
-
end
|
12
|
-
|
4
|
+
# Test case for the Net::PingExternal class. Run this via the 'test' or
|
5
|
+
# 'test_external' rake task.
|
6
|
+
#########################################################################
|
13
7
|
require "test/unit"
|
14
8
|
require "net/ping/external"
|
15
9
|
include Net
|
@@ -23,16 +17,24 @@ class TC_PingExternal < Test::Unit::TestCase
|
|
23
17
|
end
|
24
18
|
|
25
19
|
def test_version
|
26
|
-
assert_equal("1.2.
|
20
|
+
assert_equal("1.2.1", PingExternal::VERSION)
|
27
21
|
end
|
28
22
|
|
29
23
|
def test_ping
|
30
24
|
assert_respond_to(@pe, :ping)
|
31
|
-
assert_respond_to(@pe, :ping?)
|
32
25
|
assert_nothing_raised{ @pe.ping }
|
33
26
|
assert_nothing_raised{ @pe.ping(@host) }
|
34
27
|
end
|
35
28
|
|
29
|
+
def test_ping_aliases
|
30
|
+
assert_respond_to(@pe, :ping?)
|
31
|
+
assert_respond_to(@pe, :pingecho)
|
32
|
+
assert_nothing_raised{ @pe.ping? }
|
33
|
+
assert_nothing_raised{ @pe.ping?(@host) }
|
34
|
+
assert_nothing_raised{ @pe.pingecho }
|
35
|
+
assert_nothing_raised{ @pe.pingecho(@host) }
|
36
|
+
end
|
37
|
+
|
36
38
|
def test_good_ping
|
37
39
|
assert_equal(true, @pe.ping?)
|
38
40
|
end
|
data/test/tc_pinghttp.rb
CHANGED
@@ -1,15 +1,9 @@
|
|
1
|
-
|
1
|
+
#################################################################################
|
2
2
|
# tc_pinghttp.rb
|
3
3
|
#
|
4
|
-
# Test case for the Net::PingHTTP class.
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
if base == "test" || base =~ /net-pingsimple.*/
|
9
|
-
Dir.chdir("..") if base == "test"
|
10
|
-
$LOAD_PATH.unshift(Dir.pwd + "/lib")
|
11
|
-
end
|
12
|
-
|
4
|
+
# Test case for the Net::PingHTTP class. This should be run via the 'test' or
|
5
|
+
# 'test_http' test task.
|
6
|
+
#################################################################################
|
13
7
|
require "test/unit"
|
14
8
|
require "net/ping/http"
|
15
9
|
include Net
|
@@ -17,19 +11,24 @@ include Net
|
|
17
11
|
class TC_PingHTTP < Test::Unit::TestCase
|
18
12
|
def setup
|
19
13
|
@uri = "http://www.pragmaticprogrammer.com/index.html"
|
20
|
-
@http = Ping::HTTP.new(@uri)
|
14
|
+
@http = Ping::HTTP.new(@uri, 80, 30)
|
21
15
|
@bad = Ping::HTTP.new("http://www.blabfoobarurgh.com") # One hopes not
|
22
16
|
end
|
23
17
|
|
24
18
|
def test_version
|
25
|
-
assert_equal("1.2.
|
19
|
+
assert_equal("1.2.1", Ping::HTTP::VERSION)
|
26
20
|
end
|
27
21
|
|
28
22
|
def test_ping
|
29
23
|
assert_respond_to(@http, :ping)
|
30
|
-
assert_respond_to(@http, :ping?)
|
31
24
|
assert_nothing_raised{ @http.ping }
|
32
|
-
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_ping_aliases
|
28
|
+
assert_respond_to(@http, :ping?)
|
29
|
+
assert_respond_to(@http, :pingecho)
|
30
|
+
assert_nothing_raised{ @http.ping? }
|
31
|
+
assert_nothing_raised{ @http.pingecho }
|
33
32
|
end
|
34
33
|
|
35
34
|
def test_ping_success
|
@@ -61,7 +60,8 @@ class TC_PingHTTP < Test::Unit::TestCase
|
|
61
60
|
def test_timeout
|
62
61
|
assert_respond_to(@http, :timeout)
|
63
62
|
assert_respond_to(@http, :timeout=)
|
64
|
-
assert_equal(
|
63
|
+
assert_equal(30, @http.timeout)
|
64
|
+
assert_equal(5, @bad.timeout)
|
65
65
|
end
|
66
66
|
|
67
67
|
def test_exception
|
data/test/tc_pingicmp.rb
CHANGED
@@ -2,19 +2,17 @@
|
|
2
2
|
# tc_pingicmp.rb
|
3
3
|
#
|
4
4
|
# Test case for the Net::PingICMP class. You must run this test case
|
5
|
-
# with root privileges on UNIX systems.
|
5
|
+
# with root privileges on UNIX systems. This should be run via the
|
6
|
+
# 'test' or 'test_icmp' Rake task.
|
6
7
|
#######################################################################
|
7
|
-
base = File.basename(Dir.pwd)
|
8
|
-
|
9
|
-
if base == "test" || base =~ /net-pingsimple.*/
|
10
|
-
Dir.chdir("..") if base == "test"
|
11
|
-
$LOAD_PATH.unshift(Dir.pwd + "/lib")
|
12
|
-
end
|
13
|
-
|
14
8
|
require "test/unit"
|
15
9
|
require "net/ping/icmp"
|
16
10
|
include Net
|
17
11
|
|
12
|
+
unless Process.euid == 0
|
13
|
+
raise "The test_icmp task must be run with root privileges"
|
14
|
+
end
|
15
|
+
|
18
16
|
class TC_PingICMP < Test::Unit::TestCase
|
19
17
|
def setup
|
20
18
|
@host = "www.ruby-lang.org"
|
@@ -22,16 +20,24 @@ class TC_PingICMP < Test::Unit::TestCase
|
|
22
20
|
end
|
23
21
|
|
24
22
|
def test_version
|
25
|
-
assert_equal("1.2.
|
23
|
+
assert_equal("1.2.1", PingICMP::VERSION)
|
26
24
|
end
|
27
25
|
|
28
26
|
def test_ping
|
29
27
|
assert_respond_to(@icmp, :ping)
|
30
|
-
assert_respond_to(@icmp, :ping?)
|
31
28
|
assert_nothing_raised{ @icmp.ping }
|
32
29
|
assert_nothing_raised{ @icmp.ping(@host) }
|
33
30
|
end
|
34
31
|
|
32
|
+
def test_ping_aliases
|
33
|
+
assert_respond_to(@icmp, :ping?)
|
34
|
+
assert_respond_to(@icmp, :pingecho)
|
35
|
+
assert_nothing_raised{ @icmp.ping? }
|
36
|
+
assert_nothing_raised{ @icmp.ping?(@host) }
|
37
|
+
assert_nothing_raised{ @icmp.pingecho }
|
38
|
+
assert_nothing_raised{ @icmp.pingecho(@host) }
|
39
|
+
end
|
40
|
+
|
35
41
|
def test_bind
|
36
42
|
assert_respond_to(@icmp, :bind)
|
37
43
|
assert_nothing_raised{ @icmp.bind(Socket.gethostname) }
|
@@ -44,12 +50,6 @@ class TC_PingICMP < Test::Unit::TestCase
|
|
44
50
|
assert_kind_of(Float, @icmp.duration)
|
45
51
|
end
|
46
52
|
|
47
|
-
def test_duration
|
48
|
-
assert_nothing_raised{ @icmp.ping }
|
49
|
-
assert_respond_to(@icmp, :duration)
|
50
|
-
assert_kind_of(Float, @icmp.duration)
|
51
|
-
end
|
52
|
-
|
53
53
|
def test_host
|
54
54
|
assert_respond_to(@icmp, :host)
|
55
55
|
assert_respond_to(@icmp, :host=)
|
data/test/tc_pingtcp.rb
CHANGED
@@ -1,36 +1,38 @@
|
|
1
|
-
|
1
|
+
#####################################################################
|
2
2
|
# tc_pingtcp.rb
|
3
3
|
#
|
4
|
-
# Test case for the Net::PingTCP class
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
if base == "test" || base =~ /net-pingsimple.*/
|
9
|
-
Dir.chdir("..") if base == "test"
|
10
|
-
$LOAD_PATH.unshift(Dir.pwd + "/lib")
|
11
|
-
end
|
12
|
-
|
4
|
+
# Test case for the Net::PingTCP class. This test should be run via
|
5
|
+
# the 'test' or 'test_tcp' Rake task.
|
6
|
+
#####################################################################
|
13
7
|
require "test/unit"
|
14
8
|
require "net/ping/tcp"
|
15
9
|
include Net
|
16
10
|
|
17
11
|
class TC_PingTCP < Test::Unit::TestCase
|
18
12
|
def setup
|
19
|
-
@host
|
20
|
-
@tcp
|
13
|
+
@host = "www.ruby-lang.org"
|
14
|
+
@tcp = Ping::TCP.new(@host)
|
21
15
|
end
|
22
16
|
|
23
17
|
def test_version
|
24
|
-
assert_equal("1.2.
|
18
|
+
assert_equal("1.2.1", PingTCP::VERSION)
|
25
19
|
end
|
26
20
|
|
27
21
|
def test_ping
|
28
22
|
assert_respond_to(@tcp, :ping)
|
29
|
-
assert_respond_to(@tcp, :ping?)
|
30
23
|
assert_nothing_raised{ @tcp.ping }
|
31
24
|
assert_nothing_raised{ @tcp.ping(@host) }
|
32
25
|
end
|
33
26
|
|
27
|
+
def test_ping_aliases
|
28
|
+
assert_respond_to(@tcp, :ping?)
|
29
|
+
assert_respond_to(@tcp, :pingecho)
|
30
|
+
assert_nothing_raised{ @tcp.ping? }
|
31
|
+
assert_nothing_raised{ @tcp.ping?(@host) }
|
32
|
+
assert_nothing_raised{ @tcp.pingecho }
|
33
|
+
assert_nothing_raised{ @tcp.pingecho(@host) }
|
34
|
+
end
|
35
|
+
|
34
36
|
def test_ping_ecr_false
|
35
37
|
msg = "+this test may fail depending on your network environment+"
|
36
38
|
PingTCP.ecr = false
|
@@ -55,7 +57,7 @@ class TC_PingTCP < Test::Unit::TestCase
|
|
55
57
|
def test_duration
|
56
58
|
assert_nothing_raised{ @tcp.ping }
|
57
59
|
assert_respond_to(@tcp, :duration)
|
58
|
-
assert_kind_of(Float, @tcp.duration)
|
60
|
+
assert_kind_of(Float, @tcp.duration, '+nil if the ping failed+')
|
59
61
|
end
|
60
62
|
|
61
63
|
def test_host
|
data/test/tc_pingudp.rb
CHANGED
@@ -1,18 +1,12 @@
|
|
1
1
|
################################################################
|
2
2
|
# tc_pingudp.rb
|
3
3
|
#
|
4
|
-
# Test case for the Net::
|
4
|
+
# Test case for the Net::Ping::UDP class. This should be run
|
5
|
+
# via the 'test' or 'test_udp' Rake task.
|
5
6
|
#
|
6
7
|
# If someone could provide me a host where a udp ping actually
|
7
8
|
# works, I would appreciate it. :)
|
8
9
|
################################################################
|
9
|
-
base = File.basename(Dir.pwd)
|
10
|
-
|
11
|
-
if base == "test" || base =~ /net-pingsimple.*/
|
12
|
-
Dir.chdir("..") if base == "test"
|
13
|
-
$LOAD_PATH.unshift(Dir.pwd + "/lib")
|
14
|
-
end
|
15
|
-
|
16
10
|
require "test/unit"
|
17
11
|
require "net/ping/udp"
|
18
12
|
include Net
|
@@ -24,16 +18,24 @@ class TC_PingUDP < Test::Unit::TestCase
|
|
24
18
|
end
|
25
19
|
|
26
20
|
def test_version
|
27
|
-
assert_equal("1.2.
|
21
|
+
assert_equal("1.2.1", Ping::UDP::VERSION)
|
28
22
|
end
|
29
23
|
|
30
24
|
def test_ping
|
31
25
|
assert_respond_to(@udp, :ping)
|
32
|
-
assert_respond_to(@udp, :ping?)
|
33
26
|
assert_nothing_raised{ @udp.ping }
|
34
27
|
assert_nothing_raised{ @udp.ping(@host) }
|
35
28
|
end
|
36
29
|
|
30
|
+
def test_ping_aliases
|
31
|
+
assert_respond_to(@udp, :ping?)
|
32
|
+
assert_respond_to(@udp, :pingecho)
|
33
|
+
assert_nothing_raised{ @udp.ping? }
|
34
|
+
assert_nothing_raised{ @udp.ping?(@host) }
|
35
|
+
assert_nothing_raised{ @udp.pingecho }
|
36
|
+
assert_nothing_raised{ @udp.pingecho(@host) }
|
37
|
+
end
|
38
|
+
|
37
39
|
def test_ping_standard
|
38
40
|
assert_equal(false, @udp.ping?)
|
39
41
|
assert_equal(false, @udp.exception.nil?, "Bad exception data")
|
metadata
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
|
-
rubygems_version: 0.9.
|
2
|
+
rubygems_version: 0.9.2
|
3
3
|
specification_version: 1
|
4
4
|
name: net-ping
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.2.
|
7
|
-
date:
|
6
|
+
version: 1.2.1
|
7
|
+
date: 2007-04-06 00:00:00 -06:00
|
8
8
|
summary: A ping interface for Ruby.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -34,6 +34,7 @@ files:
|
|
34
34
|
- CHANGES
|
35
35
|
- MANIFEST
|
36
36
|
- README
|
37
|
+
- Rakefile
|
37
38
|
- test/tc_pingexternal.rb
|
38
39
|
- test/tc_pinghttp.rb
|
39
40
|
- test/tc_pingicmp.rb
|