@@ -30,8 +30,8 @@ module RubyDNS::PassthroughSpec
30
30
describe "RubyDNS Passthrough Server" do
31
31
include_context "reactor"
32
32
33
- let ( :server ) do
34
- RubyDNS ::run_server ( :listen => SERVER_PORTS , asynchronous : true ) do
33
+ def run_server
34
+ task = RubyDNS ::run_server ( :listen => SERVER_PORTS ) do
35
35
resolver = RubyDNS ::Resolver . new ( [ [ :udp , "8.8.8.8" , 53 ] , [ :tcp , "8.8.8.8" , 53 ] ] )
36
36
37
37
match ( /.*\. com/ , IN ::A ) do |transaction |
@@ -47,38 +47,39 @@ module RubyDNS::PassthroughSpec
47
47
transaction . fail! ( :NXDomain )
48
48
end
49
49
end
50
+
51
+ yield
52
+
53
+ ensure
54
+ task . stop
50
55
end
51
56
52
57
it "should resolve domain correctly" do
53
- server
58
+ run_server do
59
+ resolver = RubyDNS ::Resolver . new ( SERVER_PORTS , timeout : 1 )
60
+
61
+ response = resolver . query ( "google.com" )
62
+ expect ( response . ra ) . to be == 1
54
63
55
- resolver = RubyDNS ::Resolver . new ( SERVER_PORTS )
56
-
57
- response = resolver . query ( "google.com" )
58
- expect ( response . ra ) . to be == 1
59
-
60
- answer = response . answer . first
61
- expect ( answer ) . not_to be == nil
62
- expect ( answer . count ) . to be > 0
63
-
64
- addresses = answer . select { |record | record . kind_of? Resolv ::DNS ::Resource ::IN ::A }
65
- expect ( addresses . size ) . to be > 0
64
+ answer = response . answer . first
65
+ expect ( answer ) . not_to be == nil
66
+ expect ( answer . count ) . to be > 0
66
67
67
- server . stop!
68
+ addresses = answer . select { |record | record . kind_of? Resolv ::DNS ::Resource ::IN ::A }
69
+ expect ( addresses . size ) . to be > 0
70
+ end
68
71
end
69
72
70
73
it "should resolve prefixed domain correctly" do
71
- server
74
+ run_server do
75
+ resolver = RubyDNS ::Resolver . new ( SERVER_PORTS )
72
76
73
- resolver = RubyDNS ::Resolver . new ( SERVER_PORTS )
74
-
75
- response = resolver . query ( "a-slashdot.org" )
76
- answer = response . answer . first
77
-
78
- expect ( answer ) . not_to be == nil
79
- expect ( answer . count ) . to be > 0
77
+ response = resolver . query ( "a-slashdot.org" )
78
+ answer = response . answer . first
80
79
81
- server . stop!
80
+ expect ( answer ) . not_to be == nil
81
+ expect ( answer . count ) . to be > 0
82
+ end
82
83
end
83
84
end
84
85
end
0 commit comments