parallel_rspec 2.3.0 → 2.4.1
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.
- checksums.yaml +4 -4
- data/CHANGES.md +8 -0
- data/lib/parallel_rspec/client.rb +37 -1
- data/lib/parallel_rspec/tasks.rake +2 -1
- data/lib/parallel_rspec/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ca6b67912a40f6a2dac54522280f6681c6e5fd1d636f47fcd6fd920aaaad2d3
|
4
|
+
data.tar.gz: a43c0c2a4d1ff1a02449b9300e9a2cd64a883bfd3b7057dab377c254dc020e19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d769cace0a8065fe7b290ba947245f87b1d1fac8aa14ce91f2f6f9e7cf0b90a553c2ce1af490ef1faa7e22cf1f1ff717930325268109ba49646c8273434e4a21
|
7
|
+
data.tar.gz: 8de0ae25969c87584d1e535dd0b447642ee4665593f457794a543355639146f143b836a0dee1e3a98c181ed64364f5dfad355a19a6e4b264665efeabf4e58972
|
data/CHANGES.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 2.4.1
|
4
|
+
|
5
|
+
* Exit workers promptly if asked to quit.
|
6
|
+
|
7
|
+
## 2.4.0
|
8
|
+
|
9
|
+
* Wrap Exception objects so they can always be dumped and loaded, even if they contain non-marshallable objects such as Procs or anonymous classes.
|
10
|
+
|
3
11
|
## 2.3.0
|
4
12
|
|
5
13
|
* Increase default workers from 2 to 4.
|
@@ -1,4 +1,33 @@
|
|
1
1
|
module ParallelRSpec
|
2
|
+
# Some Exception objects contain non-marshallable ivars such as Proc objects. This wrapper
|
3
|
+
# represents the bits needed by RSpec's ExceptionPresenter, and can be dumped and loaded.
|
4
|
+
class ExceptionMarshallingWrapper < Exception
|
5
|
+
attr_reader :class_name, :message, :backtrace, :cause
|
6
|
+
|
7
|
+
def initialize(class_name, message, backtrace, cause)
|
8
|
+
@class_name = class_name
|
9
|
+
@message = message
|
10
|
+
@backtrace = backtrace
|
11
|
+
@cause = cause
|
12
|
+
end
|
13
|
+
|
14
|
+
def class
|
15
|
+
eval "class #{@class_name}; end; #{@class_name}"
|
16
|
+
end
|
17
|
+
|
18
|
+
def inspect
|
19
|
+
"#<#{@class_name}: #{@message}>"
|
20
|
+
end
|
21
|
+
|
22
|
+
def ==(other)
|
23
|
+
other.is_a?(ExceptionMarshallingWrapper) &&
|
24
|
+
class_name == other.class_name &&
|
25
|
+
message == other.message &&
|
26
|
+
backtrace == other.backtrace &&
|
27
|
+
cause == other.cause
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
2
31
|
class Client
|
3
32
|
attr_reader :channel_to_server
|
4
33
|
|
@@ -39,8 +68,9 @@ module ParallelRSpec
|
|
39
68
|
end
|
40
69
|
|
41
70
|
def updates_from(example)
|
71
|
+
example.execution_result.exception = dumpable_exception(example.execution_result.exception)
|
42
72
|
{
|
43
|
-
exception: example.exception,
|
73
|
+
exception: dumpable_exception(example.exception),
|
44
74
|
metadata: example.metadata.slice(
|
45
75
|
:execution_result,
|
46
76
|
:pending,
|
@@ -49,7 +79,13 @@ module ParallelRSpec
|
|
49
79
|
}
|
50
80
|
end
|
51
81
|
|
82
|
+
def dumpable_exception(exception)
|
83
|
+
return exception if exception.nil? || exception.is_a?(ExceptionMarshallingWrapper)
|
84
|
+
ExceptionMarshallingWrapper.new(exception.class.name, exception.to_s, exception.backtrace, dumpable_exception(exception.cause))
|
85
|
+
end
|
86
|
+
|
52
87
|
def next_example_to_run
|
88
|
+
return nil if RSpec.world.wants_to_quit
|
53
89
|
channel_to_server.write([:next_example_to_run])
|
54
90
|
channel_to_server.read
|
55
91
|
end
|
@@ -59,7 +59,8 @@ db_namespace = namespace :db do
|
|
59
59
|
desc "Recreate the test databases from the current schema"
|
60
60
|
task :load do
|
61
61
|
db_namespace["parallel:purge"].invoke
|
62
|
-
|
62
|
+
schema_format = ActiveRecord.respond_to?(:schema_format) ? ActiveRecord.schema_format : ActiveRecord::Base.schema_format
|
63
|
+
case schema_format
|
63
64
|
when :ruby
|
64
65
|
db_namespace["parallel:load_schema"].invoke
|
65
66
|
when :sql
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parallel_rspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.4.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Will Bryant, Powershop New Zealand Ltd
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-07-
|
11
|
+
date: 2023-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|