test_bench-bootstrap 6.1.1 → 7.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.
- checksums.yaml +4 -4
- data/executables/bench-bootstrap +7 -0
- data/lib/test_bench_bootstrap/controls.rb +1 -0
- data/lib/test_bench_bootstrap/test_bench_bootstrap.rb +7 -0
- data/lib/test_bench_bootstrap.rb +4 -0
- data/upstream-lib/test_bench_bootstrap/import_constants/controls/namespace.rb +84 -0
- data/upstream-lib/test_bench_bootstrap/import_constants/controls.rb +1 -0
- data/upstream-lib/test_bench_bootstrap/import_constants/import_constants.rb +46 -0
- data/upstream-lib/test_bench_bootstrap/import_constants/macro.rb +10 -0
- data/upstream-lib/test_bench_bootstrap/import_constants.rb +2 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/controls/telemetry_sink.rb +7 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/controls.rb +3 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/controls/path.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/controls/random.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/controls/run.rb +12 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/controls/standard_input.rb +31 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/controls.rb +8 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/defaults.rb +15 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/executable.rb +61 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/parse_arguments.rb +271 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable.rb +7 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/build.rb +41 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/comment_style.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/exception.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/fixture.rb +69 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/message.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/output.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/path.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/session.rb +21 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/status.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/text.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/title.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls.rb +14 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/evaluate.rb +37 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/fixture.rb +213 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture.rb +7 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/comment_style.rb +63 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/comment_style.rb +23 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/event.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/aborted.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/commented.rb +23 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/context_finished.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/context_started.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/detailed.rb +23 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/failed.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/file_executed.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/file_not_found.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/file_queued.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/skipped.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/test_finished.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/test_started.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/random.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/session.rb +19 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/status.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/style.rb +41 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/text.rb +31 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls.rb +26 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/detail_policy.rb +46 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/device/null.rb +21 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/device/substitute.rb +46 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/device.rb +75 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/get.rb +32 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/level.rb +53 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/output.rb +572 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/writer/style.rb +54 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/writer/substitute.rb +27 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/writer.rb +119 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output.rb +20 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/controls/seed.rb +25 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/controls/sequence.rb +70 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/controls.rb +2 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/defaults.rb +13 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/generator/substitute.rb +23 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/generator.rb +64 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/iterator.rb +54 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/random.rb +27 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random.rb +8 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/events.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/message.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/path.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/random.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/session.rb +16 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/status.rb +44 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/summary/file/info.rb +108 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/summary/file/totals.rb +38 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/summary/file.rb +44 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/summary/run.rb +53 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/summary.rb +45 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/telemetry.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/time.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls.rb +20 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/run.rb +146 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/select_files/substitute.rb +45 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/select_files.rb +70 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/substitute.rb +42 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/summary/substitute.rb +19 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/summary.rb +477 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run.rb +10 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/backtrace/location.rb +48 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/backtrace.rb +83 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/comment_disposition.rb +17 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/event.rb +35 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/aborted.rb +51 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/commented.rb +62 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/context_finished.rb +112 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/context_started.rb +51 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/detailed.rb +62 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/failed.rb +41 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/file_executed.rb +101 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/file_not_found.rb +41 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/file_queued.rb +41 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/skipped.rb +51 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/test_finished.rb +92 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/test_started.rb +51 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events.rb +35 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/exception/message.rb +23 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/exception/raise.rb +52 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/exception.rb +81 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/message.rb +43 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/metadata.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/path/apex_directory.rb +76 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/path/file/create.rb +113 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/path/file.rb +42 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/path.rb +87 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/random.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/result.rb +17 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/sequence.rb +13 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/status.rb +92 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/telemetry.rb +15 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/telemetry_sink.rb +37 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/text.rb +33 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/title.rb +41 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls.rb +43 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/defaults.rb +17 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/events.rb +24 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/exception/format_backtrace/substitute.rb +34 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/exception/format_backtrace.rb +114 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/isolate/substitute.rb +45 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/isolate.rb +159 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/result.rb +44 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/session.rb +236 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/status.rb +60 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/substitute/sink.rb +99 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/substitute.rb +154 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/trace.rb +53 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session.rb +22 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/event/metadata.rb +72 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/event.rb +156 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/event_data.rb +113 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/handler.rb +83 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/path/file.rb +39 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/process_id.rb +25 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/random.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/sink.rb +35 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/time.rb +104 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls.rb +16 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/event.rb +130 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/event_data/serialization.rb +85 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/event_data.rb +15 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/sink/file.rb +39 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/sink/handler/event_registry.rb +44 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/sink/handler.rb +128 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/sink.rb +13 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/substitute/sink.rb +71 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/substitute.rb +43 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/telemetry.rb +92 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry.rb +18 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/test_bench.rb +72 -0
- data/upstream-lib/test_bench_bootstrap/test_bench.rb +4 -0
- metadata +353 -16
- data/lib/test_bench/bootstrap.rb +0 -328
@@ -0,0 +1,19 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Output
|
4
|
+
module Controls
|
5
|
+
module Session
|
6
|
+
Events = TestBench::Session::Controls::Events
|
7
|
+
|
8
|
+
Event = TestBench::Session::Controls::Event
|
9
|
+
|
10
|
+
Status = TestBench::Session::Controls::Status
|
11
|
+
|
12
|
+
Random = TestBench::Session::Controls::Random
|
13
|
+
|
14
|
+
CommentDisposition = TestBench::Session::Controls::CommentDisposition
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Output
|
4
|
+
module Controls
|
5
|
+
module Style
|
6
|
+
def self.example
|
7
|
+
:bold
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.code
|
11
|
+
'1'
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.other_example
|
15
|
+
Other.example
|
16
|
+
end
|
17
|
+
|
18
|
+
module Other
|
19
|
+
def self.example
|
20
|
+
:italic
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.code
|
24
|
+
'3'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
module Code
|
29
|
+
def self.example
|
30
|
+
Style.code
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.other_example
|
34
|
+
Other.code
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Output
|
4
|
+
module Controls
|
5
|
+
module Text
|
6
|
+
def self.example
|
7
|
+
"Some text"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.other_example
|
11
|
+
"Some other text"
|
12
|
+
end
|
13
|
+
|
14
|
+
module NewlineTerminated
|
15
|
+
def self.example(lines: nil)
|
16
|
+
lines ||= 1
|
17
|
+
|
18
|
+
line_count = lines
|
19
|
+
|
20
|
+
lines = (1..line_count).map do |line_number|
|
21
|
+
"Line #{line_number}\n"
|
22
|
+
end
|
23
|
+
|
24
|
+
lines.join
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'test_bench_bootstrap/test_bench/session/controls'
|
2
|
+
|
3
|
+
require 'test_bench_bootstrap/test_bench/output/controls/session'
|
4
|
+
|
5
|
+
require 'test_bench_bootstrap/test_bench/output/controls/random'
|
6
|
+
require 'test_bench_bootstrap/test_bench/output/controls/status'
|
7
|
+
require 'test_bench_bootstrap/test_bench/output/controls/text'
|
8
|
+
|
9
|
+
require 'test_bench_bootstrap/test_bench/output/controls/style'
|
10
|
+
|
11
|
+
require 'test_bench_bootstrap/test_bench/output/controls/comment_style'
|
12
|
+
|
13
|
+
require 'test_bench_bootstrap/test_bench/output/controls/events/failed'
|
14
|
+
require 'test_bench_bootstrap/test_bench/output/controls/events/aborted'
|
15
|
+
require 'test_bench_bootstrap/test_bench/output/controls/events/skipped'
|
16
|
+
require 'test_bench_bootstrap/test_bench/output/controls/events/commented'
|
17
|
+
require 'test_bench_bootstrap/test_bench/output/controls/events/detailed'
|
18
|
+
require 'test_bench_bootstrap/test_bench/output/controls/events/test_started'
|
19
|
+
require 'test_bench_bootstrap/test_bench/output/controls/events/test_finished'
|
20
|
+
require 'test_bench_bootstrap/test_bench/output/controls/events/context_started'
|
21
|
+
require 'test_bench_bootstrap/test_bench/output/controls/events/context_finished'
|
22
|
+
require 'test_bench_bootstrap/test_bench/output/controls/events/file_queued'
|
23
|
+
require 'test_bench_bootstrap/test_bench/output/controls/events/file_executed'
|
24
|
+
require 'test_bench_bootstrap/test_bench/output/controls/events/file_not_found'
|
25
|
+
|
26
|
+
require 'test_bench_bootstrap/test_bench/output/controls/event'
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Output
|
4
|
+
module DetailPolicy
|
5
|
+
Error = Class.new(RuntimeError)
|
6
|
+
|
7
|
+
def self.failure
|
8
|
+
:failure
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.on
|
12
|
+
:on
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.off
|
16
|
+
:off
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.detail?(detail_policy, result=nil)
|
20
|
+
result ||= Session::Result.none
|
21
|
+
|
22
|
+
case detail_policy
|
23
|
+
when failure
|
24
|
+
[
|
25
|
+
Session::Result.failed,
|
26
|
+
Session::Result.aborted
|
27
|
+
].include?(result)
|
28
|
+
|
29
|
+
when on
|
30
|
+
true
|
31
|
+
|
32
|
+
when off
|
33
|
+
false
|
34
|
+
|
35
|
+
else
|
36
|
+
raise Error, "Incorrect detail policy: #{detail_policy.inspect}"
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.assure_policy(detail_policy)
|
41
|
+
detail?(detail_policy)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Output
|
4
|
+
class Device
|
5
|
+
class Null
|
6
|
+
def self.instance
|
7
|
+
@instance ||= new
|
8
|
+
end
|
9
|
+
|
10
|
+
def write(data)
|
11
|
+
data.bytesize
|
12
|
+
end
|
13
|
+
|
14
|
+
def tty?
|
15
|
+
false
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Output
|
4
|
+
class Device
|
5
|
+
module Substitute
|
6
|
+
def self.build
|
7
|
+
Device.new
|
8
|
+
end
|
9
|
+
|
10
|
+
class Device
|
11
|
+
def written_text
|
12
|
+
@written_text ||= String.new
|
13
|
+
end
|
14
|
+
attr_writer :written_text
|
15
|
+
|
16
|
+
attr_accessor :tty
|
17
|
+
|
18
|
+
def tty?
|
19
|
+
tty ? true : false
|
20
|
+
end
|
21
|
+
|
22
|
+
def set_tty
|
23
|
+
self.tty = true
|
24
|
+
end
|
25
|
+
|
26
|
+
def write(text)
|
27
|
+
bytes_written = text.bytesize
|
28
|
+
|
29
|
+
written_text << text
|
30
|
+
|
31
|
+
bytes_written
|
32
|
+
end
|
33
|
+
|
34
|
+
def written?(text=nil)
|
35
|
+
if text.nil?
|
36
|
+
!written_text.empty?
|
37
|
+
else
|
38
|
+
written_text == text
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Output
|
4
|
+
class Device
|
5
|
+
Error = Class.new(RuntimeError)
|
6
|
+
|
7
|
+
def raw_device
|
8
|
+
@raw_device ||= Substitute.build
|
9
|
+
end
|
10
|
+
attr_writer :raw_device
|
11
|
+
|
12
|
+
def self.build(target_device=nil)
|
13
|
+
target_device ||= Defaults.target_device
|
14
|
+
|
15
|
+
raw_device = raw_device(target_device)
|
16
|
+
|
17
|
+
instance = new
|
18
|
+
instance.raw_device = raw_device
|
19
|
+
instance
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.configure(receiver, device: nil, attr_name: nil)
|
23
|
+
attr_name ||= :device
|
24
|
+
|
25
|
+
if device.instance_of?(self)
|
26
|
+
instance = device
|
27
|
+
else
|
28
|
+
target_device = device
|
29
|
+
|
30
|
+
instance = build(target_device)
|
31
|
+
end
|
32
|
+
|
33
|
+
receiver.public_send(:"#{attr_name}=", instance)
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.raw_device(target_device)
|
37
|
+
case target_device
|
38
|
+
in :stdout
|
39
|
+
STDOUT
|
40
|
+
in :stderr
|
41
|
+
STDERR
|
42
|
+
in :null
|
43
|
+
Null.instance
|
44
|
+
in Symbol
|
45
|
+
raise Error, "Incorrect output device: #{target_device.inspect}"
|
46
|
+
else
|
47
|
+
target_device
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def write(text)
|
52
|
+
raw_device.write(text)
|
53
|
+
|
54
|
+
text.bytesize
|
55
|
+
end
|
56
|
+
|
57
|
+
def tty?
|
58
|
+
raw_device.tty?
|
59
|
+
end
|
60
|
+
|
61
|
+
module Defaults
|
62
|
+
def self.target_device
|
63
|
+
env_target_device = ENV.fetch('TEST_BENCH_OUTPUT_DEVICE') do
|
64
|
+
STDOUT.sync = true
|
65
|
+
|
66
|
+
'stdout'
|
67
|
+
end
|
68
|
+
|
69
|
+
env_target_device.to_sym
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Output
|
4
|
+
module Get
|
5
|
+
Error = Class.new(RuntimeError)
|
6
|
+
|
7
|
+
def self.call(substitute_session, styling: nil)
|
8
|
+
styling ||= false
|
9
|
+
|
10
|
+
if not substitute_session.instance_of?(Session::Substitute::Session)
|
11
|
+
raise Error, "Not a substitute session: #{substitute_session.inspect}"
|
12
|
+
end
|
13
|
+
|
14
|
+
output = Output.new
|
15
|
+
|
16
|
+
if styling
|
17
|
+
output.writer.set_styling
|
18
|
+
end
|
19
|
+
|
20
|
+
event_records = substitute_session.sink.records
|
21
|
+
event_records.each do |record|
|
22
|
+
event_data = record.event_data
|
23
|
+
|
24
|
+
output.receive(event_data)
|
25
|
+
end
|
26
|
+
|
27
|
+
output.writer.written_text
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Output
|
4
|
+
module Level
|
5
|
+
Error = Class.new(RuntimeError)
|
6
|
+
|
7
|
+
def self.abort
|
8
|
+
:abort
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.failure
|
12
|
+
:failure
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.not_passing
|
16
|
+
:not_passing
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.all
|
20
|
+
:all
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.output?(output_level, result=nil)
|
24
|
+
result ||= Session::Result.none
|
25
|
+
|
26
|
+
case output_level
|
27
|
+
when abort
|
28
|
+
result == Session::Result.aborted
|
29
|
+
|
30
|
+
when failure
|
31
|
+
[
|
32
|
+
Session::Result.aborted,
|
33
|
+
Session::Result.failed
|
34
|
+
].include?(result)
|
35
|
+
|
36
|
+
when not_passing
|
37
|
+
result != Session::Result.passed
|
38
|
+
|
39
|
+
when all
|
40
|
+
true
|
41
|
+
|
42
|
+
else
|
43
|
+
raise Error, "Incorrect output level: #{output_level.inspect}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.assure_output_level(output_level)
|
48
|
+
output?(output_level)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|