tork 19.3.0 → 19.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Rakefile +0 -1
- data/VERSION.markdown +13 -0
- data/bin/tork +1 -1
- data/bin/tork-driver +1 -1
- data/bin/tork-engine +1 -1
- data/bin/tork-herald +1 -1
- data/bin/tork-master +1 -1
- data/bin/tork-notify +1 -1
- data/lib/tork/server.rb +8 -2
- data/lib/tork/version.rb +1 -1
- data/man/index.html +11 -0
- data/man/man0/README.html +137 -0
- data/man/man0/VERSION.html +981 -0
- data/man/man0/VERSION.markdown +13 -0
- data/man/man1/tork-driver.1 +1 -1
- data/man/man1/tork-driver.1.html +93 -0
- data/man/man1/tork-engine.1 +1 -1
- data/man/man1/tork-engine.1.html +19 -0
- data/man/man1/tork-herald.1 +1 -1
- data/man/man1/tork-herald.1.html +13 -0
- data/man/man1/tork-master.1 +1 -1
- data/man/man1/tork-master.1.html +35 -0
- data/man/man1/tork-notify.1 +1 -1
- data/man/man1/tork-notify.1.html +14 -0
- data/man/man1/tork-remote.1.html +15 -0
- data/man/man1/tork.1 +1 -1
- data/man/man1/tork.1.html +42 -0
- data/man/style.css +57 -0
- data/tork.gemspec +5 -2
- metadata +32 -41
data/man/man0/VERSION.markdown
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
## Version 19.3.1 (2013-06-07)
|
2
|
+
|
3
|
+
Patch:
|
4
|
+
|
5
|
+
* server: rescue from failed writes to asynchronously closed clients.
|
6
|
+
|
7
|
+
Thanks to Jonathan Cairns for reporting and fixing this bug in GH-53:
|
8
|
+
https://github.com/sunaku/tork/issues/53
|
9
|
+
|
10
|
+
Other:
|
11
|
+
|
12
|
+
* Upgrade to md2man 2.0.
|
13
|
+
|
1
14
|
## Version 19.3.0 (2013-05-05)
|
2
15
|
|
3
16
|
Minor:
|
data/man/man1/tork-driver.1
CHANGED
@@ -0,0 +1,93 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
|
6
|
+
<title>tork-driver(1) — drives tork-engine(1) when files change</title>
|
7
|
+
<link rel="stylesheet" href="../style.css"/>
|
8
|
+
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
9
|
+
</head>
|
10
|
+
<body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork-driver.1</span></div></div><div class="container-fluid"><h1 id="TORK-DRIVER-1-2013-06-07-19-3-1">TORK-DRIVER 1 2013-06-07 19.3.1</h1><h2 id="NAME">NAME</h2><p>tork-driver - drives <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a> when files change</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork-driver</code> [<em>OPTION</em>]...</p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program drives <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a> when <a class="md2man-xref" href="../man1/tork-herald.1.html">tork-herald(1)</a> reports files changes.</p><p>This program can be controlled remotely by multiple <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a> instances.</p><h3 id="Input">Input</h3><p>This program reads the following commands, which are single-line JSON arrays,
|
11
|
+
from stdin and performs the actions described respectively.</p><dl><dt><code>["run_all_test_files"]</code></dt><dd>Runs all test files found within and beneath the current working directory.</dd></dl><dl><dt><em>...</em></dt><dd>Commands for <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a> are also accepted here.</dd></dl><h3 id="Output">Output</h3><p>This program prints the following messages, which are single-line JSON arrays,
|
12
|
+
to stdout.</p><dl><dt><code>["reabsorb",</code> <em>overhead_file</em><code>]</code></dt><dd>Test execution overhead is being reabsorbed because <em>overhead_file</em> has
|
13
|
+
changed.</dd></dl><dl><dt><em>...</em></dt><dd>Messages from <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a> and <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a> are also reproduced here.</dd></dl><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="FILES">FILES</h2><dl><dt><em>.tork/config.rb</em></dt><dd>Optional Ruby script that is loaded inside the driver process on startup.
|
14
|
+
It can read and change the <code>ENV['TORK_CONFIGS']</code> environment variable.</dd></dl><dl><dt><code>.tork/driver.rb</code></dt><dd>Optional Ruby script that is loaded inside the driver process on startup.
|
15
|
+
It can read and change the following variables.</dd></dl>
|
16
|
+
<blockquote>
|
17
|
+
<dl><dt><code>Tork::Driver::REABSORB_FILE_GREPS</code></dt><dd>Array of strings or regular expressions that match the paths of overhead
|
18
|
+
files. If any of these equal or match the path of a changed file
|
19
|
+
reported by <a class="md2man-xref" href="../man1/tork-herald.1.html">tork-herald(1)</a>, then the test execution overhead will be
|
20
|
+
reabsorbed in <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a>.</dd></dl><dl><dt><code>Tork::Driver::ALL_TEST_FILE_GLOBS</code></dt><dd>Array of file globbing patterns that describe the set of all test files
|
21
|
+
in your Ruby application.</dd></dl><dl><dt><code>Tork::Driver::TEST_FILE_GLOBBERS</code></dt><dd>Hash that maps (1) a regular expression describing a set of file paths
|
22
|
+
to (2) a lambda function that accepts a <code>MatchData</code> object containing
|
23
|
+
the results of the regular expression matching against the path of a
|
24
|
+
changed file, and yields one or more file globbing patterns (a single
|
25
|
+
string, or an array of strings) that describe a set of test files that
|
26
|
+
need to be run.</dd></dl><dl><dd>The results of these functions are recursively expanded (fed back into
|
27
|
+
them) to construct an entire dependency tree of test files that need to
|
28
|
+
be run. For instance, if one function returns a glob that yields files
|
29
|
+
matched by another function, then that second function will be called to
|
30
|
+
glob more test files. This process repeats until all dependent test
|
31
|
+
files have been accounted for.</dd></dl>
|
32
|
+
<blockquote>
|
33
|
+
<p><strong><em>Single glob expansion</em></strong></p><p>For example, if test files had the same names as their source files
|
34
|
+
followed by an underscore and the file name in reverse like this:</p>
|
35
|
+
<ul>
|
36
|
+
<li>lib/hello.rb => test/hello_olleh.rb</li>
|
37
|
+
<li>app/world.rb => spec/world_ldrow.rb</li>
|
38
|
+
</ul>
|
39
|
+
<p>Then you would add the following to your configuration file:</p>
|
40
|
+
<pre><code>Tork::Driver::TEST_FILE_GLOBBERS.update(
|
41
|
+
%r{^(lib|app)/.*?([^/]+?)\.rb$} => lambda do |matches|
|
42
|
+
name = matches[2]
|
43
|
+
"{test,spec}/**/#{name}_#{name.reverse}.rb"
|
44
|
+
end
|
45
|
+
)
|
46
|
+
</code></pre>
|
47
|
+
<p><strong><em>Multi-glob expansion</em></strong></p><p>For example, if test files could optionally have "test" or "spec"
|
48
|
+
prefixed or appended to their already peculiar names, like so:</p>
|
49
|
+
<ul>
|
50
|
+
<li>lib/hello.rb => test/hello_olleh_test.rb</li>
|
51
|
+
<li>lib/hello.rb => test/test_hello_olleh.rb</li>
|
52
|
+
<li>app/world.rb => spec/world_ldrow_spec.rb</li>
|
53
|
+
<li>app/world.rb => spec/spec_world_ldrow.rb</li>
|
54
|
+
</ul>
|
55
|
+
<p>Then you would add the following to your configuration file:</p>
|
56
|
+
<pre><code>Tork::Driver::TEST_FILE_GLOBBERS.update(
|
57
|
+
%r{^(lib|app)/.*?([^/]+?)\.rb$} => lambda do |matches|
|
58
|
+
name = matches[2]
|
59
|
+
["{test,spec}/**/#{name}_#{name.reverse}.rb",
|
60
|
+
"{test,spec}/**/#{name}_#{name.reverse}_{test,spec}.rb",
|
61
|
+
"{test,spec}/**/{test,spec}_#{name}_#{name.reverse}.rb"]
|
62
|
+
end
|
63
|
+
)
|
64
|
+
</code></pre>
|
65
|
+
<p><strong><em>Recursive expansion</em></strong></p><p>For example, if you wanted to run test files associated with
|
66
|
+
<code>lib/hello.rb</code> whenever the <code>app/world.rb</code> file changed, then you would
|
67
|
+
write:</p>
|
68
|
+
<pre><code>Tork::Driver::TEST_FILE_GLOBBERS.update(
|
69
|
+
%r{^app/world\.rb$} => lambda do |matches|
|
70
|
+
'lib/hello.rb'
|
71
|
+
end
|
72
|
+
)
|
73
|
+
</code></pre>
|
74
|
+
<p>This effectively aliases one file onto another, but not in both
|
75
|
+
directions.</p><p><strong><em>Suppressing expansion</em></strong></p><p>These lambda functions can return <code>nil</code> if they do not wish for a
|
76
|
+
particular source file to be tested. For example, to ignore tests for
|
77
|
+
all source files except those within a <code>models/</code> directory, you would
|
78
|
+
write:</p>
|
79
|
+
<pre><code>Tork::Driver::TEST_FILE_GLOBBERS.update(
|
80
|
+
%r{^(lib|app)(/.*?)([^/]+?)\.rb$} => lambda do |matches|
|
81
|
+
if matches[2].include? '/models/'
|
82
|
+
["{test,spec}/**/#{matches[3]}_{test,spec}.rb",
|
83
|
+
"{test,spec}/**/{test,spec}_#{matches[3]}.rb"]
|
84
|
+
#else # implied by the Ruby language
|
85
|
+
#nil # implied by the Ruby language
|
86
|
+
end
|
87
|
+
end
|
88
|
+
)
|
89
|
+
</code></pre>
|
90
|
+
</blockquote>
|
91
|
+
</blockquote>
|
92
|
+
<h2 id="ENVIRONMENT">ENVIRONMENT</h2><p>See <a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>.</p><h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>, <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a>, <a class="md2man-xref" href="../man1/tork-herald.1.html">tork-herald(1)</a>, <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a>, <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a></p></div></body>
|
93
|
+
</html>
|
data/man/man1/tork-engine.1
CHANGED
@@ -0,0 +1,19 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
|
6
|
+
<title>tork-engine(1) — wraps tork-master(1) with bookkeeping</title>
|
7
|
+
<link rel="stylesheet" href="../style.css"/>
|
8
|
+
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
9
|
+
</head>
|
10
|
+
<body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork-engine.1</span></div></div><div class="container-fluid"><h1 id="TORK-ENGINE-1-2013-06-07-19-3-1">TORK-ENGINE 1 2013-06-07 19.3.1</h1><h2 id="NAME">NAME</h2><p>tork-engine - wraps <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a> with bookkeeping</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork-engine</code> [<em>OPTION</em>]...</p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program uses <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a> to run tests and keeps track of the results.</p><p>This program can be controlled remotely by multiple <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a> instances.</p><h3 id="Input">Input</h3><p>This program reads the following commands, which are single-line JSON arrays,
|
11
|
+
from stdin and performs the actions described respectively.</p><dl><dt><code>["reabsorb_overhead"]</code></dt><dd>Stops any test files that are currently running, reabsorbs the test
|
12
|
+
execution overhead, and then re-runs those stopped test files.</dd></dl><dl><dt><code>["run_test_file"</code>, <em>test_file</em><code>,</code> <em>line_numbers</em>...<code>]</code></dt><dd>Runs tests that correspond to the given sequence of <em>line_numbers</em> in the
|
13
|
+
given <em>test_file</em>. If no <em>line_numbers</em> are given, then only those lines
|
14
|
+
that have changed since the last run of <em>test_file</em> will be substituted.
|
15
|
+
If any <em>line_numbers</em> are zero, then the entire <em>test_file</em> will be run.</dd></dl><dl><dt><code>["run_test_files"</code>, <em>test_files_with_optional_line_numbers</em><code>]</code></dt><dd>Calls the <code>run_test_file</code> command once for each item in the given array.</dd></dl><dl><dt><code>["stop_running_test_files"</code>, <em>signal</em><code>]</code></dt><dd>Stops test files that are currently running by sending the given <em>signal</em>
|
16
|
+
(optional; defaults to "SIGTERM") to their respective worker processes.</dd></dl><dl><dt><code>["rerun_passed_test_files"]</code></dt><dd>Runs all test files that have passed during their most recent run.</dd></dl><dl><dt><code>["rerun_failed_test_files"]</code></dt><dd>Runs all test files that have failed during their most recent run.</dd></dl><dl><dt><code>["quit"]</code></dt><dd>Stops all tests that are currently running and exits.</dd></dl><h3 id="Output">Output</h3><p>This program prints the following messages, which are single-line JSON arrays,
|
17
|
+
to stdout.</p><dl><dt><code>["idle"]</code></dt><dd>All tests have finished running and no tests are queued for running either.</dd></dl><dl><dt><code>["pass_now_fail",</code> <em>test_file</em><code>,</code> <em>message</em><code>]</code></dt><dd>A previously passing <em>test_file</em> has now failed. See <em>message</em> for details.</dd></dl><dl><dt><code>["fail_now_pass",</code> <em>test_file</em><code>,</code> <em>message</em><code>]</code></dt><dd>A previously failing <em>test_file</em> has now passed. See <em>message</em> for details.</dd></dl><dl><dt><em>...</em></dt><dd>Messages from <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a> are also reproduced here.</dd></dl><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="FILES">FILES</h2><dl><dt><em>.tork/config.rb</em></dt><dd>Optional Ruby script that is loaded inside the driver process on startup.
|
18
|
+
It can read and change the <code>ENV['TORK_CONFIGS']</code> environment variable.</dd></dl><dl><dt><em>.tork/engine.rb</em></dt><dd>Optional Ruby script that is loaded inside the master process on startup.</dd></dl><h2 id="ENVIRONMENT">ENVIRONMENT</h2><p>See <a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>.</p><h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>, <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a>, <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a></p></div></body>
|
19
|
+
</html>
|
data/man/man1/tork-herald.1
CHANGED
@@ -0,0 +1,13 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
|
6
|
+
<title>tork-herald(1) — reports modified files</title>
|
7
|
+
<link rel="stylesheet" href="../style.css"/>
|
8
|
+
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
9
|
+
</head>
|
10
|
+
<body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork-herald.1</span></div></div><div class="container-fluid"><h1 id="TORK-HERALD-1-2013-06-07-19-3-1">TORK-HERALD 1 2013-06-07 19.3.1</h1><h2 id="NAME">NAME</h2><p>tork-herald - reports modified files</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork-herald</code> [<em>OPTION</em>]...</p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program monitors the current working directory and all those below it
|
11
|
+
recursively. When any files therein are modified, it prints their relative
|
12
|
+
paths in a single-line JSON array to stdout.</p><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>, <a class="md2man-xref" href="../man1/tork-driver.1.html">tork-driver(1)</a></p></div></body>
|
13
|
+
</html>
|
data/man/man1/tork-master.1
CHANGED
@@ -0,0 +1,35 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
|
6
|
+
<title>tork-master(1) — absorbs overhead and runs tests</title>
|
7
|
+
<link rel="stylesheet" href="../style.css"/>
|
8
|
+
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
9
|
+
</head>
|
10
|
+
<body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork-master.1</span></div></div><div class="container-fluid"><h1 id="TORK-MASTER-1-2013-06-07-19-3-1">TORK-MASTER 1 2013-06-07 19.3.1</h1><h2 id="NAME">NAME</h2><p>tork-master - absorbs overhead and runs tests</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork-master</code> [<em>OPTION</em>]...</p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program absorbs your Ruby application's test execution overhead once and
|
11
|
+
simply <a class="md2man-xref">fork(3)</a>s worker processses to run your tests thereafter. As a result,
|
12
|
+
your tests run faster because they no longer spend any time absorbing the test
|
13
|
+
execution overhead: worker processes simply inherit the overhead when forked.</p><p>This program can be controlled remotely by multiple <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a> instances.</p><h3 id="Input">Input</h3><p>This program reads the following commands, which are single-line JSON arrays,
|
14
|
+
from stdin and performs the actions described respectively.</p><dl><dt><code>["test",</code> <em>test_file</em><code>,</code> <em>line_numbers</em><code>]</code></dt><dd>Forks a worker process to run tests that correspond to the given
|
15
|
+
<em>line_numbers</em> in the given <em>test_file</em>. If <em>line_numbers</em> is empty, then
|
16
|
+
the entire <em>test_file</em> will be run.</dd></dl><dl><dt><code>["stop",</code> <em>signal</em><code>]</code></dt><dd>Stops all tests that are currently running by sending the given <em>signal</em>
|
17
|
+
(optional; defaults to "SIGTERM") to their respective worker processes.</dd></dl><dl><dt><code>["quit"]</code></dt><dd>Stops all tests that are currently running and exits.</dd></dl><h3 id="Output">Output</h3><p>This program prints the following messages, which are single-line JSON arrays,
|
18
|
+
to stdout.</p><dl><dt><code>["absorb"]</code></dt><dd>Test execution overhead has been absorbed. We are ready for testing!</dd></dl><dl><dt><code>["test",</code> <em>test_file</em><code>,</code> <em>line_numbers</em><code>,</code> <em>log_file</em><code>,</code> <em>worker_number</em><code>]</code></dt><dd>Test has begun running. Its output (both stdout and stderr) is being
|
19
|
+
captured into <em>log_file</em> in real time, so you can watch it with <code>tail -f</code>.</dd></dl><dl><dt><code>["pass",</code> <em>test_file</em><code>,</code> <em>line_numbers</em><code>,</code> <em>log_file</em><code>,</code> <em>worker_number</em><code>,</code> <em>exit_code</em><code>,</code> <em>exit_info</em><code>]</code></dt><dd>Test has passed.</dd></dl><dl><dt><code>["fail",</code> <em>test_file</em><code>,</code> <em>line_numbers</em><code>,</code> <em>log_file</em><code>,</code> <em>worker_number</em><code>,</code> <em>exit_code</em><code>,</code> <em>exit_info</em><code>]</code></dt><dd>Test has failed.</dd></dl><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="FILES">FILES</h2><dl><dt><em>.tork/config.rb</em></dt><dd>Optional Ruby script that is loaded inside the driver process on startup.
|
20
|
+
It can read and change the <code>ENV['TORK_CONFIGS']</code> environment variable.</dd></dl><dl><dt><em>.tork/master.rb</em></dt><dd>Optional Ruby script that is loaded inside the master process on startup.
|
21
|
+
It can read and change the following variables.</dd></dl>
|
22
|
+
<blockquote>
|
23
|
+
<dl><dt><code>Tork::Master::MAX_CONCURRENT_WORKERS</code></dt><dd>Maximum number of worker processes that are allowed to be running
|
24
|
+
simultaneously at any given time. The default value is either the
|
25
|
+
number of processors detected on your system or 1 if detection failed.</dd></dl></blockquote>
|
26
|
+
<dl><dt><em>.tork/onfork.rb</em></dt><dd>Optional Ruby script that is loaded inside the master process just before a
|
27
|
+
worker process is forked. It can read and change the following variables.</dd></dl>
|
28
|
+
<blockquote>
|
29
|
+
<dl><dt><code>$tork_test_file</code></dt><dd>Path of the test file that will be run by the worker process.</dd></dl><dl><dt><code>$tork_line_numbers</code></dt><dd>Array of line numbers in the test file that were requested to be run.</dd></dl><dl><dt><code>$tork_log_file</code></dt><dd>Path of the log file that will hold the output of the worker process.</dd></dl><dl><dt><code>$tork_worker_number</code></dt><dd>Sequence number of the worker process that will be forked shortly.</dd></dl></blockquote>
|
30
|
+
<dl><dt><em>.tork/worker.rb</em></dt><dd>Optional Ruby script that is loaded inside a worker process just after
|
31
|
+
it is forked. It can read and change the following variables.</dd></dl>
|
32
|
+
<blockquote>
|
33
|
+
<dl><dt><code>$tork_test_file</code></dt><dd>Path of the test file that will be run by this worker process.</dd></dl><dl><dt><code>$tork_line_numbers</code></dt><dd>Array of line numbers in the test file that were requested to be run.</dd></dl><dl><dt><code>$tork_log_file</code></dt><dd>Path of the log file that will hold the output of this worker process.</dd></dl><dl><dt><code>$tork_worker_number</code></dt><dd>Sequence number of this worker process.</dd></dl></blockquote>
|
34
|
+
<h2 id="ENVIRONMENT">ENVIRONMENT</h2><p>See <a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>.</p><h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>, <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a></p></div></body>
|
35
|
+
</html>
|
data/man/man1/tork-notify.1
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
|
6
|
+
<title>tork-notify(1) — notifies you of test status changes</title>
|
7
|
+
<link rel="stylesheet" href="../style.css"/>
|
8
|
+
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
9
|
+
</head>
|
10
|
+
<body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork-notify.1</span></div></div><div class="container-fluid"><h1 id="TORK-NOTIFY-1-2013-06-07-19-3-1">TORK-NOTIFY 1 2013-06-07 19.3.1</h1><h2 id="NAME">NAME</h2><p>tork-notify - notifies you of test status changes</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork-notify</code> [<em>OPTION</em>]...</p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program serves as an example of how to receive and process messages sent
|
11
|
+
by the various programs in the <a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a> suite. It notifies you when previously
|
12
|
+
passing tests fail (or vice versa) through libnotify, xmessage, or growl. If
|
13
|
+
none are available on your system, then the notification is printed to stdout.</p><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="EXIT-STATUS">EXIT STATUS</h2><p>See <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a>.</p><h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a>, <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a></p></div></body>
|
14
|
+
</html>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
|
6
|
+
<title>tork-remote(1) — controls tork(1) programs</title>
|
7
|
+
<link rel="stylesheet" href="../style.css"/>
|
8
|
+
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
9
|
+
</head>
|
10
|
+
<body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork-remote.1</span></div></div><div class="container-fluid"><h1 id="TORK-REMOTE-1-2012-09-26-18-2-3">TORK-REMOTE 1 2012-09-26 18.2.3</h1><h2 id="NAME">NAME</h2><p>tork-remote - controls <a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a> programs</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork-remote</code> [<em>OPTION</em>]... <em>PROGRAM</em></p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program sends single-line JSON messages read from its stdin to the given
|
11
|
+
<em>PROGRAM</em> which is already running in the same working directory as this one.</p><p>If lines read from stdin are not single-line JSON messages, then they are
|
12
|
+
split into an array of words, using the same word-splitting algorithm as
|
13
|
+
<a class="md2man-xref">sh(1)</a>, before being sent to the <em>PROGRAM</em> as a single-line JSON message.</p><p>If the <em>PROGRAM</em> sends any messages in response, then they are printed to
|
14
|
+
stdout if they are valid single-line JSON messages or to stderr otherwise.</p><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="EXIT-STATUS">EXIT STATUS</h2><dl><dt>1</dt><dd>Could not connect to the <em>PROGRAM</em>.</dd></dl><dl><dt>2</dt><dd>Lost connection to the <em>PROGRAM</em>.</dd></dl><h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>, <a class="md2man-xref" href="../man1/tork-driver.1.html">tork-driver(1)</a>, <a class="md2man-xref" href="../man1/tork-engine.1.html">tork-engine(1)</a>, <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a></p></div></body>
|
15
|
+
</html>
|
data/man/man1/tork.1
CHANGED
@@ -0,0 +1,42 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8" />
|
5
|
+
<meta name="generator" content="md2man 2.0.0 https://github.com/sunaku/md2man" />
|
6
|
+
<title>tork(1) — Continuous testing tool for Ruby</title>
|
7
|
+
<link rel="stylesheet" href="../style.css"/>
|
8
|
+
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
9
|
+
</head>
|
10
|
+
<body><div class="navbar"><div class="navbar-inner"><span class="brand"><a href="../index.html#man1">man1</a>/tork.1</span></div></div><div class="container-fluid"><h1 id="TORK-1-2013-06-07-19-3-1">TORK 1 2013-06-07 19.3.1</h1><h2 id="NAME">NAME</h2><p>tork - Continuous testing tool for Ruby</p><h2 id="SYNOPSIS">SYNOPSIS</h2><p><code>tork</code> [<em>OPTION</em>]... [<em>CONFIG</em>]...</p><h2 id="DESCRIPTION">DESCRIPTION</h2><p>This program is a simple command-line user interface for <a class="md2man-xref" href="../man1/tork-driver.1.html">tork-driver(1)</a>.</p><p>First, it applies the given <em>CONFIG</em> values, which are either (1) paths to
|
11
|
+
directories that contain configuration files or (2) names of configuration
|
12
|
+
helpers listed in the description of the <code>TORK_CONFIGS</code> environment variable.</p><p>Next, it waits for you to supply interactive commands either (1) directly on
|
13
|
+
its stdin or (2) remotely through <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a>. From then onward, you may
|
14
|
+
press the ENTER key (supplying no command) to see a menu of accepted commands.</p><p>Some interactive commands accept additional arguments, described as follows.</p><dl><dt><code>t</code> <em>test_file</em> [<em>line_number</em>]...</dt><dd>Runs the given <em>test_file</em> while only running those tests that are defined
|
15
|
+
on the given list of <em>line_number</em>s. If no <em>line_number</em>s are given, then
|
16
|
+
only those tests that have changed since the last run of the <em>test_file</em>
|
17
|
+
will now be run.</dd></dl><dl><dt><code>s</code> [<em>signal</em>]</dt><dd>Stops test files that are currently running by sending the given <em>signal</em>
|
18
|
+
(optional; defaults to <code>SIGTERM</code>) to their respective worker processes.</dd></dl><p>This program can be controlled remotely by multiple <a class="md2man-xref" href="../man1/tork-remote.1.html">tork-remote(1)</a> instances.</p><h2 id="OPTIONS">OPTIONS</h2><dl><dt><code>-h</code>, <code>--help</code></dt><dd>Show this help manual.</dd></dl><h2 id="FILES">FILES</h2><dl><dt><em>.tork/config.rb</em></dt><dd>Optional Ruby script that is loaded inside the driver process on startup.
|
19
|
+
It can read and change the <code>ENV['TORK_CONFIGS']</code> environment variable.</dd></dl><h2 id="ENVIRONMENT">ENVIRONMENT</h2><dl><dt><code>TORK_CONFIGS</code></dt><dd>Colon-separated (:) list of either paths to directories that contain
|
20
|
+
configuration files or names of the following configuration helpers.
|
21
|
+
If this variable is not set, then its value is assumed to be "default".</dd></dl>
|
22
|
+
<blockquote>
|
23
|
+
<dl><dt><code>default</code></dt><dd>Loads the following configuration helpers (as appropriate) if your
|
24
|
+
current working directory appears to utilize what they configure.
|
25
|
+
See below for complete descriptions of these configuration helpers.</dd></dl>
|
26
|
+
<ul>
|
27
|
+
<li>rails</li>
|
28
|
+
<li>devise</li>
|
29
|
+
<li>test</li>
|
30
|
+
<li>spec</li>
|
31
|
+
<li>cucumber</li>
|
32
|
+
<li>factory_girl</li>
|
33
|
+
</ul>
|
34
|
+
<dl><dt><code>dotlog</code></dt><dd>Hides log files by prefixing their names with a period (dot).</dd></dl><dl><dt><code>logdir</code></dt><dd>Keeps log files away from your tests, in the <code>log/</code> directory.</dd></dl><dl><dt><code>coverage</code></dt><dd>Measures C0 code coverage under Ruby 1.9 and dumps a hash in YAML
|
35
|
+
format at the end of your log file containing every Ruby script that
|
36
|
+
was loaded from the current working directory or any of its descendant
|
37
|
+
directories (the key) mapped to the following information (the value):</dd></dl>
|
38
|
+
<blockquote>
|
39
|
+
<dl><dt><code>:grade</code></dt><dd>Percentage of source lines that were C0 covered.</dd></dl><dl><dt><code>:nsloc</code></dt><dd>Total number of source lines of code in the file.</dd></dl><dl><dt><code>:holes</code></dt><dd>Line numbers of source lines that were not covered.</dd></dl></blockquote>
|
40
|
+
<dl><dt><code>test</code></dt><dd>Supports the Test::Unit standard library.</dd></dl><dl><dt><code>spec</code></dt><dd>Supports the <a href="http://rspec.info">RSpec</a> testing framework.</dd></dl><dl><dt><code>cucumber</code></dt><dd>Supports the <a href="https://cukes.info">Cucumber</a> testing framework.</dd></dl><dl><dt><code>rails</code></dt><dd>Supports the <a href="http://rubyonrails.org">Ruby on Rails</a> web framework.</dd></dl><dl><dt><code>devise</code></dt><dd>Supports the <a href="https://github.com/plataformatec/devise">Devise</a> authentication framework.</dd></dl><dl><dt><code>factory_girl</code></dt><dd>Supports the <a href="https://github.com/thoughtbot/factory_girl">factory_girl</a> testing library.</dd></dl><dl><dt><code>parallel_tests</code></dt><dd>Supports the <a href="https://github.com/grosser/parallel_tests">parallel_tests</a> testing library.</dd></dl></blockquote>
|
41
|
+
<h2 id="SEE-ALSO">SEE ALSO</h2><p><a class="md2man-xref" href="../man1/tork.1.html">tork(1)</a>, <a class="md2man-xref" href="../man1/tork-driver.1.html">tork-driver(1)</a>, <a class="md2man-xref" href="../man1/tork-master.1.html">tork-master(1)</a></p></div></body>
|
42
|
+
</html>
|
data/man/style.css
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
@import url('http://twitter.github.com/bootstrap/assets/css/bootstrap.css');
|
2
|
+
|
3
|
+
@media all {
|
4
|
+
h1,
|
5
|
+
h2,
|
6
|
+
h3,
|
7
|
+
h4,
|
8
|
+
h5,
|
9
|
+
h6 {
|
10
|
+
margin-top: 1em;
|
11
|
+
}
|
12
|
+
|
13
|
+
/* deactivate external manual page cross-references */
|
14
|
+
a.md2man-xref:not([href]) {
|
15
|
+
color: inherit;
|
16
|
+
text-decoration: none;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
@media screen {
|
21
|
+
body {
|
22
|
+
font-family: monospace;
|
23
|
+
text-align: justify;
|
24
|
+
max-width: 83ex; /* allots 78ex width for manpage */
|
25
|
+
margin: auto;
|
26
|
+
}
|
27
|
+
|
28
|
+
h1:first-child {
|
29
|
+
margin-top: -5em;
|
30
|
+
font-weight: normal;
|
31
|
+
font-size: smaller;
|
32
|
+
text-align: right;
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
@media print {
|
37
|
+
.navbar:first-child {
|
38
|
+
display: none;
|
39
|
+
}
|
40
|
+
|
41
|
+
/* improve readability of revealed hyperlink URLs */
|
42
|
+
a:after {
|
43
|
+
font-family: monospace;
|
44
|
+
}
|
45
|
+
|
46
|
+
/* internal links and manual page cross-references */
|
47
|
+
a[href^='#'], a[href^='../man'] {
|
48
|
+
color: inherit;
|
49
|
+
font-weight: bolder;
|
50
|
+
text-decoration: none;
|
51
|
+
}
|
52
|
+
|
53
|
+
/* undo bootstrap's revealing of those hyperlinks */
|
54
|
+
a[href^='#']:after, a[href^='../man']:after {
|
55
|
+
content: none;
|
56
|
+
}
|
57
|
+
}
|
data/tork.gemspec
CHANGED
@@ -13,15 +13,18 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.summary = 'test with fork'
|
14
14
|
s.description = 'Runs your tests as they change, in parallel.'
|
15
15
|
|
16
|
-
s.files = `git ls-files`.split("\n")
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
17
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ['lib']
|
20
20
|
|
21
|
+
s.files += Dir['man/man?/*.?'] # UNIX man pages
|
22
|
+
s.files += Dir['man/**/*.{html,css,js}'] # HTML man pages
|
23
|
+
s.add_development_dependency 'md2man', '~> 2.0'
|
24
|
+
|
21
25
|
s.add_runtime_dependency 'binman', '~> 3.0'
|
22
26
|
s.add_runtime_dependency 'json', '~> 1.6'
|
23
27
|
s.add_runtime_dependency 'listen', '~> 0.7'
|
24
28
|
s.add_runtime_dependency 'diff-lcs', '~> 1.1'
|
25
|
-
s.add_development_dependency 'md2man', '~> 1.4'
|
26
29
|
s.add_development_dependency 'rake', '~> 0.9.2.2'
|
27
30
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tork
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 19.3.
|
5
|
-
prerelease:
|
4
|
+
version: 19.3.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Suraj N. Kurapati
|
@@ -10,12 +9,25 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-
|
12
|
+
date: 2013-06-08 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: md2man
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ~>
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '2.0'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '2.0'
|
15
28
|
- !ruby/object:Gem::Dependency
|
16
29
|
name: binman
|
17
30
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
31
|
requirements:
|
20
32
|
- - ~>
|
21
33
|
- !ruby/object:Gem::Version
|
@@ -23,7 +35,6 @@ dependencies:
|
|
23
35
|
type: :runtime
|
24
36
|
prerelease: false
|
25
37
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
38
|
requirements:
|
28
39
|
- - ~>
|
29
40
|
- !ruby/object:Gem::Version
|
@@ -31,7 +42,6 @@ dependencies:
|
|
31
42
|
- !ruby/object:Gem::Dependency
|
32
43
|
name: json
|
33
44
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
45
|
requirements:
|
36
46
|
- - ~>
|
37
47
|
- !ruby/object:Gem::Version
|
@@ -39,7 +49,6 @@ dependencies:
|
|
39
49
|
type: :runtime
|
40
50
|
prerelease: false
|
41
51
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
52
|
requirements:
|
44
53
|
- - ~>
|
45
54
|
- !ruby/object:Gem::Version
|
@@ -47,7 +56,6 @@ dependencies:
|
|
47
56
|
- !ruby/object:Gem::Dependency
|
48
57
|
name: listen
|
49
58
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
59
|
requirements:
|
52
60
|
- - ~>
|
53
61
|
- !ruby/object:Gem::Version
|
@@ -55,7 +63,6 @@ dependencies:
|
|
55
63
|
type: :runtime
|
56
64
|
prerelease: false
|
57
65
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
66
|
requirements:
|
60
67
|
- - ~>
|
61
68
|
- !ruby/object:Gem::Version
|
@@ -63,7 +70,6 @@ dependencies:
|
|
63
70
|
- !ruby/object:Gem::Dependency
|
64
71
|
name: diff-lcs
|
65
72
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
73
|
requirements:
|
68
74
|
- - ~>
|
69
75
|
- !ruby/object:Gem::Version
|
@@ -71,31 +77,13 @@ dependencies:
|
|
71
77
|
type: :runtime
|
72
78
|
prerelease: false
|
73
79
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
80
|
requirements:
|
76
81
|
- - ~>
|
77
82
|
- !ruby/object:Gem::Version
|
78
83
|
version: '1.1'
|
79
|
-
- !ruby/object:Gem::Dependency
|
80
|
-
name: md2man
|
81
|
-
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
|
-
requirements:
|
84
|
-
- - ~>
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
version: '1.4'
|
87
|
-
type: :development
|
88
|
-
prerelease: false
|
89
|
-
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
|
-
requirements:
|
92
|
-
- - ~>
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
version: '1.4'
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: rake
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
88
|
- - ~>
|
101
89
|
- !ruby/object:Gem::Version
|
@@ -103,7 +91,6 @@ dependencies:
|
|
103
91
|
type: :development
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
95
|
- - ~>
|
109
96
|
- !ruby/object:Gem::Version
|
@@ -174,34 +161,38 @@ files:
|
|
174
161
|
- man/man1/tork-master.1
|
175
162
|
- man/man1/tork-driver.1
|
176
163
|
- man/man1/tork.1
|
164
|
+
- man/index.html
|
165
|
+
- man/man0/VERSION.html
|
166
|
+
- man/man0/README.html
|
167
|
+
- man/man1/tork-remote.1.html
|
168
|
+
- man/man1/tork-herald.1.html
|
169
|
+
- man/man1/tork-notify.1.html
|
170
|
+
- man/man1/tork.1.html
|
171
|
+
- man/man1/tork-driver.1.html
|
172
|
+
- man/man1/tork-engine.1.html
|
173
|
+
- man/man1/tork-master.1.html
|
174
|
+
- man/style.css
|
177
175
|
homepage: http://github.com/sunaku/tork
|
178
176
|
licenses: []
|
177
|
+
metadata: {}
|
179
178
|
post_install_message:
|
180
179
|
rdoc_options: []
|
181
180
|
require_paths:
|
182
181
|
- lib
|
183
182
|
required_ruby_version: !ruby/object:Gem::Requirement
|
184
|
-
none: false
|
185
183
|
requirements:
|
186
|
-
- -
|
184
|
+
- - '>='
|
187
185
|
- !ruby/object:Gem::Version
|
188
186
|
version: '0'
|
189
|
-
segments:
|
190
|
-
- 0
|
191
|
-
hash: -1274588236023689276
|
192
187
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
188
|
requirements:
|
195
|
-
- -
|
189
|
+
- - '>='
|
196
190
|
- !ruby/object:Gem::Version
|
197
191
|
version: '0'
|
198
|
-
segments:
|
199
|
-
- 0
|
200
|
-
hash: -1274588236023689276
|
201
192
|
requirements: []
|
202
193
|
rubyforge_project:
|
203
|
-
rubygems_version:
|
194
|
+
rubygems_version: 2.0.2
|
204
195
|
signing_key:
|
205
|
-
specification_version:
|
196
|
+
specification_version: 4
|
206
197
|
summary: test with fork
|
207
198
|
test_files: []
|