tork 19.3.0 → 19.3.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 +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: []
|