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,119 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Output
|
4
|
+
class Writer
|
5
|
+
def device
|
6
|
+
@device ||= Device::Substitute.build
|
7
|
+
end
|
8
|
+
attr_writer :device
|
9
|
+
|
10
|
+
attr_accessor :styling
|
11
|
+
alias :styling? :styling
|
12
|
+
|
13
|
+
def indentation_depth
|
14
|
+
@indentation_depth ||= 0
|
15
|
+
end
|
16
|
+
attr_writer :indentation_depth
|
17
|
+
|
18
|
+
def self.build(styling: nil, device: nil)
|
19
|
+
instance = new
|
20
|
+
|
21
|
+
Device.configure(instance, device:)
|
22
|
+
|
23
|
+
device = instance.device
|
24
|
+
|
25
|
+
styling = styling(styling, device)
|
26
|
+
instance.styling = styling
|
27
|
+
|
28
|
+
instance
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.configure(receiver, styling: nil, device: nil, attr_name: nil)
|
32
|
+
attr_name ||= :writer
|
33
|
+
|
34
|
+
instance = build(styling:, device:)
|
35
|
+
receiver.public_send(:"#{attr_name}=", instance)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.styling(styling_or_styling_policy, device)
|
39
|
+
case styling_or_styling_policy
|
40
|
+
in true | false => styling
|
41
|
+
return styling
|
42
|
+
in :detect | :on | :off => styling_policy
|
43
|
+
in nil
|
44
|
+
styling_policy = Defaults.styling_policy
|
45
|
+
end
|
46
|
+
|
47
|
+
case styling_policy
|
48
|
+
in :detect
|
49
|
+
device.tty?
|
50
|
+
in :on
|
51
|
+
true
|
52
|
+
in :off
|
53
|
+
false
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def indent
|
58
|
+
indentation_width = 2 * indentation_depth
|
59
|
+
|
60
|
+
print(' ' * indentation_width)
|
61
|
+
end
|
62
|
+
|
63
|
+
def puts(text=nil)
|
64
|
+
if not text.nil?
|
65
|
+
print(text.chomp)
|
66
|
+
end
|
67
|
+
|
68
|
+
style(:reset)
|
69
|
+
|
70
|
+
print("\n")
|
71
|
+
end
|
72
|
+
|
73
|
+
def style(style, *additional_styles)
|
74
|
+
styles = [style, *additional_styles]
|
75
|
+
|
76
|
+
control_codes = styles.map do |style|
|
77
|
+
Style.control_code(style)
|
78
|
+
end
|
79
|
+
|
80
|
+
if styling?
|
81
|
+
control_sequence = "\e[#{control_codes.join(';')}m"
|
82
|
+
|
83
|
+
print(control_sequence)
|
84
|
+
end
|
85
|
+
|
86
|
+
self
|
87
|
+
end
|
88
|
+
|
89
|
+
def print(text)
|
90
|
+
write(text)
|
91
|
+
|
92
|
+
self
|
93
|
+
end
|
94
|
+
|
95
|
+
def write(text)
|
96
|
+
device.write(text)
|
97
|
+
end
|
98
|
+
|
99
|
+
def increase_indentation
|
100
|
+
self.indentation_depth += 1
|
101
|
+
end
|
102
|
+
|
103
|
+
def decrease_indentation
|
104
|
+
self.indentation_depth -= 1
|
105
|
+
end
|
106
|
+
|
107
|
+
module Defaults
|
108
|
+
def self.styling_policy
|
109
|
+
env_styling_policy = ENV.fetch('TEST_BENCH_OUTPUT_STYLING', 'detect')
|
110
|
+
|
111
|
+
styling_policy = env_styling_policy.to_sym
|
112
|
+
|
113
|
+
styling_policy
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'test_bench_bootstrap/import_constants'
|
2
|
+
|
3
|
+
require 'test_bench_bootstrap/test_bench/session'
|
4
|
+
|
5
|
+
require 'test_bench_bootstrap/test_bench/output/device/null'
|
6
|
+
require 'test_bench_bootstrap/test_bench/output/device/substitute'
|
7
|
+
require 'test_bench_bootstrap/test_bench/output/device'
|
8
|
+
|
9
|
+
require 'test_bench_bootstrap/test_bench/output/writer'
|
10
|
+
require 'test_bench_bootstrap/test_bench/output/writer/style'
|
11
|
+
require 'test_bench_bootstrap/test_bench/output/writer/substitute'
|
12
|
+
|
13
|
+
require 'test_bench_bootstrap/test_bench/output/comment_style'
|
14
|
+
require 'test_bench_bootstrap/test_bench/output/detail_policy'
|
15
|
+
|
16
|
+
require 'test_bench_bootstrap/test_bench/output/level'
|
17
|
+
|
18
|
+
require 'test_bench_bootstrap/test_bench/output/output'
|
19
|
+
|
20
|
+
require 'test_bench_bootstrap/test_bench/output/get'
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
module Random
|
4
|
+
module Controls
|
5
|
+
module Seed
|
6
|
+
def self.example
|
7
|
+
'1111111111111111'
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.other_example
|
11
|
+
'2222222222222222'
|
12
|
+
end
|
13
|
+
|
14
|
+
module Value
|
15
|
+
def self.example(seed=nil)
|
16
|
+
seed ||= Seed.example
|
17
|
+
|
18
|
+
seed.to_i(36)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
module Random
|
4
|
+
module Controls
|
5
|
+
module Sequence
|
6
|
+
def self.example(count=nil, random_seed: nil)
|
7
|
+
count ||= self.count
|
8
|
+
random_seed ||= self.random_seed
|
9
|
+
|
10
|
+
random = ::Random.new(random_seed)
|
11
|
+
|
12
|
+
count.times.map do
|
13
|
+
random.bytes(8)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.count
|
18
|
+
3
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.random_seed
|
22
|
+
Seed::Value.example
|
23
|
+
end
|
24
|
+
|
25
|
+
module Integer
|
26
|
+
def self.example(count=nil, random_seed: nil)
|
27
|
+
sequence = Sequence.example(count, random_seed:)
|
28
|
+
|
29
|
+
sequence.map do |bytes|
|
30
|
+
bytes.unpack1('Q>')
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
module Decimal
|
36
|
+
def self.example(count=nil, random_seed: nil)
|
37
|
+
sequence = Sequence.example(count, random_seed:)
|
38
|
+
|
39
|
+
sequence.map do |bytes|
|
40
|
+
bytes.unpack1('D')
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
module String
|
46
|
+
def self.example(count=nil, random_seed: nil)
|
47
|
+
integer_sequence = Sequence::Integer.example(count, random_seed:)
|
48
|
+
|
49
|
+
integer_sequence.map do |integer|
|
50
|
+
integer.to_s(36)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
module Boolean
|
56
|
+
def self.example(count=nil, random_seed: nil)
|
57
|
+
count ||= 10
|
58
|
+
|
59
|
+
integer_sequence = Sequence::Integer.example(count, random_seed:)
|
60
|
+
|
61
|
+
integer_sequence.map do |integer|
|
62
|
+
integer % 2 == 1
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
module Random
|
4
|
+
class Generator
|
5
|
+
module Substitute
|
6
|
+
def self.build
|
7
|
+
Generator.build
|
8
|
+
end
|
9
|
+
|
10
|
+
class Generator < Generator
|
11
|
+
def self.build
|
12
|
+
new(seed)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.seed
|
16
|
+
'0'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
module Random
|
4
|
+
class Generator
|
5
|
+
def iterator
|
6
|
+
@iterator ||= Iterator.build(seed)
|
7
|
+
end
|
8
|
+
attr_writer :iterator
|
9
|
+
|
10
|
+
attr_accessor :seed
|
11
|
+
alias :set_seed :seed=
|
12
|
+
|
13
|
+
def initialize(seed)
|
14
|
+
@seed = seed
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.build(seed=nil)
|
18
|
+
seed ||= Defaults.seed
|
19
|
+
|
20
|
+
new(seed)
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.instance
|
24
|
+
@instance ||= build
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.configure(receiver, attr_name: nil)
|
28
|
+
attr_name ||= :random_generator
|
29
|
+
|
30
|
+
instance = self.instance
|
31
|
+
receiver.public_send(:"#{attr_name}=", instance)
|
32
|
+
end
|
33
|
+
|
34
|
+
def string
|
35
|
+
self.integer.to_s(36)
|
36
|
+
end
|
37
|
+
|
38
|
+
def boolean
|
39
|
+
self.integer % 2 == 1
|
40
|
+
end
|
41
|
+
|
42
|
+
def integer
|
43
|
+
iterator.next.unpack1('Q>')
|
44
|
+
end
|
45
|
+
|
46
|
+
def decimal
|
47
|
+
iterator.next.unpack1('D')
|
48
|
+
end
|
49
|
+
|
50
|
+
def reset
|
51
|
+
self.iterator = Iterator.build(seed)
|
52
|
+
end
|
53
|
+
|
54
|
+
def reset?
|
55
|
+
if iterator.iterated?
|
56
|
+
false
|
57
|
+
else
|
58
|
+
true
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
module Random
|
4
|
+
class Iterator
|
5
|
+
attr_accessor :seed
|
6
|
+
|
7
|
+
def iterations
|
8
|
+
@iterations ||= 0
|
9
|
+
end
|
10
|
+
attr_writer :iterations
|
11
|
+
|
12
|
+
attr_reader :random
|
13
|
+
|
14
|
+
def initialize(random)
|
15
|
+
@random = random
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.build(seed)
|
19
|
+
random = self.random(seed)
|
20
|
+
|
21
|
+
instance = new(random)
|
22
|
+
instance.seed = seed
|
23
|
+
instance
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.random(seed)
|
27
|
+
random_seed = seed.to_i(36)
|
28
|
+
|
29
|
+
::Random.new(random_seed)
|
30
|
+
end
|
31
|
+
|
32
|
+
def next
|
33
|
+
self.iterations += 1
|
34
|
+
|
35
|
+
random.bytes(8)
|
36
|
+
end
|
37
|
+
|
38
|
+
def seed?(seed)
|
39
|
+
control_random = ::Random.new(random.seed)
|
40
|
+
compare_random = Iterator.random(seed)
|
41
|
+
|
42
|
+
control_value = control_random.rand
|
43
|
+
compare_value = compare_random.rand
|
44
|
+
|
45
|
+
control_value == compare_value
|
46
|
+
end
|
47
|
+
|
48
|
+
def iterated?
|
49
|
+
iterations > 0
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
module Random
|
4
|
+
extend self
|
5
|
+
|
6
|
+
def reset
|
7
|
+
Generator.instance.reset
|
8
|
+
end
|
9
|
+
|
10
|
+
def string
|
11
|
+
Generator.instance.string
|
12
|
+
end
|
13
|
+
|
14
|
+
def boolean
|
15
|
+
Generator.instance.boolean
|
16
|
+
end
|
17
|
+
|
18
|
+
def integer
|
19
|
+
Generator.instance.integer
|
20
|
+
end
|
21
|
+
|
22
|
+
def decimal
|
23
|
+
Generator.instance.decimal
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'test_bench_bootstrap/test_bench/random/defaults'
|
2
|
+
|
3
|
+
require 'test_bench_bootstrap/test_bench/random/iterator'
|
4
|
+
|
5
|
+
require 'test_bench_bootstrap/test_bench/random/generator'
|
6
|
+
require 'test_bench_bootstrap/test_bench/random/generator/substitute'
|
7
|
+
|
8
|
+
require 'test_bench_bootstrap/test_bench/random/random'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Session
|
6
|
+
Path = TestBench::Session::Controls::Path
|
7
|
+
Events = TestBench::Session::Controls::Events
|
8
|
+
Message = TestBench::Session::Controls::Message
|
9
|
+
Status = TestBench::Session::Controls::Status
|
10
|
+
BacktraceLocation = TestBench::Session::Controls::Backtrace::Location
|
11
|
+
Random = TestBench::Session::Controls::Random
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Status
|
6
|
+
def self.example(tests: nil, failures: nil, errors: nil, skipped: nil)
|
7
|
+
tests ||= self.tests
|
8
|
+
failures ||= self.failures
|
9
|
+
errors ||= self.errors
|
10
|
+
skipped ||= self.skipped
|
11
|
+
|
12
|
+
test_sequence = tests
|
13
|
+
failure_sequence = failures
|
14
|
+
error_sequence = errors
|
15
|
+
skip_sequence = skipped
|
16
|
+
|
17
|
+
TestBench::Session::Status.new(
|
18
|
+
test_sequence,
|
19
|
+
failure_sequence,
|
20
|
+
error_sequence,
|
21
|
+
skip_sequence
|
22
|
+
)
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.tests
|
26
|
+
1_111
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.failures
|
30
|
+
111
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.errors
|
34
|
+
0
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.skipped
|
38
|
+
11
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Summary
|
6
|
+
module File
|
7
|
+
module Info
|
8
|
+
def self.example(path: nil, tests: nil, failures: nil, skipped: nil, aborted_events: nil)
|
9
|
+
path ||= self.path
|
10
|
+
tests ||= self.tests
|
11
|
+
failures ||= self.failures
|
12
|
+
skipped ||= self.skipped
|
13
|
+
aborted_events ||= self.aborted_events
|
14
|
+
|
15
|
+
session_status = Status.example(
|
16
|
+
tests:,
|
17
|
+
failures:,
|
18
|
+
skipped:,
|
19
|
+
errors: aborted_events.count
|
20
|
+
)
|
21
|
+
|
22
|
+
TestBench::Run::Summary::FileInfo.new(path, session_status, aborted_events)
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.path
|
26
|
+
Path::File.example
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.tests
|
30
|
+
0
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.failures
|
34
|
+
11
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.skipped
|
38
|
+
12
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.aborted_events
|
42
|
+
[
|
43
|
+
Session::Events::Aborted.example,
|
44
|
+
Session::Events::Aborted.other_example
|
45
|
+
]
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.other_example
|
49
|
+
Other.example
|
50
|
+
end
|
51
|
+
|
52
|
+
module Other
|
53
|
+
def self.example(tests: nil, failures: nil, skipped: nil, aborted_events: nil)
|
54
|
+
tests ||= self.tests
|
55
|
+
failures ||= self.failures
|
56
|
+
skipped ||= self.skipped
|
57
|
+
aborted_events ||= self.aborted_events
|
58
|
+
|
59
|
+
Info.example(path:, tests:, failures:, skipped:, aborted_events:)
|
60
|
+
end
|
61
|
+
|
62
|
+
def self.path
|
63
|
+
Path::File.other_example
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.tests
|
67
|
+
1
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.failures
|
71
|
+
1
|
72
|
+
end
|
73
|
+
|
74
|
+
def self.skipped
|
75
|
+
0
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.aborted_events
|
79
|
+
[]
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
module NotFound
|
84
|
+
def self.example
|
85
|
+
TestBench::Run::Summary::FileInfo.not_found(path)
|
86
|
+
end
|
87
|
+
|
88
|
+
def self.path
|
89
|
+
"/some-not-found-file.rb"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
module Set
|
94
|
+
def self.call(summary)
|
95
|
+
file_info = File::Info.example
|
96
|
+
other_file_info = File::Info.other_example
|
97
|
+
|
98
|
+
summary.add_file(file_info)
|
99
|
+
summary.add_file(other_file_info)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Summary
|
6
|
+
module File
|
7
|
+
module Totals
|
8
|
+
def self.example(attempted: nil, completed: nil, aborted: nil, not_found: nil)
|
9
|
+
attempted ||= self.attempted
|
10
|
+
completed ||= self.completed
|
11
|
+
aborted ||= self.aborted
|
12
|
+
not_found ||= self.not_found
|
13
|
+
|
14
|
+
TestBench::Run::Summary::FileTotals.new(attempted, completed, aborted, not_found)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.attempted
|
18
|
+
222
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.completed
|
22
|
+
200
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.aborted
|
26
|
+
20
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.not_found
|
30
|
+
2
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|