tapout 0.1.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/.ruby +44 -0
- data/APACHE2.txt +204 -0
- data/HISTORY.rdoc +11 -0
- data/NOTICE.rdoc +38 -0
- data/README.rdoc +73 -0
- data/TAP-YJ.rdoc +296 -0
- data/bin/tapout +3 -0
- data/lib/tapout.rb +88 -0
- data/lib/tapout/reporters.rb +6 -0
- data/lib/tapout/reporters/abstract.rb +266 -0
- data/lib/tapout/reporters/breakdown.rb +120 -0
- data/lib/tapout/reporters/dotprogress.rb +69 -0
- data/lib/tapout/reporters/progressbar.rb +89 -0
- data/lib/tapout/reporters/tap.rb +80 -0
- data/lib/tapout/reporters/verbose.rb +54 -0
- data/lib/tapout/tap_legacy_adapter.rb +168 -0
- data/lib/tapout/tap_legacy_parser.rb +25 -0
- data/lib/tapout/tapy_parser.rb +58 -0
- data/lib/tapout/version.rb +7 -0
- data/qed/applique/env.rb +5 -0
- data/qed/tap_adapter.rdoc +68 -0
- metadata +129 -0
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'tapout/version'
|
2
|
+
require 'tapout/tap_legacy_adapter'
|
3
|
+
require 'tapout/reporters'
|
4
|
+
|
5
|
+
module TapOut
|
6
|
+
|
7
|
+
# The TAPLegacy Parser takes a traditional TAP stream and routes
|
8
|
+
# it through a Tap Out report format.
|
9
|
+
class TAPLegacyParser
|
10
|
+
|
11
|
+
# options[:format] - the report format to use
|
12
|
+
def initialize(options={})
|
13
|
+
format = options[:format] || 'dotprogress'
|
14
|
+
@reporter = Reporters.factory(format).new
|
15
|
+
end
|
16
|
+
|
17
|
+
# input - any object that responds to #gets
|
18
|
+
def consume(input)
|
19
|
+
parser = TAPLegacyAdapter.new(input)
|
20
|
+
parser | @reporter
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'tapout/reporters'
|
2
|
+
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
module TapOut
|
6
|
+
|
7
|
+
# The TAP-Y Parser takes a TAP-Y stream and routes it through
|
8
|
+
# a Tap Out report format.
|
9
|
+
class TAPYParser
|
10
|
+
|
11
|
+
#
|
12
|
+
def initialize(options={})
|
13
|
+
format = options[:format] || 'dotprogress'
|
14
|
+
@reporter = Reporters.factory(format).new
|
15
|
+
@doc = ''
|
16
|
+
@done = false
|
17
|
+
end
|
18
|
+
|
19
|
+
#
|
20
|
+
def consume(input)
|
21
|
+
@doc = ''
|
22
|
+
@done = false
|
23
|
+
while line = input.gets
|
24
|
+
self << line
|
25
|
+
end
|
26
|
+
handle unless @done # in case `...` was left out
|
27
|
+
end
|
28
|
+
|
29
|
+
# TODO: write this as a YAML stream parser
|
30
|
+
def <<(line)
|
31
|
+
case line
|
32
|
+
when /^\-\-\-/
|
33
|
+
handle #@doc
|
34
|
+
@doc << line
|
35
|
+
when /^\.\.\./
|
36
|
+
handle #@doc
|
37
|
+
stop
|
38
|
+
else
|
39
|
+
@doc << line
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
#
|
44
|
+
def handle
|
45
|
+
return if @doc == ''
|
46
|
+
entry = YAML.load(@doc)
|
47
|
+
@reporter << entry
|
48
|
+
@doc = ''
|
49
|
+
end
|
50
|
+
|
51
|
+
#
|
52
|
+
def stop
|
53
|
+
@done = true
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
data/qed/applique/env.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
= TAP Parser
|
2
|
+
|
3
|
+
require 'tapout'
|
4
|
+
|
5
|
+
Given a legacy TAP stream:
|
6
|
+
|
7
|
+
1..3
|
8
|
+
ok 1 - Example A
|
9
|
+
not ok 2 - Example B
|
10
|
+
---
|
11
|
+
file: foo.rb
|
12
|
+
line: 45
|
13
|
+
description: this is that
|
14
|
+
found: this
|
15
|
+
wanted: that
|
16
|
+
raw_test: assert_equal('that', 'this')
|
17
|
+
extensions:
|
18
|
+
THAC0: 16
|
19
|
+
...
|
20
|
+
ok 3
|
21
|
+
|
22
|
+
The TAPAdapter can convert the stream into TAP-Y.
|
23
|
+
|
24
|
+
stream = StringIO.new(@tap)
|
25
|
+
|
26
|
+
adapter = TapOut::TAPLegacyAdapter.new(stream)
|
27
|
+
|
28
|
+
entries = adapter.to_a
|
29
|
+
|
30
|
+
Once converted, there should five entries --a header and footer, two
|
31
|
+
passing tests and one failing test.
|
32
|
+
|
33
|
+
entries.size.assert == 5
|
34
|
+
|
35
|
+
Or pipe the converted stream directly to another stream.
|
36
|
+
|
37
|
+
stream = StringIO.new(@tap)
|
38
|
+
|
39
|
+
adapter = TapOut::TAPLegacyAdapter.new(stream)
|
40
|
+
|
41
|
+
output = ""
|
42
|
+
|
43
|
+
tapy = adapter | output
|
44
|
+
|
45
|
+
Given a legacy TAP stream:
|
46
|
+
|
47
|
+
1..5
|
48
|
+
# test by equality
|
49
|
+
ok 1 - pass-thru 1
|
50
|
+
ok 2 - pass-thru 2
|
51
|
+
ok 3 - pass-thru 3
|
52
|
+
ok 4 - pass-thru 4
|
53
|
+
ok 5 - pass-thru 5
|
54
|
+
1..5
|
55
|
+
|
56
|
+
Let's see if this works.
|
57
|
+
|
58
|
+
stream = StringIO.new(@tap)
|
59
|
+
|
60
|
+
adapter = TapOut::TAPLegacyAdapter.new(stream)
|
61
|
+
|
62
|
+
entries = adapter.to_a
|
63
|
+
|
64
|
+
Once converted, there should eight entries --a header and footer, one note
|
65
|
+
and five passing tests.
|
66
|
+
|
67
|
+
entries.size.assert == 8
|
68
|
+
|
metadata
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tapout
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Thomas Sawyer
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-05-21 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: ansi
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
type: :runtime
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: redline
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
type: :development
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: qed
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id003
|
62
|
+
description: Tap Out is a TAP consumer that can take any TAP, TAP-Y or TAP-J stream and output it in a variety of useful formats.
|
63
|
+
email: transfire@gmail.com
|
64
|
+
executables:
|
65
|
+
- tapout
|
66
|
+
extensions: []
|
67
|
+
|
68
|
+
extra_rdoc_files:
|
69
|
+
- README.rdoc
|
70
|
+
files:
|
71
|
+
- .ruby
|
72
|
+
- bin/tapout
|
73
|
+
- lib/tapout/reporters/abstract.rb
|
74
|
+
- lib/tapout/reporters/breakdown.rb
|
75
|
+
- lib/tapout/reporters/dotprogress.rb
|
76
|
+
- lib/tapout/reporters/progressbar.rb
|
77
|
+
- lib/tapout/reporters/tap.rb
|
78
|
+
- lib/tapout/reporters/verbose.rb
|
79
|
+
- lib/tapout/reporters.rb
|
80
|
+
- lib/tapout/tap_legacy_adapter.rb
|
81
|
+
- lib/tapout/tap_legacy_parser.rb
|
82
|
+
- lib/tapout/tapy_parser.rb
|
83
|
+
- lib/tapout/version.rb
|
84
|
+
- lib/tapout.rb
|
85
|
+
- qed/applique/env.rb
|
86
|
+
- qed/tap_adapter.rdoc
|
87
|
+
- HISTORY.rdoc
|
88
|
+
- APACHE2.txt
|
89
|
+
- README.rdoc
|
90
|
+
- TAP-YJ.rdoc
|
91
|
+
- NOTICE.rdoc
|
92
|
+
homepage: http://rubyworks.github.com/tapout
|
93
|
+
licenses:
|
94
|
+
- Apache 2.0
|
95
|
+
post_install_message:
|
96
|
+
rdoc_options:
|
97
|
+
- --title
|
98
|
+
- Tap Out API
|
99
|
+
- --main
|
100
|
+
- README.rdoc
|
101
|
+
require_paths:
|
102
|
+
- lib
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
+
none: false
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
hash: 3
|
109
|
+
segments:
|
110
|
+
- 0
|
111
|
+
version: "0"
|
112
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
hash: 3
|
118
|
+
segments:
|
119
|
+
- 0
|
120
|
+
version: "0"
|
121
|
+
requirements: []
|
122
|
+
|
123
|
+
rubyforge_project: tapout
|
124
|
+
rubygems_version: 1.8.2
|
125
|
+
signing_key:
|
126
|
+
specification_version: 3
|
127
|
+
summary: Progressive TAP Harness
|
128
|
+
test_files: []
|
129
|
+
|