maxitest 5.7.0 → 5.7.1

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: 8a49dada902aa4d58820d62a83173833be90399d5180b134cc1ce54a5f8ded51
4
- data.tar.gz: a2b23c6f996f135938d2e195bf69fc9594eb9d7fc346936ac0aadf382ec11017
3
+ metadata.gz: d101ca4626dab43e42c73800d34678620f68eaf702c093d70a16dd2dabac306d
4
+ data.tar.gz: bc5b5547620a044c9a8cc7eee87cf5411a822418a6e61949056ac3acec2a095a
5
5
  SHA512:
6
- metadata.gz: 8d62e5aba46713e142920656b7ee55b38dbc4a37bc3e3515fb4f0985e6b5db9aa69f1dd40811f1b2b56eb52dc78fcb3a81c34c5599ec1fe5b6ae1d4065c4871f
7
- data.tar.gz: c0fe87d5f05fbffc46f04259c133a2f8b49cdf2577425e577ff606d6f665ac80a6bc1c876583b44ed4fe6eb7fe3c838038549de36aff9e99859714a88e72607b
6
+ metadata.gz: 878e6e0b75f59f8aaa187d5c953cd0f4aa0f3942022fbea271e9277f57d36b6b4624f6e010c4c8e3079bef993d282630142dc50ca9d295b5aed9b0d06cc621bc
7
+ data.tar.gz: 9bce01fea6fb55cbf2c35bd7c4cd44c6826dc4502313cf493750ffa21b06335f84736d007a90c713c7a76ef9e188d05f839098456dc153ca4b9480f2212a4b4a
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Next
2
2
 
3
+ # v5.7.1
4
+ - support disabling interrupt handling to avoid minitest-reporters bug with MAXITEST_NO_INTERRUPT=true
5
+
6
+ # v5.7.0
7
+ - support minitest 5.25
8
+
9
+ # v5.6.0
10
+ - support minitest 5.24
11
+
3
12
  # v5.5.0
4
13
  - support minitest 5.23
5
14
 
data/README.md CHANGED
@@ -81,6 +81,11 @@ output = capture_stdout { puts 1 }
81
81
  _(output).must_equal "1\n"
82
82
  ```
83
83
 
84
+ ### minitest-reporters
85
+
86
+ If [PR](https://github.com/minitest-reporters/minitest-reporters/pull/357) is not resolved,
87
+ disable Interrupt handling with `ENV["MAXITEST_NO_INTERRUPT"] = "true"` to avoid "stack level too deep" errors.
88
+
84
89
  Development
85
90
  ===========
86
91
  - everything vendored into 1 gem to avoid dependency madness
@@ -1,7 +1,7 @@
1
1
  require "minitest"
2
2
  require "minitest/autorun"
3
3
  require "maxitest/vendor/around"
4
- require "maxitest/trap"
4
+ require "maxitest/interrupt" unless ENV["MAXITEST_NO_INTERRUPT"]
5
5
  require "maxitest/let_bang"
6
6
  require "maxitest/let_all"
7
7
  require "maxitest/hook_all"
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ # - show current backtrace when interrupting a stuck test with Ctrl+c
4
+ # - skip remaining tests
5
+
6
+ module Maxitest
7
+ Interrupted = Class.new(StandardError)
8
+ class << self
9
+ attr_accessor :interrupted
10
+ end
11
+
12
+ module InterruptHandler
13
+ # capture interrupt and treat it as a regular error so we get a backtrace
14
+ def capture_exceptions(&block)
15
+ super(&block)
16
+ rescue Interrupt => e
17
+ Maxitest.interrupted = true
18
+ failures << Minitest::UnexpectedError.new(e)
19
+ end
20
+
21
+ # skip remaining tests if we were interrupted
22
+ def run
23
+ if Maxitest.interrupted
24
+ # produce a real error so we do not crash in -v mode
25
+ failures <<
26
+ begin
27
+ raise Minitest::Skip, 'Maxitest::Interrupted'
28
+ rescue Minitest::Skip
29
+ $!
30
+ end
31
+ result = Minitest::Result.from(self)
32
+ result.time = 0
33
+ result
34
+ else
35
+ super()
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ Minitest::Test.prepend(Maxitest::InterruptHandler)
@@ -1,3 +1,3 @@
1
1
  module Maxitest
2
- VERSION = "5.7.0"
2
+ VERSION = "5.7.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maxitest
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.7.0
4
+ version: 5.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-10-03 00:00:00.000000000 Z
11
+ date: 2024-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -75,6 +75,7 @@ files:
75
75
  - lib/maxitest/helpers.rb
76
76
  - lib/maxitest/hook_all.rb
77
77
  - lib/maxitest/implicit_subject.rb
78
+ - lib/maxitest/interrupt.rb
78
79
  - lib/maxitest/let_all.rb
79
80
  - lib/maxitest/let_bang.rb
80
81
  - lib/maxitest/pending.rb
@@ -82,7 +83,6 @@ files:
82
83
  - lib/maxitest/static_class_order.rb
83
84
  - lib/maxitest/threads.rb
84
85
  - lib/maxitest/timeout.rb
85
- - lib/maxitest/trap.rb
86
86
  - lib/maxitest/vendor/around.rb
87
87
  - lib/maxitest/vendor/line.rb
88
88
  - lib/maxitest/vendor/line_describe.rb
data/lib/maxitest/trap.rb DELETED
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Maxitest
4
- Interrupted = Class.new(StandardError)
5
- class << self
6
- attr_accessor :interrupted
7
- end
8
-
9
- module InterruptHandler
10
- def capture_exceptions(&block)
11
- super(&block)
12
- rescue Interrupt => e
13
- Maxitest.interrupted = true
14
- failures << Minitest::UnexpectedError.new(e)
15
- end
16
-
17
- def run
18
- if Maxitest.interrupted
19
- skip = begin
20
- raise Minitest::Skip, 'Maxitest::Interrupted'
21
- rescue Minitest::Skip => e
22
- e
23
- end
24
- self.failures = [skip]
25
- defined?(Minitest::Result) ? Minitest::Result.from(self) : self
26
- else
27
- super()
28
- end
29
- end
30
- end
31
- end
32
-
33
- Minitest::Test.prepend(Maxitest::InterruptHandler)