minitest 5.12.0 → 5.22.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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