minitest 5.12.2 → 5.13.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b2641be64df14346ec6637e9fa14064f8f52935d4f3c67acf11bc4e2d3b95986
4
- data.tar.gz: 9c9c1be3371b73c68ebfda92173d5c468d584e0cd4e405329453027397a651f7
3
+ metadata.gz: 36b98534b771e1eb6b67bae4b151e957f74f7e2159b589c3527e5eb0762aaa94
4
+ data.tar.gz: c5e6fab215fc67cf3133867954b55d438b00d11c1fa2df17efe456fc2ea29fb3
5
5
  SHA512:
6
- metadata.gz: e04d9e566ec0d8175bb18cee72a44bee41f363fa4dea11d8b14e6373ae4ef489d3ee01fd8308cb9ba7b710d75e25d13650cd452a61017e151ce7616bebb6bd93
7
- data.tar.gz: 3d324b4e1c1fc3ba294fd6806a3069df391a950b1594b27110accc0d0afe069d1b9555760555372bb597f0f6e99afbe9cc71bd2a049d1a74f7e9f385f4bc7322
6
+ metadata.gz: ee628ae22e60b6457c8896b86e35cef293d2bd16277b9ed55ebb7b866a98c65087ca09416c214476c821a2147e40ad3ca0a7eeab9c6ce43f19e68807b5f1753e
7
+ data.tar.gz: 99c5476047e5418137429ea4d8a5ead8d6f2bca2fb5e316dcff656d083d318ee2b19b66ce2365ee639b6217ef1ad5c22fda103497953639aebb0c5876c8f0683
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,23 @@
1
+ === 5.13.0 / 2019-10-29
2
+
3
+ * 9 minor enhancements:
4
+
5
+ * Added Minitest::Guard#osx?
6
+ * Added examples to documentation for assert_raises. (lxxxvi)
7
+ * Added expectations #path_must_exist and #path_wont_exist. Not thrilled with the names.
8
+ * Added fail_after(year, month, day, msg) to allow time-bombing after a deadline.
9
+ * Added skip_until(year, month, day, msg) to allow deferring until a deadline.
10
+ * Deprecated Minitest::Guard#maglev?
11
+ * Deprecated Minitest::Guard#rubinius?
12
+ * Finally added assert_path_exists and refute_path_exists. (deivid-rodriguez)
13
+ * Refactored and pulled Assertions#things_to_diff out of #diff. (BurdetteLamar)
14
+
15
+ * 3 bug fixes:
16
+
17
+ * Fix autorun bug that affects fork exit status in tests. (dylanahsmith/jhawthorn)
18
+ * Improved documentation for _/value/expect, especially for blocks. (svoop)
19
+ * Support new Proc#to_s format. (ko1)
20
+
1
21
  === 5.12.2 / 2019-09-28
2
22
 
3
23
  * 1 bug fix:
@@ -8,7 +8,7 @@ require "stringio"
8
8
  # :include: README.rdoc
9
9
 
10
10
  module Minitest
11
- VERSION = "5.12.2" # :nodoc:
11
+ VERSION = "5.13.0" # :nodoc:
12
12
  ENCS = "".respond_to? :encoding # :nodoc:
13
13
 
14
14
  @@installed_at_exit ||= false
@@ -58,7 +58,9 @@ module Minitest
58
58
 
59
59
  exit_code = nil
60
60
 
61
+ pid = Process.pid
61
62
  at_exit {
63
+ next if Process.pid != pid
62
64
  @@after_run.reverse_each(&:call)
63
65
  exit exit_code || false
64
66
  }
@@ -958,6 +960,9 @@ module Minitest
958
960
  # Is this running on maglev?
959
961
 
960
962
  def maglev? platform = defined?(RUBY_ENGINE) && RUBY_ENGINE
963
+ where = Minitest.filter_backtrace(caller).first
964
+ where = where.split(/:in /, 2).first # clean up noise
965
+ warn "DEPRECATED: `maglev?` called from #{where}. This will fail in Minitest 6."
961
966
  "maglev" == platform
962
967
  end
963
968
 
@@ -968,10 +973,20 @@ module Minitest
968
973
  /^ruby/ =~ platform
969
974
  end
970
975
 
976
+ ##
977
+ # Is this running on macOS?
978
+
979
+ def osx? platform = RUBY_PLATFORM
980
+ /darwin/ =~ platform
981
+ end
982
+
971
983
  ##
972
984
  # Is this running on rubinius?
973
985
 
974
986
  def rubinius? platform = defined?(RUBY_ENGINE) && RUBY_ENGINE
987
+ where = Minitest.filter_backtrace(caller).first
988
+ where = where.split(/:in /, 2).first # clean up noise
989
+ warn "DEPRECATED: `rubinius?` called from #{where}. This will fail in Minitest 6."
975
990
  "rbx" == platform
976
991
  end
977
992
 
@@ -32,8 +32,6 @@ module Minitest
32
32
  @diff = if (RbConfig::CONFIG["host_os"] =~ /mswin|mingw/ &&
33
33
  system("diff.exe", __FILE__, __FILE__)) then
34
34
  "diff.exe -u"
35
- elsif Minitest::Test.maglev? then
36
- "diff -u"
37
35
  elsif system("gdiff", __FILE__, __FILE__)
38
36
  "gdiff -u" # solaris and kin suck
39
37
  elsif system("diff", __FILE__, __FILE__)
@@ -55,25 +53,16 @@ module Minitest
55
53
  # diff command or if it doesn't make sense to diff the output
56
54
  # (single line, short output), then it simply returns a basic
57
55
  # comparison between the two.
56
+ #
57
+ # See +things_to_diff+ for more info.
58
58
 
59
59
  def diff exp, act
60
- expect = mu_pp_for_diff exp
61
- butwas = mu_pp_for_diff act
62
60
  result = nil
63
61
 
64
- e1, e2 = expect.include?("\n"), expect.include?("\\n")
65
- b1, b2 = butwas.include?("\n"), butwas.include?("\\n")
66
-
67
- need_to_diff =
68
- (e1 ^ e2 ||
69
- b1 ^ b2 ||
70
- expect.size > 30 ||
71
- butwas.size > 30 ||
72
- expect == butwas) &&
73
- Minitest::Assertions.diff
62
+ expect, butwas = things_to_diff(exp, act)
74
63
 
75
64
  return "Expected: #{mu_pp exp}\n Actual: #{mu_pp act}" unless
76
- need_to_diff
65
+ expect
77
66
 
78
67
  Tempfile.open("expect") do |a|
79
68
  a.puts expect
@@ -102,6 +91,34 @@ module Minitest
102
91
  result
103
92
  end
104
93
 
94
+ ##
95
+ # Returns things to diff [expect, butwas], or [nil, nil] if nothing to diff.
96
+ #
97
+ # Criterion:
98
+ #
99
+ # 1. Strings include newlines or escaped newlines, but not both.
100
+ # 2. or: String lengths are > 30 characters.
101
+ # 3. or: Strings are equal to each other (but maybe different encodings?).
102
+ # 4. and: we found a diff executable.
103
+
104
+ def things_to_diff exp, act
105
+ expect = mu_pp_for_diff exp
106
+ butwas = mu_pp_for_diff act
107
+
108
+ e1, e2 = expect.include?("\n"), expect.include?("\\n")
109
+ b1, b2 = butwas.include?("\n"), butwas.include?("\\n")
110
+
111
+ need_to_diff =
112
+ (e1 ^ e2 ||
113
+ b1 ^ b2 ||
114
+ expect.size > 30 ||
115
+ butwas.size > 30 ||
116
+ expect == butwas) &&
117
+ Minitest::Assertions.diff
118
+
119
+ need_to_diff && [expect, butwas]
120
+ end
121
+
105
122
  ##
106
123
  # This returns a human-readable version of +obj+. By default
107
124
  # #inspect is called. You can override this to use #pretty_inspect
@@ -326,6 +343,14 @@ module Minitest
326
343
  (!stdout || x) && (!stderr || y)
327
344
  end
328
345
 
346
+ ##
347
+ # Fails unless +path+ exists.
348
+
349
+ def assert_path_exists path, msg = nil
350
+ msg = message(msg) { "Expected path '#{path}' to exist" }
351
+ assert File.exist?(path), msg
352
+ end
353
+
329
354
  ##
330
355
  # For testing with predicates. Eg:
331
356
  #
@@ -346,7 +371,21 @@ module Minitest
346
371
  #
347
372
  # +exp+ takes an optional message on the end to help explain
348
373
  # failures and defaults to StandardError if no exception class is
349
- # passed.
374
+ # passed. Eg:
375
+ #
376
+ # assert_raises(CustomError) { method_with_custom_error }
377
+ #
378
+ # With custom error message:
379
+ #
380
+ # assert_raises(CustomError, 'This should have raised CustomError') { method_with_custom_error }
381
+ #
382
+ # Using the returned object:
383
+ #
384
+ # error = assert_raises(CustomError) do
385
+ # raise CustomError, 'This is really bad'
386
+ # end
387
+ #
388
+ # assert_equal 'This is really bad', error.message
350
389
 
351
390
  def assert_raises *exp
352
391
  flunk "assert_raises requires a block to capture errors." unless
@@ -537,7 +576,16 @@ module Minitest
537
576
  end
538
577
 
539
578
  ##
540
- # Fails with +msg+
579
+ # Fails after a given date (in the local time zone). This allows
580
+ # you to put time-bombs in your tests if you need to keep
581
+ # something around until a later date lest you forget about it.
582
+
583
+ def fail_after y,m,d,msg
584
+ flunk msg if Time.now > Time.local(y, m, d)
585
+ end
586
+
587
+ ##
588
+ # Fails with +msg+.
541
589
 
542
590
  def flunk msg = nil
543
591
  msg ||= "Epic Fail!"
@@ -671,6 +719,14 @@ module Minitest
671
719
  refute o1.__send__(op, o2), msg
672
720
  end
673
721
 
722
+ ##
723
+ # Fails if +path+ exists.
724
+
725
+ def refute_path_exists path, msg = nil
726
+ msg = message(msg) { "Expected path '#{path}' to not exist" }
727
+ refute File.exist?(path), msg
728
+ end
729
+
674
730
  ##
675
731
  # For testing with predicates.
676
732
  #
@@ -716,6 +772,18 @@ module Minitest
716
772
  raise Minitest::Skip, msg, bt
717
773
  end
718
774
 
775
+ ##
776
+ # Skips the current run until a given date (in the local time
777
+ # zone). This allows you to put some fixes on hold until a later
778
+ # date, but still holds you accountable and prevents you from
779
+ # forgetting it.
780
+
781
+ def skip_until y,m,d,msg
782
+ skip msg if Time.now < Time.local(y, m, d)
783
+ where = caller.first.split(/:/, 3).first(2).join ":"
784
+ warn "Stale skip_until %p at %s" % [msg, where]
785
+ end
786
+
719
787
  ##
720
788
  # Was this testcase skipped? Meant for #teardown.
721
789
 
@@ -168,6 +168,24 @@ module Minitest::Expectations
168
168
 
169
169
  infect_an_assertion :assert_throws, :must_throw, :block
170
170
 
171
+ ##
172
+ # See Minitest::Assertions#assert_path_exists
173
+ #
174
+ # _(some_path).path_must_exist
175
+ #
176
+ # :method: path_must_exist
177
+
178
+ infect_an_assertion :assert_path_exists, :path_must_exist, :unary
179
+
180
+ ##
181
+ # See Minitest::Assertions#refute_path_exists
182
+ #
183
+ # _(some_path).path_wont_exist
184
+ #
185
+ # :method: path_wont_exist
186
+
187
+ infect_an_assertion :refute_path_exists, :path_wont_exist, :unary
188
+
171
189
  ##
172
190
  # See Minitest::Assertions#refute_empty
173
191
  #
@@ -289,21 +289,28 @@ class Minitest::Spec < Minitest::Test
289
289
 
290
290
  module InstanceMethods
291
291
  ##
292
- # Returns a value monad that has all of Expectations methods
293
- # available to it.
292
+ # Takes a value or a block and returns a value monad that has
293
+ # all of Expectations methods available to it.
294
294
  #
295
- # Also aliased to #value and #expect for your aesthetic pleasure:
295
+ # _(1 + 1).must_equal 2
296
296
  #
297
- # _(1 + 1).must_equal 2
298
- # value(1 + 1).must_equal 2
299
- # expect(1 + 1).must_equal 2
297
+ # And for blocks:
298
+ #
299
+ # _ { 1 + "1" }.must_raise TypeError
300
300
  #
301
301
  # This method of expectation-based testing is preferable to
302
302
  # straight-expectation methods (on Object) because it stores its
303
303
  # test context, bypassing our hacky use of thread-local variables.
304
304
  #
305
- # At some point, the methods on Object will be deprecated and then
306
- # removed.
305
+ # NOTE: At some point, the methods on Object will be deprecated
306
+ # and then removed.
307
+ #
308
+ # It is also aliased to #value and #expect for your aesthetic
309
+ # pleasure:
310
+ #
311
+ # _(1 + 1).must_equal 2
312
+ # value(1 + 1).must_equal 2
313
+ # expect(1 + 1).must_equal 2
307
314
 
308
315
  def _ value = nil, &block
309
316
  Minitest::Expectation.new block || value, self
@@ -25,6 +25,14 @@ class AnError < StandardError; include MyModule; end
25
25
  class MetaMetaMetaTestCase < Minitest::Test
26
26
  attr_accessor :reporter, :output, :tu
27
27
 
28
+ def with_stderr err
29
+ old = $stderr
30
+ $stderr = err
31
+ yield
32
+ ensure
33
+ $stderr = old
34
+ end
35
+
28
36
  def run_tu_with_fresh_reporter flags = %w[--seed 42]
29
37
  options = Minitest.process_args flags
30
38
 
@@ -34,18 +42,20 @@ class MetaMetaMetaTestCase < Minitest::Test
34
42
  reporter << Minitest::SummaryReporter.new(@output, options)
35
43
  reporter << Minitest::ProgressReporter.new(@output, options)
36
44
 
37
- reporter.start
45
+ with_stderr @output do
46
+ reporter.start
38
47
 
39
- yield(reporter) if block_given?
48
+ yield(reporter) if block_given?
40
49
 
41
- @tus ||= [@tu]
42
- @tus.each do |tu|
43
- Minitest::Runnable.runnables.delete tu
50
+ @tus ||= [@tu]
51
+ @tus.each do |tu|
52
+ Minitest::Runnable.runnables.delete tu
44
53
 
45
- tu.run reporter, options
46
- end
54
+ tu.run reporter, options
55
+ end
47
56
 
48
- reporter.report
57
+ reporter.report
58
+ end
49
59
  end
50
60
 
51
61
  def first_reporter
@@ -84,6 +94,8 @@ class MetaMetaMetaTestCase < Minitest::Test
84
94
  output.gsub!(/^(\s+)[^:]+:\d+:in/, '\1FILE:LINE:in')
85
95
  end
86
96
 
97
+ output.gsub!(/( at )[^:]+:\d+/, '\1[FILE:LINE]')
98
+
87
99
  output
88
100
  end
89
101
 
@@ -397,7 +397,7 @@ class TestMinitestAssertions < Minitest::Test
397
397
  end
398
398
 
399
399
  def test_assert_in_delta_triggered
400
- x = maglev? ? "9.999999xxxe-07" : "1.0e-06"
400
+ x = "1.0e-06"
401
401
  assert_triggered "Expected |0.0 - 0.001| (0.001) to be <= #{x}." do
402
402
  @tc.assert_in_delta 0.0, 1.0 / 1000, 0.000001
403
403
  end
@@ -428,7 +428,7 @@ class TestMinitestAssertions < Minitest::Test
428
428
 
429
429
  def test_assert_in_epsilon_triggered_negative_case
430
430
  x = (RUBY18 and not maglev?) ? "0.1" : "0.100000xxx"
431
- y = maglev? ? "0.100000xxx" : "0.1"
431
+ y = "0.1"
432
432
  assert_triggered "Expected |-1.1 - -1| (#{x}) to be <= #{y}." do
433
433
  @tc.assert_in_epsilon(-1.1, -1, 0.1)
434
434
  end
@@ -906,6 +906,16 @@ class TestMinitestAssertions < Minitest::Test
906
906
  end
907
907
  end
908
908
 
909
+ def test_assert_path_exists
910
+ @tc.assert_path_exists __FILE__
911
+ end
912
+
913
+ def test_assert_path_exists_triggered
914
+ assert_triggered "Expected path 'blah' to exist." do
915
+ @tc.assert_path_exists "blah"
916
+ end
917
+ end
918
+
909
919
  def test_capture_io
910
920
  @assertion_count = 0
911
921
 
@@ -978,6 +988,19 @@ class TestMinitestAssertions < Minitest::Test
978
988
  end
979
989
  end
980
990
 
991
+ def test_fail_after
992
+ t = Time.now
993
+ y, m, d = t.year, t.month, t.day
994
+
995
+ assert_silent do
996
+ @tc.fail_after y, m, d+1, "remove the deprecations"
997
+ end
998
+
999
+ assert_triggered "remove the deprecations" do
1000
+ @tc.fail_after y, m, d, "remove the deprecations"
1001
+ end
1002
+ end
1003
+
981
1004
  def test_flunk
982
1005
  assert_triggered "Epic Fail!" do
983
1006
  @tc.flunk
@@ -1029,7 +1052,7 @@ class TestMinitestAssertions < Minitest::Test
1029
1052
  end
1030
1053
 
1031
1054
  def test_refute_in_delta_triggered
1032
- x = maglev? ? "0.100000xxx" : "0.1"
1055
+ x = "0.1"
1033
1056
  assert_triggered "Expected |0.0 - 0.001| (0.001) to not be <= #{x}." do
1034
1057
  @tc.refute_in_delta 0.0, 1.0 / 1000, 0.1
1035
1058
  end
@@ -1171,6 +1194,16 @@ class TestMinitestAssertions < Minitest::Test
1171
1194
  end
1172
1195
  end
1173
1196
 
1197
+ def test_refute_path_exists
1198
+ @tc.refute_path_exists "blah"
1199
+ end
1200
+
1201
+ def test_refute_path_exists_triggered
1202
+ assert_triggered "Expected path '#{__FILE__}' to not exist." do
1203
+ @tc.refute_path_exists __FILE__
1204
+ end
1205
+ end
1206
+
1174
1207
  def test_skip
1175
1208
  @assertion_count = 0
1176
1209
 
@@ -1179,6 +1212,21 @@ class TestMinitestAssertions < Minitest::Test
1179
1212
  end
1180
1213
  end
1181
1214
 
1215
+ def test_skip_until
1216
+ @assertion_count = 0
1217
+
1218
+ t = Time.now
1219
+ y, m, d = t.year, t.month, t.day
1220
+
1221
+ assert_output "", /Stale skip_until \"not yet\" at .*?:\d+$/ do
1222
+ @tc.skip_until y, m, d, "not yet"
1223
+ end
1224
+
1225
+ assert_triggered "not ready yet", Minitest::Skip do
1226
+ @tc.skip_until y, m, d+1, "not ready yet"
1227
+ end
1228
+ end
1229
+
1182
1230
  def util_msg exp, act, msg = nil
1183
1231
  s = "Expected: #{exp.inspect}\n Actual: #{act.inspect}"
1184
1232
  s = "#{msg}.\n#{s}" if msg
@@ -64,8 +64,6 @@ class TestMinitestMock < Minitest::Test
64
64
  end
65
65
 
66
66
  def test_mock_args_does_not_raise
67
- skip "non-opaque use of ==" if maglev?
68
-
69
67
  arg = Minitest::Mock.new
70
68
  mock = Minitest::Mock.new
71
69
  mock.expect(:foo, nil, [arg])
@@ -26,9 +26,8 @@ describe Minitest::Spec do
26
26
 
27
27
  msg = e.message.sub(/(---Backtrace---).*/m, '\1')
28
28
  msg.gsub!(/\(oid=[-0-9]+\)/, "(oid=N)")
29
- msg.gsub!(/@.+>/, "@PATH>")
30
29
  msg.gsub!(/(\d\.\d{6})\d+/, '\1xxx') # normalize: ruby version, impl, platform
31
- msg.gsub!(/:0x[a-fA-F0-9]{4,}/m, ":0xXXXXXX")
30
+ msg.gsub!(/:0x[Xa-fA-F0-9]{4,}[ @].+?>/, ":0xXXXXXX@PATH>")
32
31
 
33
32
  if expected
34
33
  @assertion_count += 1
@@ -60,6 +59,26 @@ describe Minitest::Spec do
60
59
  end
61
60
  end
62
61
 
62
+ it "needs to check for file existence" do
63
+ @assertion_count = 3
64
+
65
+ _(_(__FILE__).path_must_exist).must_equal true
66
+
67
+ assert_triggered "Expected path 'blah' to exist." do
68
+ _("blah").path_must_exist
69
+ end
70
+ end
71
+
72
+ it "needs to check for file non-existence" do
73
+ @assertion_count = 3
74
+
75
+ _(_("blah").path_wont_exist).must_equal false
76
+
77
+ assert_triggered "Expected path '#{__FILE__}' to not exist." do
78
+ _(__FILE__).path_wont_exist
79
+ end
80
+ end
81
+
63
82
  it "needs to be sensible about must_include order" do
64
83
  @assertion_count += 3 # must_include is 2 assertions
65
84
 
@@ -130,10 +149,10 @@ describe Minitest::Spec do
130
149
 
131
150
  @assertion_count = 2
132
151
 
133
- methods = Object.public_instance_methods.find_all { |n| n =~ /^must|^wont/ }
152
+ methods = Minitest::Expectations.public_instance_methods.grep(/must|wont/)
134
153
  methods.map!(&:to_s) if Symbol === methods.first
135
154
 
136
- musts, wonts = methods.sort.partition { |m| m =~ /^must/ }
155
+ musts, wonts = methods.sort.partition { |m| m =~ /must/ }
137
156
 
138
157
  expected_musts = %w[must_be
139
158
  must_be_close_to
@@ -151,11 +170,12 @@ describe Minitest::Spec do
151
170
  must_output
152
171
  must_raise
153
172
  must_respond_to
154
- must_throw]
173
+ must_throw
174
+ path_must_exist]
155
175
 
156
176
  bad = %w[not raise throw send output be_silent]
157
177
 
158
- expected_wonts = expected_musts.map { |m| m.sub(/^must/, "wont") }
178
+ expected_wonts = expected_musts.map { |m| m.sub(/must/, "wont") }.sort
159
179
  expected_wonts.reject! { |m| m =~ /wont_#{Regexp.union(*bad)}/ }
160
180
 
161
181
  _(musts).must_equal expected_musts
@@ -213,7 +233,7 @@ describe Minitest::Spec do
213
233
  _(6 * 9).must_equal 42, "msg"
214
234
  end
215
235
 
216
- assert_triggered(/^-42\n\+#<Proc:0xXXXXXX@PATH>\n/) do
236
+ assert_triggered(/^-42\n\+#<Proc:0xXXXXXX[ @]PATH>\n/) do
217
237
  _(proc { 42 }).must_equal 42 # proc isn't called, so expectation fails
218
238
  end
219
239
  end
@@ -242,7 +262,7 @@ describe Minitest::Spec do
242
262
  _(6 * 7.0).wont_be_close_to 42
243
263
  end
244
264
 
245
- x = maglev? ? "1.0000000000000001e-05" : "1.0e-05"
265
+ x = "1.0e-05"
246
266
  assert_triggered "Expected |42 - 42.0| (0.0) to not be <= #{x}." do
247
267
  _(6 * 7.0).wont_be_close_to 42, 0.00001
248
268
  end
@@ -257,12 +277,12 @@ describe Minitest::Spec do
257
277
 
258
278
  _(_(24).wont_be_within_epsilon(42)).must_equal false
259
279
 
260
- x = maglev? ? "0.042000000000000003" : "0.042"
280
+ x = "0.042"
261
281
  assert_triggered "Expected |42 - 42.0| (0.0) to not be <= #{x}." do
262
282
  _(6 * 7.0).wont_be_within_epsilon 42
263
283
  end
264
284
 
265
- x = maglev? ? "0.00042000000000000002" : "0.00042"
285
+ x = "0.00042"
266
286
  assert_triggered "Expected |42 - 42.0| (0.0) to not be <= #{x}." do
267
287
  _(6 * 7.0).wont_be_within_epsilon 42, 0.00001
268
288
  end
@@ -281,7 +301,7 @@ describe Minitest::Spec do
281
301
  _(1.0 / 100).must_be_close_to 0.0
282
302
  end
283
303
 
284
- x = maglev? ? "9.9999999999999995e-07" : "1.0e-06"
304
+ x = "1.0e-06"
285
305
  assert_triggered "Expected |0.0 - 0.001| (0.001) to be <= #{x}." do
286
306
  _(1.0 / 1000).must_be_close_to 0.0, 0.000001
287
307
  end
@@ -582,8 +582,6 @@ class TestMinitestRunner < MetaMetaMetaTestCase
582
582
  end
583
583
 
584
584
  def test_run_parallel
585
- skip "I don't have ParallelEach debugged yet" if maglev?
586
-
587
585
  test_count = 2
588
586
  test_latch = Latch.new test_count
589
587
  wait_latch = Latch.new test_count
@@ -857,12 +855,7 @@ class TestMinitestUnitTestCase < Minitest::Test
857
855
  end
858
856
 
859
857
  srand 42
860
- expected = case
861
- when maglev? then
862
- %w[test_test2 test_test3 test_test1]
863
- else
864
- %w[test_test2 test_test1 test_test3]
865
- end
858
+ expected = %w[test_test2 test_test1 test_test3]
866
859
  assert_equal expected, sample_test_case.runnable_methods
867
860
  end
868
861
 
@@ -901,6 +894,20 @@ class TestMinitestUnitTestCase < Minitest::Test
901
894
  shitty_test_case.i_suck_and_my_tests_are_order_dependent!
902
895
  end
903
896
  end
897
+
898
+ def test_autorun_does_not_affect_fork_success_status
899
+ @assertion_count = 0
900
+ skip "windows doesn't have skip" unless Process.respond_to?(:fork)
901
+ Process.waitpid(fork {})
902
+ assert_equal true, $?.success?
903
+ end
904
+
905
+ def test_autorun_does_not_affect_fork_exit_status
906
+ @assertion_count = 0
907
+ skip "windows doesn't have skip" unless Process.respond_to?(:fork)
908
+ Process.waitpid(fork { exit 42 })
909
+ assert_equal 42, $?.exitstatus
910
+ end
904
911
  end
905
912
 
906
913
  class TestMinitestGuard < Minitest::Test
@@ -917,8 +924,26 @@ class TestMinitestGuard < Minitest::Test
917
924
  end
918
925
 
919
926
  def test_rubinius_eh
920
- assert self.class.rubinius? "rbx"
921
- assert self.rubinius? "rbx"
927
+ assert_output "", /DEPRECATED/ do
928
+ assert self.class.rubinius? "rbx"
929
+ end
930
+ assert_output "", /DEPRECATED/ do
931
+ assert self.rubinius? "rbx"
932
+ end
933
+ end
934
+
935
+ def test_maglev_eh
936
+ assert_output "", /DEPRECATED/ do
937
+ assert self.class.maglev? "maglev"
938
+ end
939
+ assert_output "", /DEPRECATED/ do
940
+ assert self.maglev? "maglev"
941
+ end
942
+ end
943
+
944
+ def test_osx_eh
945
+ assert self.class.osx? "darwin"
946
+ assert self.osx? "darwin"
922
947
  end
923
948
 
924
949
  def test_windows_eh
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.12.2
4
+ version: 5.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -29,7 +29,7 @@ cert_chain:
29
29
  Em82dBUFsipwMLCYj39kcyHWAxyl6Ae1Cn9r/ItVBCxoeFdrHjfavnrIEoXUt4bU
30
30
  UfBugfLD19bu3nvL+zTAGx/U
31
31
  -----END CERTIFICATE-----
32
- date: 2019-09-29 00:00:00.000000000 Z
32
+ date: 2019-10-30 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rdoc
metadata.gz.sig CHANGED
@@ -1 +1 @@
1
- nS+�MN4~����g�����d���=������4 z%@A��!~s��,�hK!xOJ����L;��������ǕO�t s99���x2�����AD$\a|��d~{�y \���G���*Ƞ,�7��!_�Ά�b��'nt����"Ƈ’b��h��S �:��fo2�ސo$����{s�څ��^��̢�%��b��jM��F7�v�-�Gc(��l[5u��8K�#s��.�Rze6kY��lm\W�����;�
1
+ ]C��6��{��a�&�)_�;J�ꙜV�����]_5&�`Q[Y����a����`������cV[��qo?�h�y�nҸZ4wz-�:�Z0ܧ�-e}ǹ�3��.Z��p��]u_=���*B��-y f�9�_�kqS�+��:Je�|�e拆̷�vXi��e�XV6�>������׻uI=,���64����לi6�<���kɾދ�,f��,�=7�73�3yN�Gu:I��_�������IW8�