tork 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/HISTORY.markdown +962 -0
- data/LICENSE +21 -0
- data/README.markdown +305 -0
- data/Rakefile +2 -0
- data/bin/tork +105 -0
- data/bin/tork-driver +86 -0
- data/bin/tork-herald +47 -0
- data/bin/tork-master +87 -0
- data/lib/tork/client.rb +34 -0
- data/lib/tork/config.rb +83 -0
- data/lib/tork/config/parallel_tests.rb +7 -0
- data/lib/tork/config/rails.rb +43 -0
- data/lib/tork/driver.rb +136 -0
- data/lib/tork/master.rb +99 -0
- data/lib/tork/server.rb +38 -0
- data/lib/tork/version.rb +3 -0
- data/man/man1/tork-driver.1 +70 -0
- data/man/man1/tork-herald.1 +22 -0
- data/man/man1/tork-master.1 +61 -0
- data/man/man1/tork.1 +27 -0
- data/tork.gemspec +23 -0
- metadata +138 -0
data/lib/tork/server.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module Tork
|
4
|
+
module Server
|
5
|
+
|
6
|
+
def quit
|
7
|
+
throw :tork_server_quit
|
8
|
+
end
|
9
|
+
|
10
|
+
def loop
|
11
|
+
(@client = STDOUT.dup).sync = true
|
12
|
+
STDOUT.reopen(STDERR).sync = true
|
13
|
+
|
14
|
+
catch :tork_server_quit do
|
15
|
+
while line = STDIN.gets
|
16
|
+
warn "#{caller[2]} RECV #{line.chomp}" if $DEBUG
|
17
|
+
|
18
|
+
command = JSON.load(line)
|
19
|
+
method = command.first
|
20
|
+
|
21
|
+
if respond_to? method and method != __method__ # prevent loops
|
22
|
+
@command, @command_line = command, line
|
23
|
+
__send__(*command)
|
24
|
+
else
|
25
|
+
warn "#{self}: bad command: #{method}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
rescue Interrupt
|
30
|
+
# forced quit
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.extended server
|
34
|
+
trap(:SIGTERM){ server.quit }
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
data/lib/tork/version.rb
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
.TH TORK\-DRIVER 1 2012\-01\-23 15.0.0
|
2
|
+
.SH NAME
|
3
|
+
.PP
|
4
|
+
tork\-driver \- drives
|
5
|
+
.BR tork\-master (1)
|
6
|
+
and does bookkeeping
|
7
|
+
.SH SYNOPSIS
|
8
|
+
.PP
|
9
|
+
\fB\fCtork-driver\fR [\fIOPTION\fP]...
|
10
|
+
.SH DESCRIPTION
|
11
|
+
.PP
|
12
|
+
This program reads the following single\-line commands (JSON arrays) from its
|
13
|
+
standard input stream and performs the respective actions as described below.
|
14
|
+
It also funnels the standard output stream of
|
15
|
+
.BR tork\-master (1)
|
16
|
+
into its own.
|
17
|
+
.TP
|
18
|
+
\fB\fC["run_all_test_files"]\fR
|
19
|
+
Runs all test files found within and beneath the current working directory.
|
20
|
+
.TP
|
21
|
+
\fB\fC["stop_running_test_files"]\fR
|
22
|
+
Stops any test files that are currently running.
|
23
|
+
.TP
|
24
|
+
\fB\fC["rerun_passed_test_files"]\fR
|
25
|
+
Runs all test files that have passed during their most recent run.
|
26
|
+
.TP
|
27
|
+
\fB\fC["reabsorb_overhead_files"]\fR
|
28
|
+
Stops any test files that are currently running, reabsorbs the test
|
29
|
+
execution overhead, and resumes running those interrupted test files.
|
30
|
+
.TP
|
31
|
+
\fB\fC["quit"]\fR
|
32
|
+
Stops all tests that are currently running and exits.
|
33
|
+
.PP
|
34
|
+
When
|
35
|
+
.BR tork\-herald (1)
|
36
|
+
reports that a file belonging to the test execution
|
37
|
+
overhead has been modified, this program replaces
|
38
|
+
.BR tork\-master (1)
|
39
|
+
with a new
|
40
|
+
instance, which then absorbs the modified test execution overhead into itself.
|
41
|
+
.PP
|
42
|
+
This program emits the following single\-line status messages (JSON arrays) on
|
43
|
+
its standard output stream to provide notifications about its activity:
|
44
|
+
.TP
|
45
|
+
\fB\fC["over",\fR \fIoverhead_file\fP\fB\fC]\fR
|
46
|
+
The test execution overhead is currently being reabsorbed, by replacing
|
47
|
+
.BR tork\-master (1)
|
48
|
+
with a new instance, because \fIoverhead_file\fP has changed.
|
49
|
+
.SH OPTIONS
|
50
|
+
.TP
|
51
|
+
\fB\fC-h\fR, \fB\fC--help\fR
|
52
|
+
Display this help manual using
|
53
|
+
.BR man (1).
|
54
|
+
.SH FILES
|
55
|
+
.TP
|
56
|
+
\fI.tork.rb\fP
|
57
|
+
Optional Ruby script for configuring
|
58
|
+
.BR tork (1).
|
59
|
+
.SH ENVIRONMENT
|
60
|
+
.TP
|
61
|
+
\fB\fCTORK_CONFIGS\fR
|
62
|
+
A single\-line JSON array containing paths to actual files or names of
|
63
|
+
helper libraries in the tork/config/ namespace of Ruby's load path.
|
64
|
+
These configuration files are loaded just before \fI.tork.rb\fP is loaded.
|
65
|
+
.SH SEE ALSO
|
66
|
+
.PP
|
67
|
+
.BR tork (1),
|
68
|
+
.BR tork\-driver (1),
|
69
|
+
.BR tork\-master (1),
|
70
|
+
.BR tork\-herald (1)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
.TH TORK\-HERALD 1 2012\-01\-23 15.0.0
|
2
|
+
.SH NAME
|
3
|
+
.PP
|
4
|
+
tork\-herald \- reports modified files
|
5
|
+
.SH SYNOPSIS
|
6
|
+
.PP
|
7
|
+
\fB\fCtork-herald\fR [\fIOPTION\fP]...
|
8
|
+
.SH DESCRIPTION
|
9
|
+
.PP
|
10
|
+
This program monitors the current working directory and prints relative paths
|
11
|
+
of modified files, one per line, to the standard output stream.
|
12
|
+
.SH OPTIONS
|
13
|
+
.TP
|
14
|
+
\fB\fC-h\fR, \fB\fC--help\fR
|
15
|
+
Display this help manual using
|
16
|
+
.BR man (1).
|
17
|
+
.SH SEE ALSO
|
18
|
+
.PP
|
19
|
+
.BR tork (1),
|
20
|
+
.BR tork\-driver (1),
|
21
|
+
.BR tork\-master (1),
|
22
|
+
.BR tork\-herald (1)
|
@@ -0,0 +1,61 @@
|
|
1
|
+
.TH TORK\-MASTER 1 2012\-01\-23 15.0.0
|
2
|
+
.SH NAME
|
3
|
+
.PP
|
4
|
+
tork\-master \- absorbs overhead and runs tests
|
5
|
+
.SH SYNOPSIS
|
6
|
+
.PP
|
7
|
+
\fB\fCtork-master\fR [\fIOPTION\fP]...
|
8
|
+
.SH DESCRIPTION
|
9
|
+
.PP
|
10
|
+
This program reads the following single\-line commands (JSON arrays) from its
|
11
|
+
standard input stream and performs the respective actions as described below.
|
12
|
+
.TP
|
13
|
+
\fB\fC["load",\fR \fIpaths\fP\fB\fC,\fR \fIfiles\fP\fB\fC]\fR
|
14
|
+
Adds the given array of \fIpaths\fP to Ruby's $LOAD_PATH, loads the given array
|
15
|
+
of \fIfiles\fP after removing their ".rb" file extension if present, and prints
|
16
|
+
the given command line to the standard output stream.
|
17
|
+
.TP
|
18
|
+
\fB\fC["test",\fR \fItest_file\fP\fB\fC,\fR \fItest_names\fP\fB\fC]\fR
|
19
|
+
Runs the given \fItest_file\fP in a forked child process while instructing your
|
20
|
+
chosen unit testing framework (loaded by your test execution overhead) to
|
21
|
+
only run those tests that are named in the given array of \fItest_names\fP.
|
22
|
+
.IP
|
23
|
+
Prints the given command line to the standard output stream immediately
|
24
|
+
after forking the child process.
|
25
|
+
.IP
|
26
|
+
Prints the given command line, modified with \fB\fC"pass"\fR (if the test passed)
|
27
|
+
or \fB\fC"fail"\fR (if the test failed) in place of \fB\fC"test"\fR, to the standard
|
28
|
+
output stream after the forked child process finishes.
|
29
|
+
.IP
|
30
|
+
The standard output and error streams of the forked child process are
|
31
|
+
redirected to a file whose path and name are the same as that of the test
|
32
|
+
file being run by the forked child process but with ".log" appended.
|
33
|
+
.TP
|
34
|
+
\fB\fC["stop"]\fR
|
35
|
+
Stops all tests that are currently running and prints the given command line
|
36
|
+
to the standard output stream.
|
37
|
+
.TP
|
38
|
+
\fB\fC["quit"]\fR
|
39
|
+
Stops all tests that are currently running and exits.
|
40
|
+
.SH OPTIONS
|
41
|
+
.TP
|
42
|
+
\fB\fC-h\fR, \fB\fC--help\fR
|
43
|
+
Display this help manual using
|
44
|
+
.BR man (1).
|
45
|
+
.SH FILES
|
46
|
+
.TP
|
47
|
+
\fI.tork.rb\fP
|
48
|
+
Optional Ruby script for configuring
|
49
|
+
.BR tork (1).
|
50
|
+
.SH ENVIRONMENT
|
51
|
+
.TP
|
52
|
+
\fB\fCTORK_CONFIGS\fR
|
53
|
+
A single\-line JSON array containing paths to actual files or names of
|
54
|
+
helper libraries in the tork/config/ namespace of Ruby's load path.
|
55
|
+
These configuration files are loaded just before \fI.tork.rb\fP is loaded.
|
56
|
+
.SH SEE ALSO
|
57
|
+
.PP
|
58
|
+
.BR tork (1),
|
59
|
+
.BR tork\-driver (1),
|
60
|
+
.BR tork\-master (1),
|
61
|
+
.BR tork\-herald (1)
|
data/man/man1/tork.1
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
.TH TORK 1 2012\-01\-23 15.0.0
|
2
|
+
.SH NAME
|
3
|
+
.PP
|
4
|
+
tork \- Continuous testing tool for Ruby
|
5
|
+
.SH SYNOPSIS
|
6
|
+
.PP
|
7
|
+
\fB\fCtork\fR [\fIOPTION\fP]... [\fICONFIG\fP]...
|
8
|
+
.SH DESCRIPTION
|
9
|
+
.PP
|
10
|
+
This program is a simple command\-line user interface for
|
11
|
+
.BR tork\-driver (1).
|
12
|
+
It
|
13
|
+
loads the given \fICONFIG\fP files (which are either paths to actual files or
|
14
|
+
names of helper libraries in the tork/config/ namespace of Ruby's load path)
|
15
|
+
and then waits for you to supply interactive commands on its stdin. You may
|
16
|
+
press the ENTER key (supplying no command) to see a menu of accepted commands.
|
17
|
+
.SH OPTIONS
|
18
|
+
.TP
|
19
|
+
\fB\fC-h\fR, \fB\fC--help\fR
|
20
|
+
Display this help manual using
|
21
|
+
.BR man (1).
|
22
|
+
.SH SEE ALSO
|
23
|
+
.PP
|
24
|
+
.BR tork (1),
|
25
|
+
.BR tork\-driver (1),
|
26
|
+
.BR tork\-master (1),
|
27
|
+
.BR tork\-herald (1)
|
data/tork.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "tork/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "tork"
|
7
|
+
s.version = Tork::VERSION
|
8
|
+
s.authors,
|
9
|
+
s.email = File.read('LICENSE').scan(/Copyright \d+ (.+) <(.+?)>/).transpose
|
10
|
+
s.homepage = "http://github.com/sunaku/tork"
|
11
|
+
s.summary = "Continuous testing tool for Ruby"
|
12
|
+
s.description = nil
|
13
|
+
|
14
|
+
s.files = `git ls-files`.split("\n") + Dir["man/**/*"]
|
15
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
16
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
|
19
|
+
s.add_runtime_dependency 'binman', '~> 3'
|
20
|
+
s.add_runtime_dependency 'json', '>= 1.6.1', '< 2'
|
21
|
+
s.add_runtime_dependency 'guard', '>= 0.9.0', '< 1'
|
22
|
+
s.add_runtime_dependency 'diff-lcs', '>= 1.1.2', '< 2'
|
23
|
+
end
|
metadata
ADDED
@@ -0,0 +1,138 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tork
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 15.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Suraj N. Kurapati
|
9
|
+
- Brian D. Burns
|
10
|
+
- Daniel Pittman
|
11
|
+
- Jacob Helwig
|
12
|
+
- Corné Verbruggen
|
13
|
+
- Jose Pablo Barrantes
|
14
|
+
- Spencer Steffen
|
15
|
+
autorequire:
|
16
|
+
bindir: bin
|
17
|
+
cert_chain: []
|
18
|
+
date: 2012-01-23 00:00:00.000000000 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: binman
|
22
|
+
requirement: &16374880 !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '3'
|
28
|
+
type: :runtime
|
29
|
+
prerelease: false
|
30
|
+
version_requirements: *16374880
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: json
|
33
|
+
requirement: &11501340 !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: 1.6.1
|
39
|
+
- - <
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '2'
|
42
|
+
type: :runtime
|
43
|
+
prerelease: false
|
44
|
+
version_requirements: *11501340
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: guard
|
47
|
+
requirement: &11499600 !ruby/object:Gem::Requirement
|
48
|
+
none: false
|
49
|
+
requirements:
|
50
|
+
- - ! '>='
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 0.9.0
|
53
|
+
- - <
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '1'
|
56
|
+
type: :runtime
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: *11499600
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: diff-lcs
|
61
|
+
requirement: &11496820 !ruby/object:Gem::Requirement
|
62
|
+
none: false
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 1.1.2
|
67
|
+
- - <
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '2'
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: *11496820
|
73
|
+
description: ''
|
74
|
+
email:
|
75
|
+
- sunaku@gmail.com
|
76
|
+
- burns180@gmail.com
|
77
|
+
- daniel@rimspace.net
|
78
|
+
- jacob@technosorcery.net
|
79
|
+
- corne@g-majeur.nl
|
80
|
+
- xjpablobrx@gmail.com
|
81
|
+
- spencer@citrusme.com
|
82
|
+
executables:
|
83
|
+
- tork
|
84
|
+
- tork-driver
|
85
|
+
- tork-herald
|
86
|
+
- tork-master
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- .gitignore
|
91
|
+
- Gemfile
|
92
|
+
- HISTORY.markdown
|
93
|
+
- LICENSE
|
94
|
+
- README.markdown
|
95
|
+
- Rakefile
|
96
|
+
- bin/tork
|
97
|
+
- bin/tork-driver
|
98
|
+
- bin/tork-herald
|
99
|
+
- bin/tork-master
|
100
|
+
- lib/tork/client.rb
|
101
|
+
- lib/tork/config.rb
|
102
|
+
- lib/tork/config/parallel_tests.rb
|
103
|
+
- lib/tork/config/rails.rb
|
104
|
+
- lib/tork/driver.rb
|
105
|
+
- lib/tork/master.rb
|
106
|
+
- lib/tork/server.rb
|
107
|
+
- lib/tork/version.rb
|
108
|
+
- tork.gemspec
|
109
|
+
- man/man1/tork-herald.1
|
110
|
+
- man/man1/tork-master.1
|
111
|
+
- man/man1/tork-driver.1
|
112
|
+
- man/man1/tork.1
|
113
|
+
homepage: http://github.com/sunaku/tork
|
114
|
+
licenses: []
|
115
|
+
post_install_message:
|
116
|
+
rdoc_options: []
|
117
|
+
require_paths:
|
118
|
+
- lib
|
119
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
120
|
+
none: false
|
121
|
+
requirements:
|
122
|
+
- - ! '>='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
126
|
+
none: false
|
127
|
+
requirements:
|
128
|
+
- - ! '>='
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '0'
|
131
|
+
requirements: []
|
132
|
+
rubyforge_project:
|
133
|
+
rubygems_version: 1.8.11
|
134
|
+
signing_key:
|
135
|
+
specification_version: 3
|
136
|
+
summary: Continuous testing tool for Ruby
|
137
|
+
test_files: []
|
138
|
+
has_rdoc:
|