test-loop 12.0.1 → 12.0.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.
- data/README.md +13 -12
- data/lib/test/loop/rails.rb +3 -3
- data/lib/test/loop.rb +3 -6
- metadata +2 -2
data/README.md
CHANGED
@@ -32,7 +32,7 @@ Features
|
|
32
32
|
|
33
33
|
* Configurable through a `.test-loop` file in your working directory.
|
34
34
|
|
35
|
-
* Implemented in less than
|
35
|
+
* Implemented in less than 215 lines (SLOC) of pure Ruby code! :-)
|
36
36
|
|
37
37
|
------------------------------------------------------------------------------
|
38
38
|
Prerequisites
|
@@ -44,9 +44,10 @@ Prerequisites
|
|
44
44
|
|
45
45
|
To check if your system qualifies, launch `irb` and enter the following:
|
46
46
|
|
47
|
-
Process.respond_to? :fork
|
47
|
+
Process.respond_to? :fork # must be true
|
48
48
|
|
49
|
-
|
49
|
+
signals = %w[INT TSTP QUIT TERM CHLD].sort
|
50
|
+
Signal.list.keys.sort & signals == signals # must be true
|
50
51
|
|
51
52
|
------------------------------------------------------------------------------
|
52
53
|
Installation
|
@@ -75,7 +76,7 @@ If installed as a Git clone:
|
|
75
76
|
|
76
77
|
You can monitor your test processes in another terminal:
|
77
78
|
|
78
|
-
watch 'ps
|
79
|
+
watch 'ps xfw | sed -n "1p; /test-loop/p" | fgrep -v sed'
|
79
80
|
|
80
81
|
If it stops responding, you can annihilate test-loop from another terminal:
|
81
82
|
|
@@ -103,17 +104,17 @@ you can query and modify the `Test::Loop` OpenStruct configuration as follows:
|
|
103
104
|
|
104
105
|
### Test::Loop.overhead_file_globs
|
105
106
|
|
106
|
-
|
107
|
-
|
107
|
+
Array of file globbing patterns that describe a set of Ruby scripts that are
|
108
|
+
loaded into the main Ruby process as overhead.
|
108
109
|
|
109
110
|
### Test::Loop.reabsorb_file_globs
|
110
111
|
|
111
|
-
|
112
|
-
|
112
|
+
Array of file globbing patterns that describe a set of files which cause the
|
113
|
+
overhead to be reabsorbed whenever they change.
|
113
114
|
|
114
115
|
### Test::Loop.test_file_matchers
|
115
116
|
|
116
|
-
|
117
|
+
Hash that maps a file globbing pattern describing a set of source files to a
|
117
118
|
lambda function yielding a file globbing pattern describing a set of test
|
118
119
|
files that need to be run. In other words, whenever the source files (the
|
119
120
|
hash key; left-hand side of the mapping) change, their associated test files
|
@@ -148,9 +149,9 @@ will return `nil`, thereby excluding those source files from being tested.
|
|
148
149
|
|
149
150
|
### Test::Loop.test_name_parser
|
150
151
|
|
151
|
-
|
152
|
-
|
153
|
-
|
152
|
+
Lambda function that is passed a line of source code to determine whether that
|
153
|
+
line can be considered as a test definition, in which case it must return the
|
154
|
+
name of the test being defined.
|
154
155
|
|
155
156
|
### Test::Loop.before_each_test
|
156
157
|
|
data/lib/test/loop/rails.rb
CHANGED
@@ -2,12 +2,12 @@ require 'test/loop'
|
|
2
2
|
|
3
3
|
Test::Loop.reabsorb_file_globs.push(
|
4
4
|
'config/**/*.{rb,yml}',
|
5
|
-
'
|
5
|
+
'db/schema.rb',
|
6
6
|
'Gemfile.lock'
|
7
7
|
)
|
8
8
|
|
9
|
-
Test::Loop.test_file_matchers['app/**/*.rb'] =
|
10
|
-
Test::Loop.test_file_matchers
|
9
|
+
Test::Loop.test_file_matchers['{app,lib,test,spec}/**/*.rb'] =
|
10
|
+
Test::Loop.test_file_matchers.delete('lib/**/*.rb')
|
11
11
|
|
12
12
|
require 'rails/railtie'
|
13
13
|
Class.new Rails::Railtie do
|
data/lib/test/loop.rb
CHANGED
@@ -223,16 +223,13 @@ module Test
|
|
223
223
|
|
224
224
|
started_at = Time.now
|
225
225
|
worker_pid = fork do
|
226
|
-
# handle signals meant for worker process
|
227
|
-
[:TERM, :CHLD].each {|sig| trap sig, 'DEFAULT' }
|
228
|
-
|
229
|
-
# ignore signals meant for master process
|
230
|
-
[:INT, :TSTP, :QUIT].each {|sig| trap sig, 'IGNORE' }
|
231
|
-
|
232
226
|
# detach worker from master's terminal device so that
|
233
227
|
# it does not receieve the user's control-key presses
|
234
228
|
Process.setsid
|
235
229
|
|
230
|
+
# unregister signal handlers inherited from master process
|
231
|
+
[:TERM, :CHLD, :INT, :TSTP, :QUIT].each {|sig| trap sig, 'DEFAULT' }
|
232
|
+
|
236
233
|
# detach worker from master's standard input stream
|
237
234
|
STDIN.reopen IO.pipe.first
|
238
235
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: test-loop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 12.0.
|
5
|
+
version: 12.0.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Suraj N. Kurapati
|
@@ -11,7 +11,7 @@ autorequire:
|
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
13
|
|
14
|
-
date: 2011-04-
|
14
|
+
date: 2011-04-21 00:00:00 -07:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|