tork 15.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,4 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in tork.gemspec
4
+ gemspec
@@ -0,0 +1,962 @@
1
+ ------------------------------------------------------------------------------
2
+ Version 15.0.0 (2012-01-23)
3
+ ------------------------------------------------------------------------------
4
+
5
+ Breaking changes:
6
+
7
+ * This project has been renamed from TestR to Tork (test with fork) in order
8
+ to better compete with rival projects, namely Spork! >:-) Credit goes to
9
+ Brian D. Burns for thinking of this most succinct & awesome project name!
10
+ He also created the snazzy ASCII-art logo featured in the project README.
11
+
12
+ * tork(1): rename `r` command, which runs all tests, to `t`, for *t*ork.
13
+
14
+ ------------------------------------------------------------------------------
15
+ Version 14.3.0 (2012-01-20)
16
+ ------------------------------------------------------------------------------
17
+
18
+ External changes:
19
+
20
+ * testr(1): notify user while dispatching their commands. This is especially
21
+ useful when the "rerun_passed_test_files" command has been dispatched but
22
+ there are no passed test files, so nothing happens and from the user's
23
+ perspective: TestR sucks because it's unresponsive.
24
+
25
+ * config/testr/rails: Reopen connections in forked workers to fix errors:
26
+
27
+ Mysql2::Error: MySQL server has gone away
28
+ PGError: connection not open
29
+
30
+ Thanks to Spencer Steffen for [contributing this solution](
31
+ https://github.com/sunaku/tork/issues/14#issuecomment-3539470).
32
+
33
+ * testr-driver(1): document the "over" status message in manual page.
34
+
35
+ Internal changes:
36
+
37
+ * testr-driver(1): keep same herald; only replace master.
38
+
39
+ * testr(1): shorten code for loop break on quit command.
40
+
41
+ * server: rename `@upstream` to `@client` for coherence.
42
+
43
+ * Can pass lambda and proc with block to `<<` method.
44
+
45
+ * Explain `$0` override at the start of bin/ scripts.
46
+
47
+ * LICENSE: credit our most recent contributors.
48
+
49
+ ------------------------------------------------------------------------------
50
+ Version 14.2.0 (2012-01-16)
51
+ ------------------------------------------------------------------------------
52
+
53
+ New features:
54
+
55
+ * Add ability to run `testr rails` without needing a `.testr.rb` file.
56
+
57
+ * testr(1) no longer shows command menu at startup. Press ENTER to see it.
58
+
59
+ * testr(1) now notifies you before absorbing overhead at startup.
60
+
61
+ Bug fixes:
62
+
63
+ * testr(1) now accepts death silently when Control-C is pressed.
64
+
65
+ ------------------------------------------------------------------------------
66
+ Version 14.1.3 (2012-01-13)
67
+ ------------------------------------------------------------------------------
68
+
69
+ Internal changes:
70
+
71
+ * Add support Guard v0.9.0 and newer in `testr-herald`. Thanks to Jose Pablo
72
+ Barrantes for [this contribution](https://github.com/sunaku/tork/pull/16).
73
+
74
+ * Tighten version constraints for gem dependencies to avoid future breakages.
75
+
76
+ ------------------------------------------------------------------------------
77
+ Version 14.1.2 (2012-01-09)
78
+ ------------------------------------------------------------------------------
79
+
80
+ External changes:
81
+
82
+ * Don't consider partial test file pass as full pass.
83
+
84
+ Internal changes:
85
+
86
+ * Upgrade to binman 3 for better bundler support.
87
+
88
+ ------------------------------------------------------------------------------
89
+ Version 14.1.1 (2011-12-07)
90
+ ------------------------------------------------------------------------------
91
+
92
+ Bug fixes:
93
+
94
+ * Do not fail when given test file no longer exists.
95
+
96
+ * Make xUnit `--name` option regexp case-insensitive.
97
+
98
+ * RSpec does not accept regexp for `--example` option;
99
+ see https://github.com/rspec/rspec-core/issues/445
100
+ and https://github.com/dchelimsky/rspec/issues/44
101
+
102
+ * Ruby 187 does not have Symbol#upcase() method.
103
+
104
+ Housekeeping:
105
+
106
+ * README: add another SQLite3 error to known issues.
107
+ Thanks to Luke Wendling for contributing this patch.
108
+
109
+ * README: add a section explaining usage and theory.
110
+
111
+ * README: show example earlier in factory_girl tip.
112
+
113
+ * README: update lines of code statistic: 372 SLOC.
114
+
115
+ * Better variable naming for self-documentation.
116
+
117
+ * Upgrade to binman 2.0.0 for UNIX man pages.
118
+
119
+ ------------------------------------------------------------------------------
120
+ Version 14.1.0 (2011-11-03)
121
+ ------------------------------------------------------------------------------
122
+
123
+ New features:
124
+
125
+ * Make servers responsive to quit request (SIGTERM) from upstream.
126
+
127
+ This change lets the user quit testr-master(1) while it is loading
128
+ test execution overhead (which can be a lengthy, blocking operation).
129
+
130
+ By sending a signal to the server, we don't have to wait for it to
131
+ finish processing its current command before seeing our :quit command.
132
+
133
+ * Add embedded BinMan manual pages to bin scripts. All TestR scripts now
134
+ have a `--help` option which displays their UNIX manual page. Try it!
135
+
136
+ The single-line JSON message protocol used by these scripts is now
137
+ documented in their manual pages, so you should have everything you
138
+ need to create *your own custom user interface to TestR* if you wish! :-)
139
+
140
+ Bug fixes:
141
+
142
+ * SIGCHLD does not awaken main thread in Ruby 1.9.3p0.
143
+
144
+ Housekeeping:
145
+
146
+ * Simplify watch(1) ps(1) process title monitoring.
147
+
148
+ * Testr: tell user to press ENTER after command key.
149
+
150
+ * README: add tip on loading factory_girl factories.
151
+
152
+ ------------------------------------------------------------------------------
153
+ Version 14.0.3 (2011-10-11)
154
+ ------------------------------------------------------------------------------
155
+
156
+ Bug fixes:
157
+
158
+ * Forgot to migrate the `testr/config/rails` configuration helper to use the
159
+ new TestR configuration parameter names.
160
+
161
+ ------------------------------------------------------------------------------
162
+ Version 14.0.2 (2011-10-11)
163
+ ------------------------------------------------------------------------------
164
+
165
+ Bug fixes:
166
+
167
+ * Fix updating passed/failed test files bookkeeping. Once a test file failed,
168
+ it was (incorrectly) always considered failed -- even if it passed later on.
169
+
170
+ * Do not requeue test files that are waiting to run.
171
+
172
+ Housekeeping:
173
+
174
+ * Rename `*.md` files to `*.markdown` to avoid ambiguity.
175
+
176
+ ------------------------------------------------------------------------------
177
+ Version 14.0.1 (2011-10-10)
178
+ ------------------------------------------------------------------------------
179
+
180
+ Bug fixes:
181
+
182
+ * Use blue/red for pass/fail instead of green/red to accommodate the color
183
+ blind.
184
+
185
+ * Incorrect test name regexp was passed down to Test::Unit. This broke
186
+ focused testing, where only changed tests in a changed test file are run.
187
+
188
+ Housekeeping:
189
+
190
+ * Make `testr-master` wait for killed worker processes before exiting.
191
+
192
+ ------------------------------------------------------------------------------
193
+ Version 14.0.0 (2011-10-09)
194
+ ------------------------------------------------------------------------------
195
+
196
+ Incompatible changes:
197
+
198
+ * Renamed this project and its resources from test-loop to TestR.
199
+
200
+ * Renamed the `reabsorb_file_globs` configuration parameter to
201
+ `reabsorb_file_greps`. It now contains regular expressions.
202
+
203
+ * Renamed the `test_file_matchers` configuration parameter to
204
+ `test_file_globbers`. Its keys are now regular expressions.
205
+
206
+ * Renamed the `test_name_parser` configuration parameter to
207
+ `test_name_extractor`.
208
+
209
+ * Renamed the `max_concurrent_tests` configuration parameter to
210
+ `max_forked_workers`.
211
+
212
+ * Renamed the `before_each_test` configuration parameter to
213
+ `after_fork_hooks`. Its function parameters have also changed.
214
+
215
+ * Removed the `delay_per_iteration` and `after_each_test` configuration
216
+ parameters.
217
+
218
+ * Removed the `test/loop/notify` and `test-loop/coco` libraries.
219
+
220
+ New features:
221
+
222
+ * The file system is no longer polled to detect modified files. Instead, the
223
+ it is monitored for file modification events in a portable and efficient
224
+ manner using the [Guard](https://github.com/guard/guard) library.
225
+
226
+ * The number of processors on your system is automatically detected for the
227
+ `max_forked_workers` configuration parameter.
228
+
229
+ * Added `overhead_load_paths`, `all_test_file_globs`, and `before_fork_hooks`
230
+ configuration parameters.
231
+
232
+ * Added ability to re-run passed and failed tests in the `testr` script.
233
+
234
+ Housekeeping:
235
+
236
+ * The monolithic `test-loop` script has been replaced by several smaller ones
237
+ that communicate with each other using single-line JSON messages via their
238
+ standard input & output streams. See "Architecture" in README for details.
239
+
240
+ * Now using Bundler to manage development dependencies and gem packaging.
241
+
242
+ ------------------------------------------------------------------------------
243
+ Version 13.0.1 (2011-09-21)
244
+ ------------------------------------------------------------------------------
245
+
246
+ Housekeeping:
247
+
248
+ * Forgot to include `test/loop/coco` preset in gem package.
249
+
250
+ * Forgot to mention `test/loop/parallel_tests` preset in README.
251
+
252
+ ------------------------------------------------------------------------------
253
+ Version 13.0.0 (2011-08-24)
254
+ ------------------------------------------------------------------------------
255
+
256
+ Incompatible changes:
257
+
258
+ * Pass worker sequence number as the last argument to lambda functions in
259
+ `Test::Loop.before_each_test` and `Test::Loop.after_each_test` arrays.
260
+
261
+ New features:
262
+
263
+ * In the `test/loop/rails` configuration preset:
264
+
265
+ * Automatically test a controller when its model or factory is modified.
266
+
267
+ * Warn the user if Railtie (Rails 3) is not available for automatic
268
+ disabling of Rails' class caching mechanism under the test environment.
269
+
270
+ * Add `test/loop/parallel_tests` configuration preset for parallel_tests gem.
271
+ ([Corné Verbruggen](https://github.com/sunaku/test-loop/issues/9))
272
+
273
+ * Assign rotating sequence numbers to workers so that you can handle parallel
274
+ processes like connecting to separate databases better. ([Corné
275
+ Verbruggen](https://github.com/sunaku/test-loop/pull/10))
276
+
277
+ Housekeeping:
278
+
279
+ * README: move configuration presets above options.
280
+
281
+ * Eliminate 1 SLOC: .rb extension used in file glob.
282
+
283
+ * Turn off executable bit on loop.rb file mode.
284
+
285
+ * Pass child ENV directly to exec() for atomicity.
286
+
287
+ ------------------------------------------------------------------------------
288
+ Version 12.3.1 (2011-07-19)
289
+ ------------------------------------------------------------------------------
290
+
291
+ Bug fixes:
292
+
293
+ * Binary data could not be stored in environment variable values.
294
+
295
+ Housekeeping:
296
+
297
+ * Forgot to add Jacob Helwig to the gemspec's authors list.
298
+
299
+ ------------------------------------------------------------------------------
300
+ Version 12.3.0 (2011-07-19)
301
+ ------------------------------------------------------------------------------
302
+
303
+ New features:
304
+
305
+ * Add `Test::Loop::max_concurrent_tests` configuration parameter to limit the
306
+ number of test files run concurrently (default 4). Otherwise, with large
307
+ test suites, we could end up swamping the machine running the tests by
308
+ forking hundreds of test files at once. (Jacob Helwig)
309
+
310
+ * Rails: add matcher for `test/factories/*_factory.rb`.
311
+
312
+ Housekeeping:
313
+
314
+ * ENV returns a Hash with duplicate/frozen keys/values. (Brian D. Burns)
315
+
316
+ * Use Marshal to propagate resume_files to reabsorb.
317
+
318
+ * Store test_files in a Set instead of an Array.
319
+
320
+ ------------------------------------------------------------------------------
321
+ Version 12.2.0 (2011-06-01)
322
+ ------------------------------------------------------------------------------
323
+
324
+ * Prevent empty test suite run in master process. (Brian D. Burns)
325
+
326
+ * Report test execution statistics in `test/loop/notify` preset as
327
+ requested by Juan G. Hurtado..
328
+
329
+ * Add `test/loop/coco` preset for integrating the [Coco code coverage
330
+ library](http://lkdjiin.github.com/coco/).
331
+
332
+ ------------------------------------------------------------------------------
333
+ Version 12.1.0 (2011-04-29)
334
+ ------------------------------------------------------------------------------
335
+
336
+ New features:
337
+
338
+ * Add `Test::Loop.delay_per_iteration` parameter to control the number of
339
+ seconds (or fractions thereof) to sleep in between test-loop iterations.
340
+
341
+ ------------------------------------------------------------------------------
342
+ Version 12.0.4 (2011-04-29)
343
+ ------------------------------------------------------------------------------
344
+
345
+ Bug fixes:
346
+
347
+ * Reabsorb overhead when user's configuration file changes.
348
+ (Brian D. Burns and Daniel Pittman)
349
+
350
+ * `Thread.new { system() }` really is backgrounded, so `fork { system() }` is
351
+ not necessary! [This issue](https://github.com/sunaku/test-loop/issues/5)
352
+ was solved by upgrading to the newer 2.6.38.4-1 Linux kernel on my system.
353
+
354
+ ------------------------------------------------------------------------------
355
+ Version 12.0.3 (2011-04-25)
356
+ ------------------------------------------------------------------------------
357
+
358
+ Bug fixes:
359
+
360
+ * Fix SIGCHLD handling and test completion reporting (Daniel Pittman).
361
+
362
+ We need to reap all ready children in SIGCHLD, not just the first, and
363
+ should not be reporting completion in the signal handler.
364
+
365
+ On a fast machine, or where there is a slow hook executed at the
366
+ completion of a test run, more than one test child can terminate before
367
+ the SIGCHLD handler is invoked, or while it is running.
368
+
369
+ In that event we will only get another SIGCHLD when a new child
370
+ terminates, not to signal that there was more than one current
371
+ termination. We need to loop to collect all terminated children during
372
+ each invocation of the handler.
373
+
374
+ Since we don't know which child terminated, we wait on any terminated
375
+ child with NOHANG, until it informs us that there are no more zombies
376
+ hanging about.
377
+
378
+ Doing all the work of finishing the test case, cleaning up, and running
379
+ user hooks inside the SIGCHLD handler block was pretty slow. This could
380
+ lead to a big pile-up of children that needed to be cleaned up, especially
381
+ if the user hook did something like run another external process to signal
382
+ completion.
383
+
384
+ Moving the heavy work of completion outside the signal handler makes the
385
+ whole thing a lot faster, and less likely to bump into the low limit for
386
+ per-user processes on Mac OS-X.
387
+
388
+ * Send SIGTERM to each worker PGID to kill workers (Brian D. Burns).
389
+
390
+ Using Process.setsid() in the workers establishes each process "as a new
391
+ session and process group leader". So, the SIGTERM sent to the master's
392
+ process group was not recieved by the workers. kill_workers was simply
393
+ waiting for the workers to finish.
394
+
395
+ * Revert "skip at_exit() handlers defined in master process".
396
+
397
+ This reverts commit 0a0837f0b7ec92810e1c81d7506f2c8309f25f62 which was
398
+ originally written to skip the reporting of an empty test suite (master
399
+ does not load test files, workers do) by Test::Unit and Minitest in the
400
+ master process.
401
+
402
+ Such a harmless annoyance should not warrant the crippling of at_exit in
403
+ the master process because that would inhibit its valid uses as well:
404
+
405
+ > "UNIX was not designed to stop you from doing stupid things, because
406
+ > that would also stop you from doing clever things." ~Doug Gwyn
407
+
408
+ * `Thread.new { system() }` is not really backgrounded so `fork()` instead!
409
+ Many thanks to Brian D. Burns and Daniel Pittman for helping solve [this
410
+ issue](https://github.com/sunaku/test-loop/issues/5).
411
+
412
+ ------------------------------------------------------------------------------
413
+ Version 12.0.2 (2011-04-21)
414
+ ------------------------------------------------------------------------------
415
+
416
+ Bug fixes:
417
+
418
+ * Consider DB schema dump file as overhead in Rails.
419
+
420
+ * Do not consider test factories as overhead in Rails.
421
+
422
+ * Run test files when test factory files change in Rails.
423
+
424
+ Housekeeping:
425
+
426
+ * Detach worker from master's terminal device sooner.
427
+
428
+ Documentation:
429
+
430
+ * All required signals must be present in irb check.
431
+
432
+ * Prevent ps(1) from truncating lines to $TERM width.
433
+
434
+ * Retain ps(1) column header in watch command output.
435
+
436
+ * Begin parameter descriptions with the noun itself.
437
+
438
+ ------------------------------------------------------------------------------
439
+ Version 12.0.1 (2011-04-20)
440
+ ------------------------------------------------------------------------------
441
+
442
+ Bug fixes:
443
+
444
+ * Restore support for Ruby 1.8.7.
445
+
446
+ * Allow user's test execution overhead to fork.
447
+
448
+ Housekeeping:
449
+
450
+ * Freeze master's ENV properly; keep resume key.
451
+
452
+ * Remove completed test from running list sooner.
453
+
454
+ Documentation:
455
+
456
+ * Add instructions to check for POSIX prerequisites.
457
+
458
+ * Support multiple test-loop instances in watch command.
459
+
460
+ ------------------------------------------------------------------------------
461
+ Version 12.0.0 (2011-04-19)
462
+ ------------------------------------------------------------------------------
463
+
464
+ Incompatible changes:
465
+
466
+ * You must now explicitly `require 'test/loop/rails'` for Rails support
467
+ because we can only *automatically* apply our Railtie (to disable class
468
+ caching) after the overhead has been loaded, and by then it's too late:
469
+ your models are already loaded & cached by the Rails environment.
470
+
471
+ * Your tests can no longer read from the user's terminal (master's STDIN);
472
+ instead they will read from an empty stream (the reading end of IO.popen).
473
+
474
+ Bug fixes:
475
+
476
+ * Replace threads with SIGCHLD for reporting test results.
477
+
478
+ This fixes deadlock errors that sometimes occurred when the user's chosen
479
+ test library tried to print something to STDOUT/STDERR (even though those
480
+ streams were redirected to a log file in the worker process).
481
+
482
+ Thanks to Brian D. Burns for suggesting and verifying that the use of
483
+ threads to monitor workers was the culprit behind the deadlocks errors.
484
+
485
+ * Ctrl-C did not raise Interrupt in my Rails 3 test suite.
486
+
487
+ Housekeeping:
488
+
489
+ * Ensure a clean ENV when reabsorbing overhead. Environment variables set
490
+ by your test execution overhead are not propagated to subsequent
491
+ reabsorptions. (Brian D. Burns)
492
+
493
+ * Call `setsid()` to detach worker from master's terminal.
494
+ <http://stackoverflow.com/questions/1740308#1740314>
495
+
496
+ * Mutex is not needed since we only use GIL'ed array methods.
497
+ <http://www.ruby-forum.com/topic/174086#762788>
498
+
499
+ * Remove redundant STDOUT coercion after loading user's testing library.
500
+
501
+ * Further simplify `Test::Loop.run()` by higher-order programming.
502
+
503
+ * Add LICENSE file to gem package.
504
+
505
+ Documentation:
506
+
507
+ * Add prerequisites section about POSIX environment.
508
+
509
+ * Add tip about annihilating test-loop processes.
510
+
511
+ * Fix markdown formatting.
512
+
513
+ ------------------------------------------------------------------------------
514
+ Version 11.0.1 (2011-04-14)
515
+ ------------------------------------------------------------------------------
516
+
517
+ Bug fixes:
518
+
519
+ * Only attempt to define Railtie if the current Rails version supports it.
520
+
521
+ ------------------------------------------------------------------------------
522
+ Version 11.0.0 (2011-04-14)
523
+ ------------------------------------------------------------------------------
524
+
525
+ Incompatible changes:
526
+
527
+ * The `test/loop/rails` preset has been internalized and is now applied
528
+ automatically if your test execution overhead includes Ruby on Rails.
529
+
530
+ New features:
531
+
532
+ * If you are using Rails 3, test-loop will automatically set
533
+ `config.cache_classes = false` for your test environment.
534
+ (Brian D. Burns)
535
+
536
+ Bug fixes:
537
+
538
+ * Avoid deadlock errors when printing output from Test::Unit and MiniTest.
539
+ (Brian D. Burns)
540
+
541
+ `write': deadlock detected (fatal)
542
+
543
+ * Signaled worker termination is neither pass nor fail.
544
+ Do not treat it as a failure by printing the log file.
545
+
546
+ * Ignore SIGINT in workers; only master must honor it.
547
+
548
+ ------------------------------------------------------------------------------
549
+ Version 10.0.1 (2011-04-08)
550
+ ------------------------------------------------------------------------------
551
+
552
+ Bug fixes:
553
+
554
+ * Workers must ignore SIGTSTP, otherwise master waits forever before
555
+ exiting.
556
+
557
+ * Unregister trap in workers upon first reception instead of racing to
558
+ unregister the trap handlers inherited from the master process.
559
+
560
+ * Prevent uncaught throw error on subsequent Ctrl-C.
561
+
562
+ * Simpler solution for terminating loop upon Ctrl-C.
563
+
564
+ ------------------------------------------------------------------------------
565
+ Version 10.0.0 (2011-04-06)
566
+ ------------------------------------------------------------------------------
567
+
568
+ Incompatible changes:
569
+
570
+ * The `Test::Loop.before_each_test` and `Test::Loop.after_each_test`
571
+ parameters are arrays now.
572
+
573
+ ------------------------------------------------------------------------------
574
+ Version 9.4.0 (2011-04-06)
575
+ ------------------------------------------------------------------------------
576
+
577
+ New features:
578
+
579
+ * Allow lambda functions in `Test::Loop.test_file_matchers` to return `nil`
580
+ so that you can exclude certain tests from being executed.
581
+ (Brian D. Burns)
582
+
583
+ * Prefix worker process title with "test-loop" for easier ps(1)
584
+ searchability. The monitoring command in the README is now simplified to
585
+ the following:
586
+
587
+ watch 'ps xf | grep test-loop | sed 1,3d'
588
+
589
+ Bug fixes:
590
+
591
+ * Skip `at_exit()` when exiting master process. This prevents an empty test
592
+ from being run when exiting the loop after having processed a test/spec
593
+ helper that loads the Test::Unit library. (Brian D. Burns)
594
+
595
+ Housekeeping:
596
+
597
+ * Use throw/catch to break loop instead of raising SystemExit exception.
598
+
599
+ * Trap SIGTERM with IGNORE/DEFAULT instead of using a closure in master.
600
+
601
+ * Unregister master's custom signal handlers inside worker processes.
602
+
603
+ * Separate configuration parameters into subsections in README.
604
+
605
+ ------------------------------------------------------------------------------
606
+ Version 9.3.0 (2011-04-01)
607
+ ------------------------------------------------------------------------------
608
+
609
+ New features:
610
+
611
+ * Resume currently running tests--as well as those currently needing to be
612
+ run--after reabsorbing test execution overhead. (Brian D. Burns)
613
+
614
+ * Stop currently running tests (and wait for them to finish) before
615
+ reabsorbing overhead. This greatly improves responsiveness because worker
616
+ processes are no longer there to compete with the new master process for
617
+ system resources.
618
+
619
+ * Notify user when running all tests and when exiting. (Brian D. Burns)
620
+
621
+ * Notify user when overhead changes instead of when restarting the loop.
622
+
623
+ * Use ANSI clear line command to erase control-key combinations outputted by
624
+ shells such as BASH and ZSH in test-loop's output. (Brian D. Burns)
625
+
626
+ Bug fixes:
627
+
628
+ * `@last_ran_at` was being set during every iteration of the loop. This is
629
+ problematic when Ruby's `Time.now` is more precise than your filesystem's
630
+ modification timestamp. For example, in the ext3 filesystem under Linux,
631
+ file modification timestamps have a precision of 1 second.
632
+ (Brian D. Burns)
633
+
634
+ * Exit gently on SIGINT by sending SIGTERM to all worker processes and then
635
+ running waitall(), instead of sending SIGKILL to the entire process group.
636
+ As a result, test-loop no longer exits with a non-zero status upon SIGINT.
637
+
638
+ * Remove 'ansi' gem dependency. (Brian D. Burns)
639
+
640
+ Documentation:
641
+
642
+ * Add tip on deleting logs for passing tests. (Brian D. Burns)
643
+
644
+ * Add tip on monitoring test processes with watch(1) in README.
645
+
646
+ ------------------------------------------------------------------------------
647
+ Version 9.2.0 (2011-03-28)
648
+ ------------------------------------------------------------------------------
649
+
650
+ * Extract Rails-specific configuration to 'test/loop/rails' sublibrary.
651
+
652
+ * Add 'test/loop/notify' sublibrary for OSD notifications on failures.
653
+
654
+ ------------------------------------------------------------------------------
655
+ Version 9.1.1 (2011-03-15)
656
+ ------------------------------------------------------------------------------
657
+
658
+ * $0 does not work from RubyGems wrapper executable.
659
+ Thanks to Brian D. Burns for reporting this issue.
660
+
661
+ * Add information about sqlite3 errors & workaround in README.
662
+
663
+ ------------------------------------------------------------------------------
664
+ Version 9.1.0 (2011-02-23)
665
+ ------------------------------------------------------------------------------
666
+
667
+ * Print the status of completed tests in ANSI color.
668
+
669
+ * Print the failure log of failing tests to STDERR.
670
+
671
+ * `$?` is not defined when Errno::ECHILD is raised.
672
+
673
+ ------------------------------------------------------------------------------
674
+ Version 9.0.1 (2011-02-18)
675
+ ------------------------------------------------------------------------------
676
+
677
+ * Shield normal output from control-key combos printed into the terminal.
678
+
679
+ * Do not print worker PID in status messages because every test file has
680
+ exactly one worker anyway.
681
+
682
+ * Reabsorb on any `*.{rb,yml}` changes beneath the config/ directory.
683
+
684
+ * Do not reabsorb overhead when the configuration file changes.
685
+
686
+ * Add `after_each_test` example for failure-only notifications.
687
+
688
+ ------------------------------------------------------------------------------
689
+ Version 9.0.0 (2011-02-15)
690
+ ------------------------------------------------------------------------------
691
+
692
+ * Remove SIGUSR1 for killing worker processes.
693
+
694
+ * Handle Ctrl-Z signal from the very beginning.
695
+
696
+ ------------------------------------------------------------------------------
697
+ Version 8.0.0 (2011-02-12)
698
+ ------------------------------------------------------------------------------
699
+
700
+ * Move configuration into `Test::Loop` object itself.
701
+
702
+ * Allow loading `bin/test-loop` into IRB for testing.
703
+
704
+ * Simplify initialization of default configuration.
705
+
706
+ * Revise README: delete needless cruft; add examples.
707
+
708
+ * Add example on extending `before_each_test` function.
709
+
710
+ * DRY `sleep 1` commands into higher order function.
711
+
712
+ * Accept > 80 character lines in some cases.
713
+
714
+ * Freeze more constant values against modification.
715
+
716
+ ------------------------------------------------------------------------------
717
+ Version 7.0.1 (2011-02-10)
718
+ ------------------------------------------------------------------------------
719
+
720
+ * Fix minitest deadlock issues with I/O redirection.
721
+
722
+ * Do not signal to restart loop when overhead changes.
723
+
724
+ ------------------------------------------------------------------------------
725
+ Version 7.0.0 (2011-02-10)
726
+ ------------------------------------------------------------------------------
727
+
728
+ * Switch from shell-script style to modular Ruby style in the source code.
729
+ This yields more lines of code, but the result is much easier to read.
730
+
731
+ * Replace the `$test_loop_config` global variable with the
732
+ `Test::Loop::Config` constant.
733
+
734
+ * Do not wait for all test runs to finish before detecting more changes.
735
+
736
+ * Replace the `after_all_tests` parameter with `after_each_test`.
737
+
738
+ * Capture test run output into separate log files; one log per test file.
739
+
740
+ * The `before_each_test` function is now passed the path to a log file.
741
+
742
+ * Register signal handlers at the earliest and act upon signals immediately.
743
+
744
+ * Previously, SIGQUIT did not work if there were no test helpers.
745
+
746
+ * Send the SIGUSR1 signal to terminate workers and their subprocesses.
747
+
748
+ * Break long lines at 80 characters in the source code.
749
+
750
+ ------------------------------------------------------------------------------
751
+ Version 6.0.0 (2011-02-09)
752
+ ------------------------------------------------------------------------------
753
+
754
+ * Only consider `{test,spec}_helper.rb` as overhead, not all `*_helper.rb`.
755
+
756
+ * Give the user freedom to inspect and change the default configuration by
757
+ storing it in a `$test_loop_config` global variable instead of returning
758
+ the user's desired configuration as a hash from the user's configuration
759
+ file.
760
+
761
+ * Change the method signature of the `after_all_tests` lambda function.
762
+
763
+ * Add support for growl and xmessage in the `after_all_tests` example.
764
+
765
+ * Add note about disabling class caching in Rails test environment.
766
+
767
+ * Add better explanation for the `test_file_matchers` example.
768
+
769
+ ------------------------------------------------------------------------------
770
+ Version 5.0.3 (2011-01-25)
771
+ ------------------------------------------------------------------------------
772
+
773
+ * Use "diff/lcs" library instead of "diff" for RSpec compatibility.
774
+
775
+ Thanks to millisami for reporting this bug:
776
+ https://github.com/sunaku/test-loop/issues/3
777
+
778
+ * Terminate worker processes when user presses Control-C.
779
+
780
+ * Reabsorb when bundler is run, not when Gemfile changes.
781
+
782
+ ------------------------------------------------------------------------------
783
+ Version 5.0.2 (2011-01-19)
784
+ ------------------------------------------------------------------------------
785
+
786
+ * Support string interpolations that yield empty strings in test names.
787
+
788
+ * Accept extra characters before test name in test definition:
789
+ * Whitespace between `def` and `test_` in traditional test methods.
790
+ * Opening parenthesis between test name and test definition keyword.
791
+
792
+ * Mention that diff gem is necessary for manual git clone installation.
793
+
794
+ ------------------------------------------------------------------------------
795
+ Version 5.0.1 (2011-01-18)
796
+ ------------------------------------------------------------------------------
797
+
798
+ * Sanitize string interpolation in parsed test names.
799
+
800
+ * Remove useless use of #map; result is not reused.
801
+
802
+ * Mention parallelism and revise the introduction.
803
+
804
+ * DRY the mentioning of .test-loop file in README.
805
+
806
+ ------------------------------------------------------------------------------
807
+ Version 5.0.0 (2011-01-17)
808
+ ------------------------------------------------------------------------------
809
+
810
+ * The configuration file must now yield a Ruby
811
+ hash instead of polluting the global Object
812
+ private environment with instance variables.
813
+
814
+ * Shortened the `:source_file_glob_to_test_file_mapping`
815
+ configuration parameter name to `:test_file_matchers`.
816
+
817
+ ------------------------------------------------------------------------------
818
+ Version 4.0.1 (2011-01-14)
819
+ ------------------------------------------------------------------------------
820
+
821
+ * Print how much time it took to run all tests.
822
+
823
+ * Do not print test file before loading because it
824
+ is hard to follow parallel test execution anyway.
825
+
826
+ * Print rescued top-level exceptions to STDERR.
827
+
828
+ * Strip surrounding spaces from parsed test names.
829
+
830
+ * Use long options when passing test names in ARGV.
831
+
832
+ * Only prepend lib/, test/, and spec/ to $LOAD_PATH.
833
+
834
+ ------------------------------------------------------------------------------
835
+ Version 4.0.0 (2011-01-13)
836
+ ------------------------------------------------------------------------------
837
+
838
+ * Only run changed tests inside changed test files.
839
+
840
+ * Run tests in parallel: one worker per test file.
841
+
842
+ * Print the status of each test file after execution.
843
+
844
+ * Rename `@after_test_execution` to `@after_all_tests`
845
+ and change its function signature.
846
+
847
+ * Clean up implementation and improve documentation.
848
+
849
+ ------------------------------------------------------------------------------
850
+ Version 3.0.2 (2011-01-11)
851
+ ------------------------------------------------------------------------------
852
+
853
+ * Reabsorb overhead upon Gemfile changes (Rails 3).
854
+
855
+ * Try to recover from all kinds of exceptions.
856
+
857
+ ------------------------------------------------------------------------------
858
+ Version 3.0.1 (2011-01-05)
859
+ ------------------------------------------------------------------------------
860
+
861
+ * Be resilient to $0 and ARGV being changed by tests.
862
+
863
+ * Reduce pollution by making `notify()` into lambda.
864
+
865
+ * Beautify markdown formatting and revise the README.
866
+
867
+ ------------------------------------------------------------------------------
868
+ Version 3.0.0 (2011-01-04)
869
+ ------------------------------------------------------------------------------
870
+
871
+ * Replace Rake #pathmap usage with lambda functions
872
+ in the `@source_file_to_test_file_mapping` hash.
873
+
874
+ * Be resilient to syntax errors from loaded files.
875
+
876
+ ------------------------------------------------------------------------------
877
+ Version 2.0.2 (2011-01-02)
878
+ ------------------------------------------------------------------------------
879
+
880
+ * Do not print stack trace when Control-C pressed.
881
+
882
+ * Reduce the amount of notifications shown to user.
883
+
884
+ ------------------------------------------------------------------------------
885
+ Version 2.0.1 (2011-01-01)
886
+ ------------------------------------------------------------------------------
887
+
888
+ * Fix syntax error caused by a dangling comma. Thanks
889
+ to darthdeus (Jakub Arnold) for reporting [this bug](
890
+ https://github.com/sunaku/test-loop/issues#issue/1 ).
891
+
892
+ * Notify user before reabsorbing overhead.
893
+
894
+ ------------------------------------------------------------------------------
895
+ Version 2.0.0 (2010-12-31)
896
+ ------------------------------------------------------------------------------
897
+
898
+ * Add support for loading configuration file, which
899
+ allows you to define additional test file globs
900
+ and mappings, from the current working directory.
901
+
902
+ * Add support for executing arbitrary logic after every test run
903
+ via the `@after_test_execution` hook in the configuration file.
904
+
905
+ * Before running tests, print out their file paths.
906
+
907
+ * Automatically retry when overhead absorption fails.
908
+
909
+ ------------------------------------------------------------------------------
910
+ Version 1.2.0 (2010-11-23)
911
+ ------------------------------------------------------------------------------
912
+
913
+ * Notify user when absorbing overhead initially.
914
+
915
+ * DRY up the repetiton of Time.at(0) calculation.
916
+
917
+ ------------------------------------------------------------------------------
918
+ Version 1.1.0 (2010-11-22)
919
+ ------------------------------------------------------------------------------
920
+
921
+ * All *_{test,spec}_helper.rb files inside test/ and
922
+ spec/ are now considered to be absorable overhead.
923
+
924
+ ------------------------------------------------------------------------------
925
+ Version 1.0.2 (2010-10-16)
926
+ ------------------------------------------------------------------------------
927
+
928
+ * All *_helper.rb files inside test/ and spec/
929
+ were absorbed as overhead instead of just
930
+ the test_helper.rb and spec_helper.rb files.
931
+
932
+ ------------------------------------------------------------------------------
933
+ Version 1.0.1 (2010-10-16)
934
+ ------------------------------------------------------------------------------
935
+
936
+ * Ensure that $LOAD_PATH reflects `ruby -Ilib:test`.
937
+
938
+ ------------------------------------------------------------------------------
939
+ Version 1.0.0 (2010-10-15)
940
+ ------------------------------------------------------------------------------
941
+
942
+ * Remove ability to install as a Rails plugin.
943
+
944
+ * Move logic from lib/ into bin/ to keep it simple.
945
+
946
+ * Rely on $LOAD_PATH in bin/ instead of relative paths.
947
+
948
+ * Display status messages for better user interactivity.
949
+
950
+ ------------------------------------------------------------------------------
951
+ Version 0.0.2 (2010-10-11)
952
+ ------------------------------------------------------------------------------
953
+
954
+ * Forgot to register bin/test-loop as gem executable.
955
+
956
+ * Revise Usage section into Invocation and Operation.
957
+
958
+ ------------------------------------------------------------------------------
959
+ Version 0.0.1 (2010-10-10)
960
+ ------------------------------------------------------------------------------
961
+
962
+ * First public release. Enjoy!