dnsruby 1.60.0 → 1.60.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/RELEASE_NOTES.md +14 -0
  3. data/lib/dnsruby/bit_mapping.rb +1 -1
  4. data/lib/dnsruby/code_mapper.rb +3 -3
  5. data/lib/dnsruby/code_mappers.rb +4 -2
  6. data/lib/dnsruby/config.rb +1 -1
  7. data/lib/dnsruby/dnssec.rb +1 -1
  8. data/lib/dnsruby/packet_sender.rb +8 -5
  9. data/lib/dnsruby/resolver.rb +6 -6
  10. data/lib/dnsruby/resource/APL.rb +146 -0
  11. data/lib/dnsruby/resource/CAA.rb +70 -0
  12. data/lib/dnsruby/resource/IN.rb +4 -1
  13. data/lib/dnsruby/resource/MX.rb +3 -0
  14. data/lib/dnsruby/resource/OPT.rb +1 -1
  15. data/lib/dnsruby/resource/RRSIG.rb +1 -1
  16. data/lib/dnsruby/resource/TLSA.rb +149 -0
  17. data/lib/dnsruby/resource/domain_name.rb +1 -1
  18. data/lib/dnsruby/resource/generic.rb +1 -0
  19. data/lib/dnsruby/version.rb +1 -1
  20. data/lib/dnsruby/zone_transfer.rb +5 -2
  21. data/test/run-tests-individually +347 -0
  22. data/test/spec_helper.rb +3 -3
  23. data/test/tc_caa.rb +49 -0
  24. data/test/tc_cache.rb +6 -16
  25. data/test/tc_dlv.rb +3 -2
  26. data/test/tc_dns.rb +3 -1
  27. data/test/tc_ds.rb +4 -1
  28. data/test/tc_escapedchars.rb +3 -1
  29. data/test/tc_gpos.rb +2 -2
  30. data/test/tc_header.rb +3 -1
  31. data/test/tc_hip.rb +3 -1
  32. data/test/tc_hs.rb +0 -2
  33. data/test/tc_ipseckey.rb +3 -1
  34. data/test/tc_message.rb +0 -16
  35. data/test/tc_name.rb +3 -1
  36. data/test/tc_naptr.rb +3 -1
  37. data/test/tc_nsec.rb +3 -3
  38. data/test/tc_nsec3.rb +3 -1
  39. data/test/tc_nsec3param.rb +3 -1
  40. data/test/tc_nxt.rb +2 -2
  41. data/test/tc_packet.rb +3 -2
  42. data/test/tc_packet_unique_push.rb +3 -1
  43. data/test/tc_ptrin.rb +2 -1
  44. data/test/tc_question.rb +3 -1
  45. data/test/tc_res_env.rb +3 -1
  46. data/test/tc_res_opt.rb +3 -1
  47. data/test/tc_resolv.rb +1 -2
  48. data/test/tc_resolver.rb +18 -19
  49. data/test/tc_rr-opt.rb +3 -2
  50. data/test/tc_rr-txt.rb +3 -1
  51. data/test/tc_rr-unknown.rb +3 -1
  52. data/test/tc_rr.rb +15 -1
  53. data/test/tc_single_resolver.rb +4 -1
  54. data/test/tc_soak.rb +2 -1
  55. data/test/tc_soak_base.rb +2 -0
  56. data/test/tc_sshfp.rb +3 -1
  57. data/test/tc_tlsa.rb +191 -0
  58. data/test/tc_tsig.rb +3 -1
  59. data/test/tc_update.rb +6 -3
  60. data/test/tc_validator.rb +3 -2
  61. data/test/tc_zone_reader.rb +4 -2
  62. data/test/ts_offline.rb +1 -0
  63. data/test/ts_online.rb +6 -7
  64. metadata +8 -2
@@ -38,6 +38,9 @@ module Dnsruby
38
38
  def from_string(input) #:nodoc: all
39
39
  if (input.length > 0)
40
40
  names = input.split(" ")
41
+ if(names.size != 2)
42
+ raise DecodeError.new("MX record expects preference and domain")
43
+ end
41
44
  @preference = names[0].to_i
42
45
  @exchange = Name.create(names[1])
43
46
  end
@@ -148,7 +148,7 @@ module Dnsruby
148
148
  def options(args)
149
149
  if (args==nil)
150
150
  return @options
151
- elsif args.kind_of?Fixnum
151
+ elsif args.kind_of?(Integer)
152
152
  # return list of options with that code
153
153
  ret = []
154
154
  @options.each do |option|
@@ -181,7 +181,7 @@ module Dnsruby
181
181
  end
182
182
 
183
183
  def RRSIG.get_time(input)
184
- if (input.kind_of?Fixnum)
184
+ if input.kind_of?(Integer)
185
185
  return input
186
186
  end
187
187
  # RFC 4034, section 3.2
@@ -0,0 +1,149 @@
1
+ require 'openssl'
2
+
3
+ module Dnsruby
4
+ class RR
5
+ module IN
6
+ # Class for DNS TLSA server certificate or public key (TLSA) resource records.
7
+ #
8
+ # RFC 6698
9
+ class TLSA < RR
10
+ ClassHash[[TypeValue = Types::TLSA, ClassValue = ClassValue]] = self #:nodoc: all
11
+ # sec 2.1.1 ,7,2
12
+ #
13
+ # 0 CA constraint
14
+ # 1 Service certificate constraint
15
+ # 2 Trust anchor assertion
16
+ # 3 Domain-issued certificate
17
+ # 4-254 Unassigned
18
+ # 255 Private use
19
+ attr_accessor :usage
20
+ # sec 2.1.2, 7.3
21
+ #
22
+ # 0 Full certificate
23
+ # 1 SubjectPublicKeyInfo
24
+ # 2-254 Unassigned
25
+ # 255 Private use
26
+ attr_accessor :selector
27
+ # sec 2.3.1
28
+ #
29
+ # 0 Exact match on selected content
30
+ # 1 SHA-256 hash of selected content
31
+ # 2 SHA-512 hash of selected content
32
+ # 3-254 Unassigned
33
+ # 255 Private use
34
+ attr_accessor :matching_type
35
+ # sec 2.1.4
36
+ attr_accessor :data
37
+ attr_accessor :databin
38
+
39
+ def verify
40
+ raise ArgumentError, "usage with invalid value: #{@usage}" if @usage < 0 || @usage > 255
41
+ raise ArgumentError, "selector with invalid value: #{@selector}" if @selector < 0 || @selector > 255
42
+ raise ArgumentError, "matching_type with invalid value: #{@matching_type}" if @matching_type < 0 || @matching_type > 255
43
+ raise ArgumentError, "data with invalid value: #{@data}" if (@matching_type == 1 && @databin.bytesize != 32) || (@matching_type == 2 && @databin.bytesize != 64)
44
+ pkey if @matching_type == 0
45
+ end
46
+
47
+ def from_data(data) #:nodoc: all
48
+ self.usage = data[0]
49
+ self.selector = data[1]
50
+ self.matching_type = data[2]
51
+ self.databin = data[3]
52
+ verify
53
+ end
54
+
55
+ # Create the RR from a hash
56
+ def from_hash(hash)
57
+ super(hash)
58
+ verify
59
+ end
60
+
61
+ def data=(data)
62
+ self.databin = parse_string(data)
63
+ end
64
+
65
+ def databin=(databin)
66
+ @databin = databin
67
+ @data = @databin.unpack('H*')[0].each_char.each_slice(57).map(&:join).join(' ')
68
+ end
69
+
70
+ def cert
71
+ if @matching_type == 0 && @selector == 0 && @databin
72
+ begin
73
+ cert = OpenSSL::X509::Certificate.new(@databin)
74
+ rescue => e
75
+ raise ArgumentError, 'data is invalid cert '
76
+ end
77
+ end
78
+ cert
79
+ end
80
+
81
+ def pkey
82
+ pubkey = nil
83
+ if @matching_type == 0 && @databin
84
+ if @selector == 0
85
+ cert = self.cert
86
+ pubkey = cert.public_key
87
+ elsif @selector == 1
88
+ begin
89
+ pubkey = OpenSSL::PKey.read(@databin)
90
+ rescue
91
+ raise ArgumentError, 'data is invalid pkey'
92
+ end
93
+ end
94
+ end
95
+ pubkey
96
+ end
97
+
98
+ def parse_string(data)
99
+ buf = ''
100
+ comment = false
101
+ multiline = false
102
+ data.each_char do |ch|
103
+ case ch
104
+ when ';' then comment = true
105
+ when '\n'
106
+ raise ArgumentError, 'string format error' unless multiline
107
+ comment = false
108
+ when '\r' then next
109
+ when ' ' then next
110
+ when comment then next
111
+ when '(' then multiline = true
112
+ when ')' then multiline = false
113
+ else
114
+ buf += ch
115
+ end
116
+ end
117
+ raise ArgumentError, 'string format error' if multiline
118
+
119
+ [buf].pack('H*')
120
+ end
121
+
122
+ # Create the RR from a standard string
123
+ def from_string(input)
124
+ values = input.split(' ', 4)
125
+ self.usage = values[0].to_i
126
+ self.selector = values[1].to_i
127
+ self.matching_type = values[2].to_i
128
+ self.data = values[3]
129
+ verify
130
+ end
131
+
132
+ def rdata_to_string
133
+ "#{@usage} #{@selector} #{@matching_type} #{@data}"
134
+ end
135
+
136
+ def encode_rdata(msg, _canonical = false) #:nodoc: all
137
+ msg.put_pack('CCC', @usage, @selector, @matching_type)
138
+ msg.put_bytes(@databin)
139
+ end
140
+
141
+ def self.decode_rdata(msg) #:nodoc: all
142
+ usage, selector, matching_type = msg.get_unpack('CCC')
143
+ databin = msg.get_bytes
144
+ new([usage, selector, matching_type, databin])
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end
@@ -51,7 +51,7 @@ module Dnsruby
51
51
  def self.decode_rdata(msg) #:nodoc: all
52
52
  n = msg.get_name
53
53
  if n.length == 0
54
- n = nil
54
+ # n = nil
55
55
  end
56
56
  self.new(n)
57
57
  end
@@ -165,3 +165,4 @@ require 'dnsruby/resource/KX'
165
165
  require 'dnsruby/resource/DHCID'
166
166
  require 'dnsruby/resource/GPOS'
167
167
  require 'dnsruby/resource/NXT'
168
+ require 'dnsruby/resource/CAA'
@@ -1,3 +1,3 @@
1
1
  module Dnsruby
2
- VERSION = '1.60.0'
2
+ VERSION = '1.60.1'
3
3
  end
@@ -27,6 +27,8 @@ module Dnsruby
27
27
  attr_accessor :port
28
28
  # If using IXFR, this is the SOA serial number to start the incrementals from
29
29
  attr_accessor :serial
30
+ # The source address to connect to
31
+ attr_accessor :src_address
30
32
  # The TSIG record used to sign the transfer
31
33
  attr_reader :tsig
32
34
  # Returns the tsigstate of the last transfer (nil if no TSIG signed transfer has occurred)
@@ -51,6 +53,7 @@ module Dnsruby
51
53
  @serial=0
52
54
  @tsig = nil
53
55
  @axfr = nil
56
+ @src_address = nil
54
57
  end
55
58
 
56
59
  # Perform a zone transfer (RFC1995)
@@ -104,7 +107,7 @@ module Dnsruby
104
107
  def do_transfer(zone, server) #:nodoc: all
105
108
  @transfer_type = Types.new(@transfer_type)
106
109
  @state = :InitialSoa
107
- socket = TCPSocket.new(server, @port)
110
+ socket = TCPSocket.new(server, @port, @src_address)
108
111
  begin
109
112
  # Send an initial query
110
113
  msg = Message.new(zone, @transfer_type, @klass)
@@ -375,4 +378,4 @@ module Dnsruby
375
378
  return msg
376
379
  end
377
380
  end
378
- end
381
+ end
@@ -0,0 +1,347 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Runs each test individually in its own Ruby VM,
4
+ # shows output from those that failed, and outputs separate lists
5
+ # of the tests that succeeded and those that failed.
6
+
7
+ # Suggest you use tee to display while running but save results to a file, e.g.:
8
+ # test/run-tests-individually | tee run-tests-individually.out.txt
9
+
10
+ test_files = Dir[File.join(File.dirname(__FILE__), 'tc_*.rb')]
11
+
12
+ def run_file(filespec)
13
+ output = `ruby #{filespec} 2>&1`
14
+ return_code = $?
15
+ if return_code == 0
16
+ puts "Ok: Test #{filespec} completed successfully"
17
+ true
18
+ else
19
+ puts "Failed: Test #{filespec} failed with the following errors:\n#{output}"
20
+ false
21
+ end
22
+ end
23
+
24
+
25
+ successes, failures = test_files.partition { |filespec| run_file(filespec) }
26
+
27
+ puts "Successes:\n\n"; puts successes; puts "\n\n"
28
+ puts "Failures:\n\n"; puts failures
29
+
30
+
31
+ =begin
32
+ Sample output:
33
+ Ok: Test test/tc_axfr.rb completed successfully
34
+ Ok: Test test/tc_cache.rb completed successfully
35
+ Failed: Test test/tc_dlv.rb failed with the following errors:
36
+ Run options: --seed 19558
37
+
38
+ # Running:
39
+
40
+
41
+ TestDlv | R
42
+ | 0.00 s
43
+ Slowest tests:
44
+ 2.04 s TestDlv#test_dlv
45
+ Slowest suites:
46
+ 2.04 s TestDlv
47
+
48
+
49
+ Finished in 2.040666s, 0.4900 runs/s, 0.4900 assertions/s.
50
+
51
+ 1) Error:
52
+ TestDlv#test_dlv:
53
+ ArgumentError: Can't make sense of nameserver : ns2.nic.se, exception : Dnsruby::NXDomain
54
+ /Users/kbennett/work/dnsruby/lib/dnsruby/config.rb:293:in `rescue in rescue in rescue in resolve_server'
55
+ /Users/kbennett/work/dnsruby/lib/dnsruby/config.rb:256:in `rescue in rescue in resolve_server'
56
+ /Users/kbennett/work/dnsruby/lib/dnsruby/config.rb:252:in `rescue in resolve_server'
57
+ /Users/kbennett/work/dnsruby/lib/dnsruby/config.rb:248:in `resolve_server'
58
+ /Users/kbennett/work/dnsruby/lib/dnsruby/packet_sender.rb:230:in `initialize'
59
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:569:in `new'
60
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:569:in `add_server'
61
+ test/tc_dlv.rb:42:in `test_dlv'
62
+
63
+ 1 runs, 1 assertions, 0 failures, 1 errors, 0 skips
64
+ Ok: Test test/tc_dns.rb completed successfully
65
+ Ok: Test test/tc_dnskey.rb completed successfully
66
+ Ok: Test test/tc_ds.rb completed successfully
67
+ Ok: Test test/tc_escapedchars.rb completed successfully
68
+ Ok: Test test/tc_gpos.rb completed successfully
69
+ Ok: Test test/tc_hash.rb completed successfully
70
+ Ok: Test test/tc_header.rb completed successfully
71
+ Ok: Test test/tc_hip.rb completed successfully
72
+ Ok: Test test/tc_hs.rb completed successfully
73
+ Ok: Test test/tc_ipseckey.rb completed successfully
74
+ Ok: Test test/tc_message.rb completed successfully
75
+ Ok: Test test/tc_misc.rb completed successfully
76
+ Ok: Test test/tc_name.rb completed successfully
77
+ Ok: Test test/tc_naptr.rb completed successfully
78
+ Ok: Test test/tc_nsec.rb completed successfully
79
+ Ok: Test test/tc_nsec3.rb completed successfully
80
+ Ok: Test test/tc_nsec3param.rb completed successfully
81
+ Ok: Test test/tc_nxt.rb completed successfully
82
+ Ok: Test test/tc_packet.rb completed successfully
83
+ Ok: Test test/tc_packet_unique_push.rb completed successfully
84
+ Ok: Test test/tc_ptrin.rb completed successfully
85
+ Ok: Test test/tc_question.rb completed successfully
86
+ Ok: Test test/tc_queue.rb completed successfully
87
+ Ok: Test test/tc_recur.rb completed successfully
88
+ Ok: Test test/tc_res_config.rb completed successfully
89
+ Failed: Test test/tc_res_env.rb failed with the following errors:
90
+ Run options: --seed 61787
91
+
92
+ # Running:
93
+
94
+
95
+ TestResolverEnv | F
96
+ | 0.00 s
97
+ Slowest tests:
98
+ 0.00 s TestResolverEnv#test_res_env
99
+ Slowest suites:
100
+ 0.00 s TestResolverEnv
101
+
102
+
103
+ Finished in 0.002247s, 445.0378 runs/s, 1335.1135 assertions/s.
104
+
105
+ 1) Failure:
106
+ TestResolverEnv#test_res_env [test/tc_res_env.rb:38]:
107
+ Nameserver set correctly.
108
+ Expected: "10.128.128.128"
109
+ Actual: "10.0.1.128"
110
+
111
+ 1 runs, 3 assertions, 1 failures, 0 errors, 0 skips
112
+ Ok: Test test/tc_res_file.rb completed successfully
113
+ Ok: Test test/tc_res_opt.rb completed successfully
114
+ Ok: Test test/tc_resolv.rb completed successfully
115
+ Ok: Test test/tc_resolver.rb completed successfully
116
+ Ok: Test test/tc_rr-opt.rb completed successfully
117
+ Ok: Test test/tc_rr-txt.rb completed successfully
118
+ Ok: Test test/tc_rr-unknown.rb completed successfully
119
+ Ok: Test test/tc_rr.rb completed successfully
120
+ Ok: Test test/tc_rrset.rb completed successfully
121
+ Ok: Test test/tc_rrsig.rb completed successfully
122
+ Ok: Test test/tc_single_resolver.rb completed successfully
123
+ Failed: Test test/tc_soak.rb failed with the following errors:
124
+ Run options: --seed 6029
125
+
126
+ # Running:
127
+
128
+
129
+ TestSingleResolverSoak | RRRRRRRRtest/tc_soak.rb:283:in `create_default_single_resolver': uninitialized constant TestSingleResolverSoak::SingleResolver (NameError)
130
+ Did you mean? SingleForwardable
131
+ from test/tc_soak.rb:243:in `block (2 levels) in test_many_threads_on_many_single_resolvers'
132
+ Ok: Test test/tc_soak_base.rb completed successfully
133
+ Ok: Test test/tc_sshfp.rb completed successfully
134
+ Ok: Test test/tc_tcp.rb completed successfully
135
+ Ok: Test test/tc_tcp_pipelining.rb completed successfully
136
+ Ok: Test test/tc_tkey.rb completed successfully
137
+ Failed: Test test/tc_tsig.rb failed with the following errors:
138
+ Run options: --seed 20864
139
+
140
+ # Running:
141
+
142
+
143
+ TestTSig | R..R
144
+ | 11.87 s
145
+ Slowest tests:
146
+ 11.87 s TestTSig#test_signed_update
147
+ 10.74 s TestTSig#test_signed_zone_transfer
148
+ 0.00 s TestTSig#test_bad_tsig
149
+ 0.00 s TestTSig#test_message_signing
150
+ Slowest suites:
151
+ 22.62 s TestTSig
152
+
153
+
154
+ Finished in 22.616872s, 0.1769 runs/s, 0.3095 assertions/s.
155
+
156
+ 1) Error:
157
+ TestTSig#test_signed_zone_transfer:
158
+ ArgumentError: Can't make sense of nameserver : ns0.validation-test-servers.nominet.org.uk, exception : undefined method `answer' for nil:NilClass
159
+ /Users/kbennett/work/dnsruby/lib/dnsruby/config.rb:293:in `rescue in rescue in rescue in resolve_server'
160
+ /Users/kbennett/work/dnsruby/lib/dnsruby/config.rb:256:in `rescue in rescue in resolve_server'
161
+ /Users/kbennett/work/dnsruby/lib/dnsruby/config.rb:252:in `rescue in resolve_server'
162
+ /Users/kbennett/work/dnsruby/lib/dnsruby/config.rb:248:in `resolve_server'
163
+ /Users/kbennett/work/dnsruby/lib/dnsruby/zone_transfer.rb:94:in `block in transfer'
164
+ /Users/kbennett/work/dnsruby/lib/dnsruby/zone_transfer.rb:92:in `each'
165
+ /Users/kbennett/work/dnsruby/lib/dnsruby/zone_transfer.rb:92:in `transfer'
166
+ test/tc_tsig.rb:189:in `axfr'
167
+ test/tc_tsig.rb:180:in `test_signed_zone_transfer'
168
+
169
+
170
+ 2) Error:
171
+ TestTSig#test_signed_update:
172
+ ArgumentError: Can't make sense of nameserver : , exception : Nameserver invalid!
173
+ /Users/kbennett/work/dnsruby/lib/dnsruby/config.rb:293:in `rescue in rescue in rescue in resolve_server'
174
+ /Users/kbennett/work/dnsruby/lib/dnsruby/config.rb:256:in `rescue in rescue in resolve_server'
175
+ /Users/kbennett/work/dnsruby/lib/dnsruby/config.rb:252:in `rescue in resolve_server'
176
+ /Users/kbennett/work/dnsruby/lib/dnsruby/config.rb:248:in `resolve_server'
177
+ /Users/kbennett/work/dnsruby/lib/dnsruby/packet_sender.rb:230:in `initialize'
178
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:488:in `new'
179
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:488:in `block (2 levels) in add_config_nameservers'
180
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:487:in `each'
181
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:487:in `block in add_config_nameservers'
182
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:485:in `synchronize'
183
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:485:in `add_config_nameservers'
184
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:514:in `set_config_nameserver'
185
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:469:in `initialize'
186
+ test/tc_tsig.rb:69:in `new'
187
+ test/tc_tsig.rb:69:in `run_test_client_signs'
188
+ test/tc_tsig.rb:31:in `test_signed_update'
189
+
190
+ 4 runs, 7 assertions, 0 failures, 2 errors, 0 skips
191
+ Ok: Test test/tc_update.rb completed successfully
192
+ Failed: Test test/tc_validator.rb failed with the following errors:
193
+ Run options: --seed 12765
194
+
195
+ # Running:
196
+
197
+ Test EventType API!
198
+
199
+ TestValidator | .RRTest validation configuration options!
200
+ .
201
+ | 10.05 s
202
+ Slowest tests:
203
+ 5.05 s TestValidator#test_validation
204
+ 5.01 s TestValidator#test_resolver_cd_validation_fails
205
+ 0.00 s TestValidator#test_eventtype_api
206
+ 0.00 s TestValidator#test_config_api
207
+ Slowest suites:
208
+ 10.05 s TestValidator
209
+
210
+
211
+ Finished in 10.054978s, 0.3978 runs/s, 0.0000 assertions/s.
212
+
213
+ 1) Error:
214
+ TestValidator#test_resolver_cd_validation_fails:
215
+ Dnsruby::ResolvTimeout: Query timed out
216
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:257:in `send_message'
217
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:203:in `query'
218
+ test/tc_validator.rb:52:in `test_resolver_cd_validation_fails'
219
+
220
+
221
+ 2) Error:
222
+ TestValidator#test_validation:
223
+ Dnsruby::ResolvTimeout: Query timed out
224
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:257:in `send_message'
225
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:203:in `query'
226
+ test/tc_validator.rb:40:in `test_validation'
227
+
228
+ 4 runs, 0 assertions, 0 failures, 2 errors, 0 skips
229
+ Failed: Test test/tc_verifier.rb failed with the following errors:
230
+ Run options: --seed 23316
231
+
232
+ # Running:
233
+
234
+
235
+ VerifierTest | .R.R....RF.
236
+ | 14.37 s
237
+ Slowest tests:
238
+ 5.40 s VerifierTest#test_tcp
239
+ 5.01 s VerifierTest#test_trusted_key
240
+ 2.01 s VerifierTest#test_expired_keys
241
+ 1.54 s VerifierTest#test_verify_message_fails
242
+ 1.21 s VerifierTest#test_dsa
243
+ 0.41 s VerifierTest#test_sendraw
244
+ Slowest suites:
245
+ 15.91 s VerifierTest
246
+
247
+
248
+ Finished in 15.914313s, 0.6912 runs/s, 0.3770 assertions/s.
249
+
250
+ 1) Error:
251
+ VerifierTest#test_tcp:
252
+ Dnsruby::ResolvTimeout: Query timed out
253
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:257:in `send_message'
254
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:203:in `query'
255
+ test/tc_verifier.rb:183:in `test_tcp'
256
+
257
+
258
+ 2) Error:
259
+ VerifierTest#test_trusted_key:
260
+ Dnsruby::ResolvTimeout: Query timed out
261
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:257:in `send_message'
262
+ /Users/kbennett/work/dnsruby/lib/dnsruby/resolver.rb:203:in `query'
263
+ test/tc_verifier.rb:125:in `test_trusted_key'
264
+
265
+
266
+ 3) Error:
267
+ VerifierTest#test_verify_message:
268
+ Dnsruby::VerifyError: Failed to verify DNSKEY RRSet
269
+ /Users/kbennett/work/dnsruby/lib/dnsruby/single_verifier.rb:277:in `block (2 levels) in verify'
270
+ /Users/kbennett/work/dnsruby/lib/dnsruby/single_verifier.rb:275:in `each'
271
+ /Users/kbennett/work/dnsruby/lib/dnsruby/single_verifier.rb:275:in `block in verify'
272
+ /Users/kbennett/work/dnsruby/lib/dnsruby/message/message.rb:345:in `block in each_section'
273
+ /Users/kbennett/work/dnsruby/lib/dnsruby/message/message.rb:345:in `each'
274
+ /Users/kbennett/work/dnsruby/lib/dnsruby/message/message.rb:345:in `each_section'
275
+ /Users/kbennett/work/dnsruby/lib/dnsruby/single_verifier.rb:261:in `verify'
276
+ /Users/kbennett/work/dnsruby/lib/dnsruby/dnssec.rb:293:in `rescue in rescue in verify'
277
+ /Users/kbennett/work/dnsruby/lib/dnsruby/dnssec.rb:290:in `rescue in verify'
278
+ /Users/kbennett/work/dnsruby/lib/dnsruby/dnssec.rb:287:in `verify'
279
+ test/tc_verifier.rb:98:in `test_verify_message'
280
+
281
+
282
+ 4) Failure:
283
+ VerifierTest#test_dsa [test/tc_verifier.rb:229]:
284
+ Expected nil to be truthy.
285
+
286
+ 11 runs, 6 assertions, 1 failures, 3 errors, 0 skips
287
+ Ok: Test test/tc_zone_reader.rb completed successfully
288
+ Successes:
289
+
290
+ test/tc_axfr.rb
291
+ test/tc_cache.rb
292
+ test/tc_dns.rb
293
+ test/tc_dnskey.rb
294
+ test/tc_ds.rb
295
+ test/tc_escapedchars.rb
296
+ test/tc_gpos.rb
297
+ test/tc_hash.rb
298
+ test/tc_header.rb
299
+ test/tc_hip.rb
300
+ test/tc_hs.rb
301
+ test/tc_ipseckey.rb
302
+ test/tc_message.rb
303
+ test/tc_misc.rb
304
+ test/tc_name.rb
305
+ test/tc_naptr.rb
306
+ test/tc_nsec.rb
307
+ test/tc_nsec3.rb
308
+ test/tc_nsec3param.rb
309
+ test/tc_nxt.rb
310
+ test/tc_packet.rb
311
+ test/tc_packet_unique_push.rb
312
+ test/tc_ptrin.rb
313
+ test/tc_question.rb
314
+ test/tc_queue.rb
315
+ test/tc_recur.rb
316
+ test/tc_res_config.rb
317
+ test/tc_res_file.rb
318
+ test/tc_res_opt.rb
319
+ test/tc_resolv.rb
320
+ test/tc_resolver.rb
321
+ test/tc_rr-opt.rb
322
+ test/tc_rr-txt.rb
323
+ test/tc_rr-unknown.rb
324
+ test/tc_rr.rb
325
+ test/tc_rrset.rb
326
+ test/tc_rrsig.rb
327
+ test/tc_single_resolver.rb
328
+ test/tc_soak_base.rb
329
+ test/tc_sshfp.rb
330
+ test/tc_tcp.rb
331
+ test/tc_tcp_pipelining.rb
332
+ test/tc_tkey.rb
333
+ test/tc_update.rb
334
+ test/tc_zone_reader.rb
335
+
336
+
337
+ Failures:
338
+
339
+ test/tc_dlv.rb
340
+ test/tc_res_env.rb
341
+ test/tc_soak.rb
342
+ test/tc_tsig.rb
343
+ test/tc_validator.rb
344
+ test/tc_verifier.rb
345
+
346
+ =end
347
+