padded_cell 0.1.0

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.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +22 -0
  3. data/Cargo.lock +518 -0
  4. data/Cargo.toml +41 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +184 -0
  7. data/exe/padded_cell +6 -0
  8. data/ext/padded_cell_native/core/Cargo.toml +20 -0
  9. data/ext/padded_cell_native/core/README.md +50 -0
  10. data/ext/padded_cell_native/core/src/discover/tests.rs +107 -0
  11. data/ext/padded_cell_native/core/src/discover.rs +454 -0
  12. data/ext/padded_cell_native/core/src/hash/tests.rs +13 -0
  13. data/ext/padded_cell_native/core/src/hash.rs +13 -0
  14. data/ext/padded_cell_native/core/src/lib.rs +30 -0
  15. data/ext/padded_cell_native/core/src/plan/tests.rs +61 -0
  16. data/ext/padded_cell_native/core/src/plan.rs +109 -0
  17. data/ext/padded_cell_native/core/src/rng/tests.rs +17 -0
  18. data/ext/padded_cell_native/core/src/rng.rs +28 -0
  19. data/ext/padded_cell_native/extconf.rb +46 -0
  20. data/ext/padded_cell_native/ffi/Cargo.toml +19 -0
  21. data/ext/padded_cell_native/ffi/src/lib.rs +120 -0
  22. data/lib/padded_cell/active_support_hooks.rb +30 -0
  23. data/lib/padded_cell/cell.rb +87 -0
  24. data/lib/padded_cell/cli.rb +97 -0
  25. data/lib/padded_cell/discovery.rb +24 -0
  26. data/lib/padded_cell/hooks.rb +33 -0
  27. data/lib/padded_cell/loader.rb +82 -0
  28. data/lib/padded_cell/native.rb +23 -0
  29. data/lib/padded_cell/pool.rb +202 -0
  30. data/lib/padded_cell/railtie.rb +18 -0
  31. data/lib/padded_cell/reporters.rb +106 -0
  32. data/lib/padded_cell/results.rb +108 -0
  33. data/lib/padded_cell/runner.rb +131 -0
  34. data/lib/padded_cell/scheduler.rb +21 -0
  35. data/lib/padded_cell/selection.rb +78 -0
  36. data/lib/padded_cell/timings.rb +30 -0
  37. data/lib/padded_cell/version.rb +5 -0
  38. data/lib/padded_cell.rb +29 -0
  39. metadata +113 -0
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PaddedCell
4
+ VERSION = '0.1.0'
5
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'padded_cell/version'
4
+ require_relative 'padded_cell/native'
5
+ require_relative 'padded_cell/discovery'
6
+ require_relative 'padded_cell/scheduler'
7
+ require_relative 'padded_cell/selection'
8
+ require_relative 'padded_cell/hooks'
9
+
10
+ # A drop-in Minitest runner: every test in its own padded cell.
11
+ #
12
+ # The runner itself lives in padded_cell/runner (loaded by the padded_cell
13
+ # command). This file only holds what the Rust extension backs, which loads
14
+ # nothing else: static discovery and scheduling.
15
+ #
16
+ # PaddedCell::Discovery.call(Dir["test/**/*_test.rb"]).map(&:id)
17
+ # # => ["UserTest#test_valid", ...]
18
+ module PaddedCell
19
+ class << self
20
+ # See Hooks.
21
+ def before_fork(&) = Hooks.before_fork(&)
22
+
23
+ def after_fork(&) = Hooks.after_fork(&)
24
+
25
+ def cleanup(&) = Hooks.cleanup(&)
26
+ end
27
+ end
28
+
29
+ require_relative 'padded_cell/railtie' if defined?(Rails::Railtie)
metadata ADDED
@@ -0,0 +1,113 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: padded_cell
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Abdelkader Boudih
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: minitest
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '6.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '6.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: rb_sys
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: 0.9.130
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.9.130
40
+ description: Runs existing Minitest and Rails test suites with fork-per-test isolation,
41
+ crash and timeout containment, seeded timing-aware scheduling and sharding. Discovery
42
+ and scheduling are a Rust extension, precompiled for Linux, macOS and FreeBSD.
43
+ email:
44
+ - terminale@gmail.com
45
+ executables:
46
+ - padded_cell
47
+ extensions:
48
+ - ext/padded_cell_native/extconf.rb
49
+ extra_rdoc_files: []
50
+ files:
51
+ - CHANGELOG.md
52
+ - Cargo.lock
53
+ - Cargo.toml
54
+ - LICENSE.txt
55
+ - README.md
56
+ - exe/padded_cell
57
+ - ext/padded_cell_native/core/Cargo.toml
58
+ - ext/padded_cell_native/core/README.md
59
+ - ext/padded_cell_native/core/src/discover.rs
60
+ - ext/padded_cell_native/core/src/discover/tests.rs
61
+ - ext/padded_cell_native/core/src/hash.rs
62
+ - ext/padded_cell_native/core/src/hash/tests.rs
63
+ - ext/padded_cell_native/core/src/lib.rs
64
+ - ext/padded_cell_native/core/src/plan.rs
65
+ - ext/padded_cell_native/core/src/plan/tests.rs
66
+ - ext/padded_cell_native/core/src/rng.rs
67
+ - ext/padded_cell_native/core/src/rng/tests.rs
68
+ - ext/padded_cell_native/extconf.rb
69
+ - ext/padded_cell_native/ffi/Cargo.toml
70
+ - ext/padded_cell_native/ffi/src/lib.rs
71
+ - lib/padded_cell.rb
72
+ - lib/padded_cell/active_support_hooks.rb
73
+ - lib/padded_cell/cell.rb
74
+ - lib/padded_cell/cli.rb
75
+ - lib/padded_cell/discovery.rb
76
+ - lib/padded_cell/hooks.rb
77
+ - lib/padded_cell/loader.rb
78
+ - lib/padded_cell/native.rb
79
+ - lib/padded_cell/pool.rb
80
+ - lib/padded_cell/railtie.rb
81
+ - lib/padded_cell/reporters.rb
82
+ - lib/padded_cell/results.rb
83
+ - lib/padded_cell/runner.rb
84
+ - lib/padded_cell/scheduler.rb
85
+ - lib/padded_cell/selection.rb
86
+ - lib/padded_cell/timings.rb
87
+ - lib/padded_cell/version.rb
88
+ homepage: https://github.com/seuros/padded_cell
89
+ licenses:
90
+ - MIT
91
+ metadata:
92
+ source_code_uri: https://github.com/seuros/padded_cell
93
+ bug_tracker_uri: https://github.com/seuros/padded_cell/issues
94
+ changelog_uri: https://github.com/seuros/padded_cell/blob/master/CHANGELOG.md
95
+ rubygems_mfa_required: 'true'
96
+ rdoc_options: []
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '4.0'
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ requirements: []
110
+ rubygems_version: 4.0.20
111
+ specification_version: 4
112
+ summary: 'A drop-in Minitest runner: every test in its own padded cell.'
113
+ test_files: []