minitest 5.12.0 → 5.22.2

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.
@@ -48,9 +48,11 @@ class TestMinitestUnit < MetaMetaMetaTestCase
48
48
  "test/test_autotest.rb:62:in `test_add_exception'"]
49
49
  ex = util_expand_bt ex
50
50
 
51
- fu = Minitest.filter_backtrace(bt)
51
+ Minitest::Test.io_lock.synchronize do # try not to trounce in parallel
52
+ fu = Minitest.filter_backtrace(bt)
52
53
 
53
- assert_equal ex, fu
54
+ assert_equal ex, fu
55
+ end
54
56
  end
55
57
 
56
58
  def test_filter_backtrace_all_unit
@@ -71,13 +73,19 @@ class TestMinitestUnit < MetaMetaMetaTestCase
71
73
  bt = util_expand_bt bt
72
74
 
73
75
  ex = ["-e:1"]
74
- fu = Minitest.filter_backtrace bt
75
- assert_equal ex, fu
76
+ Minitest::Test.io_lock.synchronize do # try not to trounce in parallel
77
+ fu = Minitest.filter_backtrace bt
78
+ assert_equal ex, fu
79
+ end
76
80
  end
77
81
 
78
- # def test_default_runner_is_minitest_unit
79
- # assert_instance_of Minitest::Unit, Minitest::Unit.runner
80
- # end
82
+ def test_filter_backtrace__empty
83
+ with_empty_backtrace_filter do
84
+ bt = %w[first second third]
85
+ fu = Minitest.filter_backtrace bt.dup
86
+ assert_equal bt, fu
87
+ end
88
+ end
81
89
 
82
90
  def test_infectious_binary_encoding
83
91
  @tu = Class.new FakeNamedTest do
@@ -91,24 +99,26 @@ class TestMinitestUnit < MetaMetaMetaTestCase
91
99
  end
92
100
 
93
101
  expected = clean <<-EOM
94
- EF
102
+ FE
95
103
 
96
104
  Finished in 0.00
97
105
 
98
- 1) Error:
99
- FakeNamedTestXX#test_this_is_non_ascii_failure_message:
100
- RuntimeError: ЁЁЁ
101
- FILE:LINE:in `test_this_is_non_ascii_failure_message'
102
-
103
- 2) Failure:
106
+ 1) Failure:
104
107
  FakeNamedTestXX#test_this_is_not_ascii_assertion [FILE:LINE]:
105
108
  Expected: \"ЁЁЁ\"
106
109
  Actual: \"ёёё\"
107
110
 
111
+ 2) Error:
112
+ FakeNamedTestXX#test_this_is_non_ascii_failure_message:
113
+ RuntimeError: ЁЁЁ
114
+ FILE:LINE:in `test_this_is_non_ascii_failure_message'
115
+
108
116
  2 runs, 1 assertions, 1 failures, 1 errors, 0 skips
109
117
  EOM
110
118
 
111
- assert_report expected
119
+ Minitest::Test.io_lock.synchronize do # try not to trounce in parallel
120
+ assert_report expected
121
+ end
112
122
  end
113
123
 
114
124
  def test_passed_eh_teardown_good
@@ -154,11 +164,7 @@ class TestMinitestUnit < MetaMetaMetaTestCase
154
164
  end
155
165
 
156
166
  def util_expand_bt bt
157
- if RUBY_VERSION >= "1.9.0" then
158
- bt.map { |f| (f =~ /^\./) ? File.expand_path(f) : f }
159
- else
160
- bt
161
- end
167
+ bt.map { |f| (f =~ /^\./) ? File.expand_path(f) : f }
162
168
  end
163
169
  end
164
170
 
@@ -250,7 +256,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
250
256
  end
251
257
 
252
258
  expected = clean <<-EOM
253
- E.
259
+ .E
254
260
 
255
261
  Finished in 0.00
256
262
 
@@ -297,7 +303,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
297
303
  setup_basic_tu
298
304
 
299
305
  expected = clean <<-EOM
300
- F.
306
+ .F
301
307
 
302
308
  Finished in 0.00
303
309
 
@@ -324,6 +330,10 @@ class TestMinitestRunner < MetaMetaMetaTestCase
324
330
  end
325
331
  end
326
332
 
333
+ def test_seed # this is set for THIS run, so I'm not testing it's actual value
334
+ assert_instance_of Integer, Minitest.seed
335
+ end
336
+
327
337
  def test_run_failing_filtered
328
338
  setup_basic_tu
329
339
 
@@ -481,7 +491,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
481
491
  end
482
492
 
483
493
  expected = clean <<-EOM
484
- S.
494
+ .S
485
495
 
486
496
  Finished in 0.00
487
497
 
@@ -508,8 +518,8 @@ class TestMinitestRunner < MetaMetaMetaTestCase
508
518
  end
509
519
 
510
520
  expected = clean <<-EOM
511
- FakeNamedTestXX#test_skip = 0.00 s = S
512
521
  FakeNamedTestXX#test_something = 0.00 s = .
522
+ FakeNamedTestXX#test_skip = 0.00 s = S
513
523
 
514
524
  Finished in 0.00
515
525
 
@@ -523,6 +533,33 @@ class TestMinitestRunner < MetaMetaMetaTestCase
523
533
  assert_report expected, %w[--seed 42 --verbose]
524
534
  end
525
535
 
536
+ def test_run_skip_show_skips
537
+ @tu =
538
+ Class.new FakeNamedTest do
539
+ def test_something
540
+ assert true
541
+ end
542
+
543
+ def test_skip
544
+ skip "not yet"
545
+ end
546
+ end
547
+
548
+ expected = clean <<-EOM
549
+ .S
550
+
551
+ Finished in 0.00
552
+
553
+ 1) Skipped:
554
+ FakeNamedTestXX#test_skip [FILE:LINE]:
555
+ not yet
556
+
557
+ 2 runs, 1 assertions, 0 failures, 0 errors, 1 skips
558
+ EOM
559
+
560
+ assert_report expected, %w[--seed 42 --show-skips]
561
+ end
562
+
526
563
  def test_run_with_other_runner
527
564
  @tu =
528
565
  Class.new FakeNamedTest do
@@ -582,8 +619,6 @@ class TestMinitestRunner < MetaMetaMetaTestCase
582
619
  end
583
620
 
584
621
  def test_run_parallel
585
- skip "I don't have ParallelEach debugged yet" if maglev?
586
-
587
622
  test_count = 2
588
623
  test_latch = Latch.new test_count
589
624
  wait_latch = Latch.new test_count
@@ -625,6 +660,8 @@ class TestMinitestRunner < MetaMetaMetaTestCase
625
660
  2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
626
661
  EOM
627
662
 
663
+ skip if Minitest.parallel_executor.size < 2 # locks up test runner if 1 CPU
664
+
628
665
  assert_report(expected) do |reporter|
629
666
  reporter.extend(Module.new {
630
667
  define_method("record") do |result|
@@ -749,6 +786,13 @@ class TestMinitestUnitOrder < MetaMetaMetaTestCase
749
786
  end
750
787
  end
751
788
 
789
+ class BetterError < RuntimeError # like better_error w/o infecting RuntimeError
790
+ def set_backtrace bt
791
+ super
792
+ @bad_ivar = binding
793
+ end
794
+ end
795
+
752
796
  class TestMinitestRunnable < Minitest::Test
753
797
  def setup_marshal klass
754
798
  tc = klass.new "whatever"
@@ -801,6 +845,146 @@ class TestMinitestRunnable < Minitest::Test
801
845
  assert_equal @tc.failures, over_the_wire.failures
802
846
  assert_equal @tc.klass, over_the_wire.klass
803
847
  end
848
+
849
+ def test_spec_marshal_with_exception
850
+ klass = describe("whatever") {
851
+ it("raises, badly") {
852
+ raise Class.new(StandardError), "this is bad!"
853
+ }
854
+ }
855
+
856
+ rm = klass.runnable_methods.first
857
+
858
+ # Run the test
859
+ @tc = klass.new(rm).run
860
+
861
+ assert_kind_of Minitest::Result, @tc
862
+ assert_instance_of Minitest::UnexpectedError, @tc.failure
863
+
864
+ msg = @tc.failure.error.message
865
+ assert_includes msg, "Neutered Exception #<Class:"
866
+ assert_includes msg, "this is bad!"
867
+
868
+ # Pass it over the wire
869
+ over_the_wire = Marshal.load Marshal.dump @tc
870
+
871
+ assert_equal @tc.time, over_the_wire.time
872
+ assert_equal @tc.name, over_the_wire.name
873
+ assert_equal @tc.assertions, over_the_wire.assertions
874
+ assert_equal @tc.failures, over_the_wire.failures
875
+ assert_equal @tc.klass, over_the_wire.klass
876
+ end
877
+
878
+ def test_spec_marshal_with_exception_nameerror
879
+ klass = describe("whatever") {
880
+ it("raises nameerror") {
881
+ NOPE::does_not_exist
882
+ }
883
+ }
884
+
885
+ rm = klass.runnable_methods.first
886
+
887
+ # Run the test
888
+ @tc = klass.new(rm).run
889
+
890
+ assert_kind_of Minitest::Result, @tc
891
+ assert_instance_of Minitest::UnexpectedError, @tc.failure
892
+
893
+ msg = @tc.failure.error.message
894
+ assert_includes msg, "uninitialized constant TestMinitestRunnable::NOPE"
895
+
896
+ # Pass it over the wire
897
+ over_the_wire = Marshal.load Marshal.dump @tc
898
+
899
+ assert_equal @tc.time, over_the_wire.time
900
+ assert_equal @tc.name, over_the_wire.name
901
+ assert_equal @tc.assertions, over_the_wire.assertions
902
+ assert_equal @tc.failures, over_the_wire.failures
903
+ assert_equal @tc.klass, over_the_wire.klass
904
+ end
905
+
906
+ def with_runtime_error klass
907
+ old_runtime = RuntimeError
908
+ Object.send :remove_const, :RuntimeError
909
+ Object.const_set :RuntimeError, klass
910
+ yield
911
+ ensure
912
+ Object.send :remove_const, :RuntimeError
913
+ Object.const_set :RuntimeError, old_runtime
914
+ end
915
+
916
+ def test_spec_marshal_with_exception__better_error_typeerror
917
+ klass = describe("whatever") {
918
+ it("raises with binding") {
919
+ raise BetterError, "boom"
920
+ }
921
+ }
922
+
923
+ rm = klass.runnable_methods.first
924
+
925
+ # Run the test
926
+ @tc = with_runtime_error BetterError do
927
+ klass.new(rm).run
928
+ end
929
+
930
+ assert_kind_of Minitest::Result, @tc
931
+ assert_instance_of Minitest::UnexpectedError, @tc.failure
932
+
933
+ msg = @tc.failure.error.message
934
+ assert_equal "Neutered Exception BetterError: boom", msg
935
+
936
+ # Pass it over the wire
937
+ over_the_wire = Marshal.load Marshal.dump @tc
938
+
939
+ assert_equal @tc.time, over_the_wire.time
940
+ assert_equal @tc.name, over_the_wire.name
941
+ assert_equal @tc.assertions, over_the_wire.assertions
942
+ assert_equal @tc.failures, over_the_wire.failures
943
+ assert_equal @tc.klass, over_the_wire.klass
944
+ end
945
+
946
+ def test_spec_marshal_with_exception__worse_error_typeerror
947
+ worse_error_klass = Class.new(StandardError) do
948
+ # problem #1: anonymous subclass can'tmarshal, fails sanitize_exception
949
+ def initialize(record = nil)
950
+
951
+ super(record.first)
952
+ end
953
+ end
954
+
955
+ klass = describe("whatever") {
956
+ it("raises with NoMethodError") {
957
+ # problem #2: instantiated with a NON-string argument
958
+ #
959
+ # problem #3: arg responds to #first, but it becomes message
960
+ # which gets passed back in via new_exception
961
+ # that passes a string to worse_error_klass#initialize
962
+ # which calls first on it, which raises NoMethodError
963
+ raise worse_error_klass.new(["boom"])
964
+ }
965
+ }
966
+
967
+ rm = klass.runnable_methods.first
968
+
969
+ # Run the test
970
+ @tc = klass.new(rm).run
971
+
972
+ assert_kind_of Minitest::Result, @tc
973
+ assert_instance_of Minitest::UnexpectedError, @tc.failure
974
+
975
+ msg = @tc.failure.error.message.gsub(/0x[A-Fa-f0-9]+/, "0xXXX")
976
+
977
+ assert_equal "Neutered Exception #<Class:0xXXX>: boom", msg
978
+
979
+ # Pass it over the wire
980
+ over_the_wire = Marshal.load Marshal.dump @tc
981
+
982
+ assert_equal @tc.time, over_the_wire.time
983
+ assert_equal @tc.name, over_the_wire.name
984
+ assert_equal @tc.assertions, over_the_wire.assertions
985
+ assert_equal @tc.failures, over_the_wire.failures
986
+ assert_equal @tc.klass, over_the_wire.klass
987
+ end
804
988
  end
805
989
 
806
990
  class TestMinitestTest < TestMinitestRunnable
@@ -846,24 +1030,25 @@ class TestMinitestUnitTestCase < Minitest::Test
846
1030
  $VERBOSE = orig_verbose
847
1031
  end
848
1032
 
1033
+ def sample_test_case(rand)
1034
+ srand rand
1035
+ Class.new FakeNamedTest do
1036
+ 100.times do |i|
1037
+ define_method("test_#{i}") { assert true }
1038
+ end
1039
+ end.runnable_methods
1040
+ end
1041
+
1042
+ # srand varies with OS
849
1043
  def test_runnable_methods_random
850
1044
  @assertion_count = 0
851
1045
 
852
- sample_test_case = Class.new FakeNamedTest do
853
- def self.test_order; :random; end
854
- def test_test1; assert "does not matter" end
855
- def test_test2; assert "does not matter" end
856
- def test_test3; assert "does not matter" end
857
- end
1046
+ random_tests_1 = sample_test_case 42
1047
+ random_tests_2 = sample_test_case 42
1048
+ random_tests_3 = sample_test_case 1_000
858
1049
 
859
- 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
866
- assert_equal expected, sample_test_case.runnable_methods
1050
+ assert_equal random_tests_1, random_tests_2
1051
+ assert_equal random_tests_1, random_tests_3
867
1052
  end
868
1053
 
869
1054
  def test_runnable_methods_sorted
@@ -901,6 +1086,30 @@ class TestMinitestUnitTestCase < Minitest::Test
901
1086
  shitty_test_case.i_suck_and_my_tests_are_order_dependent!
902
1087
  end
903
1088
  end
1089
+
1090
+ def test_autorun_does_not_affect_fork_success_status
1091
+ @assertion_count = 0
1092
+ skip "windows doesn't have fork" unless Process.respond_to?(:fork)
1093
+ Process.waitpid(fork {})
1094
+ assert_equal true, $?.success?
1095
+ end
1096
+
1097
+ def test_autorun_does_not_affect_fork_exit_status
1098
+ @assertion_count = 0
1099
+ skip "windows doesn't have fork" unless Process.respond_to?(:fork)
1100
+ Process.waitpid(fork { exit 42 })
1101
+ assert_equal 42, $?.exitstatus
1102
+ end
1103
+
1104
+ def test_autorun_optionally_can_affect_fork_exit_status
1105
+ @assertion_count = 0
1106
+ skip "windows doesn't have fork" unless Process.respond_to?(:fork)
1107
+ Minitest.allow_fork = true
1108
+ Process.waitpid(fork { exit 42 })
1109
+ refute_equal 42, $?.exitstatus
1110
+ ensure
1111
+ Minitest.allow_fork = false
1112
+ end
904
1113
  end
905
1114
 
906
1115
  class TestMinitestGuard < Minitest::Test
@@ -917,8 +1126,26 @@ class TestMinitestGuard < Minitest::Test
917
1126
  end
918
1127
 
919
1128
  def test_rubinius_eh
920
- assert self.class.rubinius? "rbx"
921
- assert self.rubinius? "rbx"
1129
+ assert_output "", /DEPRECATED/ do
1130
+ assert self.class.rubinius? "rbx"
1131
+ end
1132
+ assert_output "", /DEPRECATED/ do
1133
+ assert self.rubinius? "rbx"
1134
+ end
1135
+ end
1136
+
1137
+ def test_maglev_eh
1138
+ assert_output "", /DEPRECATED/ do
1139
+ assert self.class.maglev? "maglev"
1140
+ end
1141
+ assert_output "", /DEPRECATED/ do
1142
+ assert self.maglev? "maglev"
1143
+ end
1144
+ end
1145
+
1146
+ def test_osx_eh
1147
+ assert self.class.osx? "darwin"
1148
+ assert self.osx? "darwin"
922
1149
  end
923
1150
 
924
1151
  def test_windows_eh
@@ -1053,3 +1280,96 @@ class TestMinitestUnitRecording < MetaMetaMetaTestCase
1053
1280
  end
1054
1281
  end
1055
1282
  end
1283
+
1284
+ class TestUnexpectedError < Minitest::Test
1285
+ def assert_compress exp, input
1286
+ e = Minitest::UnexpectedError.new RuntimeError.new
1287
+
1288
+ exp = exp.lines.map(&:chomp) if String === exp
1289
+ act = e.compress input
1290
+
1291
+ assert_equal exp, act
1292
+ end
1293
+
1294
+ ACT1 = %w[ a b c b c b c b c d ]
1295
+
1296
+ def test_normal
1297
+ assert_compress <<~EXP, %w[ a b c b c b c b c d ]
1298
+ a
1299
+ +->> 4 cycles of 2 lines:
1300
+ | b
1301
+ | c
1302
+ +-<<
1303
+ d
1304
+ EXP
1305
+ end
1306
+
1307
+ def test_normal2
1308
+ assert_compress <<~EXP, %w[ a b c b c b c b c ]
1309
+ a
1310
+ +->> 4 cycles of 2 lines:
1311
+ | b
1312
+ | c
1313
+ +-<<
1314
+ EXP
1315
+ end
1316
+
1317
+ def test_longer_c_than_b
1318
+ # the extra c in the front makes the overall length longer sorting it first
1319
+ assert_compress <<~EXP, %w[ c a b c b c b c b c b d ]
1320
+ c
1321
+ a
1322
+ b
1323
+ +->> 4 cycles of 2 lines:
1324
+ | c
1325
+ | b
1326
+ +-<<
1327
+ d
1328
+ EXP
1329
+ end
1330
+
1331
+ def test_1_line_cycles
1332
+ assert_compress <<~EXP, %w[ c a b c b c b c b c b b b d ]
1333
+ c
1334
+ a
1335
+ +->> 4 cycles of 2 lines:
1336
+ | b
1337
+ | c
1338
+ +-<<
1339
+ +->> 3 cycles of 1 lines:
1340
+ | b
1341
+ +-<<
1342
+ d
1343
+ EXP
1344
+ end
1345
+
1346
+ def test_sanity3
1347
+ pre = ("aa".."am").to_a
1348
+ mid = ("a".."z").to_a * 67
1349
+ post = ("aa".."am").to_a
1350
+ ary = pre + mid + post
1351
+
1352
+ exp = pre +
1353
+ [" +->> 67 cycles of 26 lines:"] +
1354
+ ("a".."z").map { |s| " | #{s}" } +
1355
+ [" +-<<"] +
1356
+ post
1357
+
1358
+ assert_compress exp, ary
1359
+ end
1360
+
1361
+ def test_absurd_patterns
1362
+ assert_compress <<~EXP, %w[ a b c b c a b c b c a b c ]
1363
+ +->> 2 cycles of 5 lines:
1364
+ | a
1365
+ | +->> 2 cycles of 2 lines:
1366
+ | | b
1367
+ | | c
1368
+ | +-<<
1369
+ +-<<
1370
+ a
1371
+ b
1372
+ c
1373
+ EXP
1374
+ end
1375
+ end
@@ -0,0 +1,46 @@
1
+ require "minitest/autorun"
2
+ require "hoe"
3
+
4
+ require "minitest/test_task"
5
+
6
+ Hoe.load_plugins # make sure Hoe::Test is loaded
7
+
8
+ class TestHoeTest < Minitest::Test
9
+ PATH = "test/minitest/test_minitest_test_task.rb"
10
+
11
+ mt_path = %w[lib test .].join File::PATH_SEPARATOR
12
+
13
+ MT_EXPECTED = %W[-I#{mt_path} -w
14
+ -e '%srequire "#{PATH}"'
15
+ --].join(" ") + " "
16
+
17
+ def test_make_test_cmd_for_minitest
18
+ skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
19
+
20
+ require "minitest/test_task"
21
+
22
+ framework = %(require "minitest/autorun"; )
23
+
24
+ @tester = Minitest::TestTask.create :test do |t|
25
+ t.test_globs = [PATH]
26
+ end
27
+
28
+ assert_equal MT_EXPECTED % [framework].join("; "), @tester.make_test_cmd
29
+ end
30
+
31
+ def test_make_test_cmd_for_minitest_prelude
32
+ skip "Using TESTOPTS... skipping" if ENV["TESTOPTS"]
33
+
34
+ require "minitest/test_task"
35
+
36
+ prelude = %(require "other/file")
37
+ framework = %(require "minitest/autorun"; )
38
+
39
+ @tester = Minitest::TestTask.create :test do |t|
40
+ t.test_prelude = prelude
41
+ t.test_globs = [PATH]
42
+ end
43
+
44
+ assert_equal MT_EXPECTED % [prelude, framework].join("; "), @tester.make_test_cmd
45
+ end
46
+ end
data.tar.gz.sig CHANGED
@@ -1,2 +1,2 @@
1
- ^&�_�&��&��Hf��F�9��"r�l�@*S0�OqqgmfBG��ٮ��3�w��1xM"U󠑪���Sj��5t�+�cO����в�� g����X树>#�W��y̧�����$���ID�>�S����X��ɂo���b
2
- O���D6����ܔ�0YR ���nArø@�l��b����7g�$^F7�:����}TK�{�Y~e��z��eR8j{8w���.1r��fr�.6��tr�� Ta(n�� �
1
+ TO���J���0�MNi�W^�<~-C������Vi{�,{���V��=蝠�
2
+ JV�������j-G81o��iB���T���\��
metadata CHANGED
@@ -1,18 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.12.0
4
+ version: 5.22.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDPjCCAiagAwIBAgIBAzANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
13
+ MIIDPjCCAiagAwIBAgIBCDANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
14
14
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
15
- GRYDY29tMB4XDTE4MTIwNDIxMzAxNFoXDTE5MTIwNDIxMzAxNFowRTETMBEGA1UE
15
+ GRYDY29tMB4XDTI0MDEwMjIxMjEyM1oXDTI1MDEwMTIxMjEyM1owRTETMBEGA1UE
16
16
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
17
17
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
18
18
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -22,14 +22,14 @@ cert_chain:
22
22
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
23
23
  gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
24
24
  HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
25
- AQCbJwLmpJR2PomLU+Zzw3KRzH/hbyUWc/ftru71AopZ1fy4iY9J/BW5QYKVYwbP
26
- V0FSBWtvfI/RdwfKGtuGhPKECZgmLieGuZ3XCc09qPu1bdg7i/tu1p0t0c6163ku
27
- nDMDIC/t/DAFK0TY9I3HswuyZGbLW7rgF0DmiuZdN/RPhHq2pOLMLXJmFclCb/im
28
- 9yToml/06TJdUJ5p64mkBs0TzaK66DIB1Smd3PdtfZqoRV+EwaXMdx0Hb3zdR1JR
29
- Em82dBUFsipwMLCYj39kcyHWAxyl6Ae1Cn9r/ItVBCxoeFdrHjfavnrIEoXUt4bU
30
- UfBugfLD19bu3nvL+zTAGx/U
25
+ AQCygvpmncmkiSs9r/Kceo4bBPDszhTv6iBi4LwMReqnFrpNLMOWJw7xi8x+3eL2
26
+ XS09ZPNOt2zm70KmFouBMgOysnDY4k2dE8uF6B8JbZOO8QfalW+CoNBliefOTcn2
27
+ bg5IOP7UoGM5lC174/cbDJrJnRG9bzig5FAP0mvsgA8zgTRXQzIUAZEo92D5K7p4
28
+ B4/O998ho6BSOgYBI9Yk1ttdCtti6Y+8N9+fZESsjtWMykA+WXWeGUScHqiU+gH8
29
+ S7043fq9EbQdBr2AXdj92+CDwuTfHI6/Hj5FVBDULufrJaan4xUgL70Hvc6pTTeW
30
+ deKfBjgVAq7EYHu1AczzlUly
31
31
  -----END CERTIFICATE-----
32
- date: 2019-09-22 00:00:00.000000000 Z
32
+ date: 2024-02-07 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rdoc
@@ -57,14 +57,14 @@ dependencies:
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '3.18'
60
+ version: '4.2'
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: '3.18'
67
+ version: '4.2'
68
68
  description: |-
69
69
  minitest provides a complete suite of testing facilities supporting
70
70
  TDD, BDD, mocking, and benchmarking.
@@ -139,6 +139,7 @@ files:
139
139
  - lib/minitest/assertions.rb
140
140
  - lib/minitest/autorun.rb
141
141
  - lib/minitest/benchmark.rb
142
+ - lib/minitest/compress.rb
142
143
  - lib/minitest/expectations.rb
143
144
  - lib/minitest/hell.rb
144
145
  - lib/minitest/mock.rb
@@ -147,6 +148,7 @@ files:
147
148
  - lib/minitest/pride_plugin.rb
148
149
  - lib/minitest/spec.rb
149
150
  - lib/minitest/test.rb
151
+ - lib/minitest/test_task.rb
150
152
  - lib/minitest/unit.rb
151
153
  - test/minitest/metametameta.rb
152
154
  - test/minitest/test_minitest_assertions.rb
@@ -155,11 +157,15 @@ files:
155
157
  - test/minitest/test_minitest_reporter.rb
156
158
  - test/minitest/test_minitest_spec.rb
157
159
  - test/minitest/test_minitest_test.rb
158
- homepage: https://github.com/seattlerb/minitest
160
+ - test/minitest/test_minitest_test_task.rb
161
+ homepage: https://github.com/minitest/minitest
159
162
  licenses:
160
163
  - MIT
161
- metadata: {}
162
- post_install_message:
164
+ metadata:
165
+ homepage_uri: https://github.com/minitest/minitest
166
+ bug_tracker_uri: https://github.com/minitest/minitest/issues
167
+ changelog_uri: https://github.com/minitest/minitest/blob/master/History.rdoc
168
+ post_install_message:
163
169
  rdoc_options:
164
170
  - "--main"
165
171
  - README.rdoc
@@ -169,15 +175,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
169
175
  requirements:
170
176
  - - ">="
171
177
  - !ruby/object:Gem::Version
172
- version: '0'
178
+ version: '2.6'
179
+ - - "<"
180
+ - !ruby/object:Gem::Version
181
+ version: '4.0'
173
182
  required_rubygems_version: !ruby/object:Gem::Requirement
174
183
  requirements:
175
184
  - - ">="
176
185
  - !ruby/object:Gem::Version
177
186
  version: '0'
178
187
  requirements: []
179
- rubygems_version: 3.0.6
180
- signing_key:
188
+ rubygems_version: 3.5.3
189
+ signing_key:
181
190
  specification_version: 4
182
191
  summary: minitest provides a complete suite of testing facilities supporting TDD,
183
192
  BDD, mocking, and benchmarking