test_bench-isolated 0 → 2.0.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/test_bench_isolated/test_bench/cli.rb +298 -0
- data/lib/test_bench_isolated/test_bench/controls/file.rb +7 -0
- data/lib/test_bench_isolated/test_bench/controls/path.rb +7 -0
- data/lib/test_bench_isolated/test_bench/controls/random.rb +9 -0
- data/lib/test_bench_isolated/test_bench/controls/result.rb +7 -0
- data/lib/test_bench_isolated/test_bench/controls/stdin.rb +29 -0
- data/lib/test_bench_isolated/test_bench/controls.rb +11 -0
- data/lib/test_bench_isolated/test_bench/fixture/actuate/class.rb +97 -0
- data/lib/test_bench_isolated/test_bench/fixture/actuate/object.rb +93 -0
- data/lib/test_bench_isolated/test_bench/fixture/controls/exception.rb +9 -0
- data/lib/test_bench_isolated/test_bench/fixture/controls/fixture/class.rb +88 -0
- data/lib/test_bench_isolated/test_bench/fixture/controls/fixture/object/modules.rb +41 -0
- data/lib/test_bench_isolated/test_bench/fixture/controls/fixture/object.rb +33 -0
- data/lib/test_bench_isolated/test_bench/fixture/controls/fixture.rb +29 -0
- data/lib/test_bench_isolated/test_bench/fixture/controls/output.rb +9 -0
- data/lib/test_bench_isolated/test_bench/fixture/controls/random.rb +9 -0
- data/lib/test_bench_isolated/test_bench/fixture/controls/result.rb +9 -0
- data/lib/test_bench_isolated/test_bench/fixture/controls/title.rb +9 -0
- data/lib/test_bench_isolated/test_bench/fixture/controls.rb +13 -0
- data/lib/test_bench_isolated/test_bench/fixture/evaluate.rb +31 -0
- data/lib/test_bench_isolated/test_bench/fixture/fixture.rb +201 -0
- data/lib/test_bench_isolated/test_bench/fixture.rb +8 -0
- data/lib/test_bench_isolated/test_bench/output/controls/data.rb +51 -0
- data/lib/test_bench_isolated/test_bench/output/controls/device.rb +29 -0
- data/lib/test_bench_isolated/test_bench/output/controls/event.rb +9 -0
- data/lib/test_bench_isolated/test_bench/output/controls/output.rb +36 -0
- data/lib/test_bench_isolated/test_bench/output/controls/random.rb +9 -0
- data/lib/test_bench_isolated/test_bench/output/controls/style.rb +33 -0
- data/lib/test_bench_isolated/test_bench/output/controls/styling.rb +29 -0
- data/lib/test_bench_isolated/test_bench/output/controls/text.rb +19 -0
- data/lib/test_bench_isolated/test_bench/output/controls.rb +10 -0
- data/lib/test_bench_isolated/test_bench/output/device/null.rb +21 -0
- data/lib/test_bench_isolated/test_bench/output/device/substitute.rb +60 -0
- data/lib/test_bench_isolated/test_bench/output/digest.rb +115 -0
- data/lib/test_bench_isolated/test_bench/output/output.rb +68 -0
- data/lib/test_bench_isolated/test_bench/output/writer/buffer.rb +59 -0
- data/lib/test_bench_isolated/test_bench/output/writer/defaults.rb +13 -0
- data/lib/test_bench_isolated/test_bench/output/writer/style.rb +52 -0
- data/lib/test_bench_isolated/test_bench/output/writer/substitute.rb +40 -0
- data/lib/test_bench_isolated/test_bench/output/writer.rb +212 -0
- data/lib/test_bench_isolated/test_bench/output.rb +14 -0
- data/lib/test_bench_isolated/test_bench/random/controls/seed.rb +27 -0
- data/lib/test_bench_isolated/test_bench/random/controls.rb +1 -0
- data/lib/test_bench_isolated/test_bench/random/random.rb +170 -0
- data/lib/test_bench_isolated/test_bench/random.rb +1 -0
- data/lib/test_bench_isolated/test_bench/run/controls/directory.rb +72 -0
- data/lib/test_bench_isolated/test_bench/run/controls/event_data.rb +9 -0
- data/lib/test_bench_isolated/test_bench/run/controls/events/event_data.rb +11 -0
- data/lib/test_bench_isolated/test_bench/run/controls/events/file_crashed.rb +111 -0
- data/lib/test_bench_isolated/test_bench/run/controls/events/file_finished.rb +58 -0
- data/lib/test_bench_isolated/test_bench/run/controls/events/file_started.rb +49 -0
- data/lib/test_bench_isolated/test_bench/run/controls/events/finished.rb +58 -0
- data/lib/test_bench_isolated/test_bench/run/controls/events/session.rb +11 -0
- data/lib/test_bench_isolated/test_bench/run/controls/events/started.rb +49 -0
- data/lib/test_bench_isolated/test_bench/run/controls/exception.rb +103 -0
- data/lib/test_bench_isolated/test_bench/run/controls/executor.rb +58 -0
- data/lib/test_bench_isolated/test_bench/run/controls/file/create.rb +71 -0
- data/lib/test_bench_isolated/test_bench/run/controls/file/pattern.rb +35 -0
- data/lib/test_bench_isolated/test_bench/run/controls/file.rb +182 -0
- data/lib/test_bench_isolated/test_bench/run/controls/path.rb +17 -0
- data/lib/test_bench_isolated/test_bench/run/controls/process_id.rb +9 -0
- data/lib/test_bench_isolated/test_bench/run/controls/random.rb +9 -0
- data/lib/test_bench_isolated/test_bench/run/controls/result.rb +9 -0
- data/lib/test_bench_isolated/test_bench/run/controls/time.rb +9 -0
- data/lib/test_bench_isolated/test_bench/run/controls.rb +26 -0
- data/lib/test_bench_isolated/test_bench/run/events.rb +14 -0
- data/lib/test_bench_isolated/test_bench/run/executor/serial.rb +36 -0
- data/lib/test_bench_isolated/test_bench/run/executor/substitute.rb +47 -0
- data/lib/test_bench_isolated/test_bench/run/executor.rb +46 -0
- data/lib/test_bench_isolated/test_bench/run/file.rb +83 -0
- data/lib/test_bench_isolated/test_bench/run/get_files/substitute.rb +48 -0
- data/lib/test_bench_isolated/test_bench/run/get_files.rb +78 -0
- data/lib/test_bench_isolated/test_bench/run/output/file.rb +137 -0
- data/lib/test_bench_isolated/test_bench/run/output/summary/error.rb +141 -0
- data/lib/test_bench_isolated/test_bench/run/output/summary.rb +184 -0
- data/lib/test_bench_isolated/test_bench/run/run.rb +156 -0
- data/lib/test_bench_isolated/test_bench/run.rb +18 -0
- data/lib/test_bench_isolated/test_bench/session/controls/comment.rb +107 -0
- data/lib/test_bench_isolated/test_bench/session/controls/detail.rb +93 -0
- data/lib/test_bench_isolated/test_bench/session/controls/event.rb +9 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events/commented.rb +112 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events/context_finished.rb +72 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events/context_skipped.rb +49 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events/context_started.rb +66 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events/detailed.rb +112 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events/event_data.rb +11 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events/failed.rb +49 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events/fixture_finished.rb +55 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events/fixture_started.rb +49 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events/test_finished.rb +72 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events/test_skipped.rb +49 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events/test_started.rb +66 -0
- data/lib/test_bench_isolated/test_bench/session/controls/events.rb +35 -0
- data/lib/test_bench_isolated/test_bench/session/controls/exception.rb +47 -0
- data/lib/test_bench_isolated/test_bench/session/controls/failure.rb +21 -0
- data/lib/test_bench_isolated/test_bench/session/controls/fixture.rb +21 -0
- data/lib/test_bench_isolated/test_bench/session/controls/output/detail.rb +31 -0
- data/lib/test_bench_isolated/test_bench/session/controls/output.rb +57 -0
- data/lib/test_bench_isolated/test_bench/session/controls/process_id.rb +9 -0
- data/lib/test_bench_isolated/test_bench/session/controls/random.rb +9 -0
- data/lib/test_bench_isolated/test_bench/session/controls/result.rb +25 -0
- data/lib/test_bench_isolated/test_bench/session/controls/substitute/path.rb +35 -0
- data/lib/test_bench_isolated/test_bench/session/controls/time.rb +9 -0
- data/lib/test_bench_isolated/test_bench/session/controls/title.rb +41 -0
- data/lib/test_bench_isolated/test_bench/session/controls.rb +36 -0
- data/lib/test_bench_isolated/test_bench/session/events.rb +27 -0
- data/lib/test_bench_isolated/test_bench/session/output/get.rb +29 -0
- data/lib/test_bench_isolated/test_bench/session/output/writer/buffer/interactive/viewport.rb +167 -0
- data/lib/test_bench_isolated/test_bench/session/output/writer/buffer/interactive.rb +141 -0
- data/lib/test_bench_isolated/test_bench/session/output/writer/buffer.rb +29 -0
- data/lib/test_bench_isolated/test_bench/session/output/writer/defaults.rb +19 -0
- data/lib/test_bench_isolated/test_bench/session/output/writer/substitute.rb +19 -0
- data/lib/test_bench_isolated/test_bench/session/output/writer.rb +97 -0
- data/lib/test_bench_isolated/test_bench/session/output.rb +377 -0
- data/lib/test_bench_isolated/test_bench/session/projection.rb +30 -0
- data/lib/test_bench_isolated/test_bench/session/session.rb +220 -0
- data/lib/test_bench_isolated/test_bench/session/store.rb +61 -0
- data/lib/test_bench_isolated/test_bench/session/substitute/path.rb +65 -0
- data/lib/test_bench_isolated/test_bench/session/substitute/sink.rb +114 -0
- data/lib/test_bench_isolated/test_bench/session/substitute.rb +120 -0
- data/lib/test_bench_isolated/test_bench/session.rb +22 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls/event/event_data.rb +17 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls/event/metadata.rb +72 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls/event.rb +140 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls/event_data.rb +131 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls/file.rb +86 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls/handler.rb +83 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls/process_id.rb +21 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls/projection/receiver.rb +33 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls/projection.rb +86 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls/random.rb +9 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls/sink.rb +35 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls/time.rb +125 -0
- data/lib/test_bench_isolated/test_bench/telemetry/controls.rb +17 -0
- data/lib/test_bench_isolated/test_bench/telemetry/event.rb +108 -0
- data/lib/test_bench_isolated/test_bench/telemetry/event_data/serialization.rb +172 -0
- data/lib/test_bench_isolated/test_bench/telemetry/event_data.rb +15 -0
- data/lib/test_bench_isolated/test_bench/telemetry/sink/file.rb +33 -0
- data/lib/test_bench_isolated/test_bench/telemetry/sink/handler/event_registry.rb +44 -0
- data/lib/test_bench_isolated/test_bench/telemetry/sink/handler.rb +128 -0
- data/lib/test_bench_isolated/test_bench/telemetry/sink/projection.rb +134 -0
- data/lib/test_bench_isolated/test_bench/telemetry/sink.rb +13 -0
- data/lib/test_bench_isolated/test_bench/telemetry/substitute/sink.rb +85 -0
- data/lib/test_bench_isolated/test_bench/telemetry/substitute.rb +34 -0
- data/lib/test_bench_isolated/test_bench/telemetry/telemetry.rb +111 -0
- data/lib/test_bench_isolated/test_bench/telemetry.rb +17 -0
- data/lib/test_bench_isolated/test_bench/test_bench.rb +56 -0
- data/lib/test_bench_isolated/test_bench.rb +5 -0
- data/script/bench +5 -0
- metadata +156 -7
- data/lib/test_bench/bootstrap.rb +0 -328
@@ -0,0 +1,170 @@
|
|
1
|
+
module TestBenchIsolated
|
2
|
+
module TestBench
|
3
|
+
class Random
|
4
|
+
def generator
|
5
|
+
@generator ||= self.class.generator(seed, namespace)
|
6
|
+
end
|
7
|
+
attr_writer :generator
|
8
|
+
|
9
|
+
def seed
|
10
|
+
@seed ||= Defaults.seed
|
11
|
+
end
|
12
|
+
attr_writer :seed
|
13
|
+
|
14
|
+
def namespace
|
15
|
+
@namespace ||= Defaults.namespace
|
16
|
+
end
|
17
|
+
attr_writer :namespace
|
18
|
+
|
19
|
+
def sequence
|
20
|
+
@sequence ||= 0
|
21
|
+
end
|
22
|
+
attr_writer :sequence
|
23
|
+
|
24
|
+
def self.build(seed=nil, namespace: nil)
|
25
|
+
instance = new
|
26
|
+
instance.seed = seed
|
27
|
+
instance.namespace = namespace
|
28
|
+
instance
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.instance
|
32
|
+
@instance ||= build
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.configure(receiver, attr_name: nil)
|
36
|
+
attr_name ||= :random
|
37
|
+
|
38
|
+
receiver.public_send(:"#{attr_name}=", instance)
|
39
|
+
end
|
40
|
+
|
41
|
+
def string
|
42
|
+
integer.to_s(36)
|
43
|
+
end
|
44
|
+
|
45
|
+
def integer
|
46
|
+
bytes = next_qword.bytes
|
47
|
+
|
48
|
+
number = 0
|
49
|
+
|
50
|
+
bytes.each_with_index do |byte, index|
|
51
|
+
number += byte ** index
|
52
|
+
end
|
53
|
+
|
54
|
+
number
|
55
|
+
end
|
56
|
+
|
57
|
+
def fraction
|
58
|
+
self.sequence += 1
|
59
|
+
|
60
|
+
generator.rand
|
61
|
+
end
|
62
|
+
|
63
|
+
def boolean
|
64
|
+
byte = next_qword.bytes.first
|
65
|
+
|
66
|
+
if byte % 2 == 1
|
67
|
+
true
|
68
|
+
else
|
69
|
+
false
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def reset?(namespace=nil)
|
74
|
+
namespace ||= self.namespace
|
75
|
+
|
76
|
+
if namespace != self.namespace
|
77
|
+
return false
|
78
|
+
end
|
79
|
+
|
80
|
+
sequence.zero?
|
81
|
+
end
|
82
|
+
|
83
|
+
def next_qword
|
84
|
+
self.sequence += 1
|
85
|
+
|
86
|
+
generator.bytes(8)
|
87
|
+
end
|
88
|
+
|
89
|
+
def reset(namespace=nil)
|
90
|
+
namespace ||= self.namespace
|
91
|
+
|
92
|
+
generator = self.class.generator(seed, namespace)
|
93
|
+
|
94
|
+
self.generator = generator
|
95
|
+
self.namespace = namespace
|
96
|
+
|
97
|
+
self.sequence = 0
|
98
|
+
|
99
|
+
generator.seed
|
100
|
+
end
|
101
|
+
|
102
|
+
def self.generator(seed, namespace)
|
103
|
+
namespace_digest = namespace_digest(namespace)
|
104
|
+
|
105
|
+
seed ^= namespace_digest
|
106
|
+
|
107
|
+
::Random.new(seed)
|
108
|
+
end
|
109
|
+
|
110
|
+
def self.generator_seed(seed, namespace)
|
111
|
+
generator = generator(seed, namespace)
|
112
|
+
generator.seed
|
113
|
+
end
|
114
|
+
|
115
|
+
def self.namespace_digest(namespace)
|
116
|
+
byte_width = 8
|
117
|
+
|
118
|
+
sequence = namespace.bytes.each_slice(byte_width).map do |bytes|
|
119
|
+
value = 0
|
120
|
+
|
121
|
+
bytes.each_with_index do |byte, index|
|
122
|
+
value <<= 8 if not index.zero?
|
123
|
+
|
124
|
+
value += byte
|
125
|
+
end
|
126
|
+
|
127
|
+
value
|
128
|
+
end
|
129
|
+
|
130
|
+
digest_salt = (0x100 ** byte_width) - 1
|
131
|
+
sequence.push(digest_salt)
|
132
|
+
|
133
|
+
sequence.reduce do |checksum, value|
|
134
|
+
checksum ^ value
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
module Substitute
|
139
|
+
def self.build
|
140
|
+
Random.build
|
141
|
+
end
|
142
|
+
|
143
|
+
class Random < Random
|
144
|
+
alias :set_seed :seed=
|
145
|
+
|
146
|
+
def self.build
|
147
|
+
instance = new
|
148
|
+
instance.set_seed(0)
|
149
|
+
instance
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
module Defaults
|
155
|
+
def self.seed
|
156
|
+
seed = ENV['TEST_BENCH_SEED']
|
157
|
+
if not seed.nil?
|
158
|
+
seed.to_i(36)
|
159
|
+
else
|
160
|
+
::Random.new_seed
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
def self.namespace
|
165
|
+
$PROGRAM_NAME
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|
170
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'test_bench_isolated/test_bench/random/random'
|
@@ -0,0 +1,72 @@
|
|
1
|
+
module TestBenchIsolated
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Directory
|
6
|
+
def self.example(name=nil, parent_directory: nil, root_directory: nil)
|
7
|
+
name ||= self.name
|
8
|
+
parent_directory ||= self.parent_directory
|
9
|
+
|
10
|
+
::File.join(parent_directory, name)
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.random
|
14
|
+
Random.example
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.name
|
18
|
+
Name.example
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.parent_directory
|
22
|
+
File::Create.directory
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.root_directory
|
26
|
+
File::Create.root_directory
|
27
|
+
end
|
28
|
+
|
29
|
+
module Pattern
|
30
|
+
def self.example
|
31
|
+
'some-directory*'
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
module Random
|
36
|
+
def self.example(basename: nil, parent_directory: nil)
|
37
|
+
name = Name::Random.example(basename)
|
38
|
+
|
39
|
+
Directory.example(name, parent_directory:)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
module Name
|
44
|
+
def self.example
|
45
|
+
"some-directory"
|
46
|
+
end
|
47
|
+
|
48
|
+
module Random
|
49
|
+
def self.example(basename=nil)
|
50
|
+
basename ||= Name.example
|
51
|
+
|
52
|
+
suffix = Controls::Random.string
|
53
|
+
|
54
|
+
"#{basename}-#{suffix}"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
module Create
|
60
|
+
def self.call(basename: nil, parent_directory: nil)
|
61
|
+
directory = Random.example(basename:, parent_directory:)
|
62
|
+
|
63
|
+
::Dir.mkdir(directory)
|
64
|
+
|
65
|
+
directory
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,111 @@
|
|
1
|
+
module TestBenchIsolated
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Events
|
6
|
+
module FileCrashed
|
7
|
+
extend EventData
|
8
|
+
|
9
|
+
def self.example(file: nil, error_message: nil, error_text: nil, process_id: nil, time: nil)
|
10
|
+
file ||= self.file
|
11
|
+
error_message ||= self.error_message
|
12
|
+
error_text ||= self.error_text
|
13
|
+
process_id ||= self.process_id
|
14
|
+
time ||= self.time
|
15
|
+
|
16
|
+
Run::Events::FileCrashed.build(file, error_message, error_text, process_id:, time:)
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.random
|
20
|
+
Random.example
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.file
|
24
|
+
File::Test::Local.example
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.error_message
|
28
|
+
ErrorMessage.example
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.error_text
|
32
|
+
ErrorText.example
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.process_id
|
36
|
+
ProcessID.example
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.time
|
40
|
+
Time.example
|
41
|
+
end
|
42
|
+
|
43
|
+
module Random
|
44
|
+
extend EventData
|
45
|
+
|
46
|
+
def self.example(file: nil, error_message: nil, error_text: nil, process_id: nil, time: nil)
|
47
|
+
file ||= File::Test::Local.random
|
48
|
+
error_message ||= ErrorMessage.random
|
49
|
+
error_text ||= ErrorText.random
|
50
|
+
process_id ||= ProcessID.random
|
51
|
+
time ||= Time.random
|
52
|
+
|
53
|
+
FileCrashed.example(file:, error_message:, error_text:, process_id:, time:)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
module ErrorText
|
58
|
+
def self.example(...)
|
59
|
+
exception = Exception.example
|
60
|
+
|
61
|
+
exception.full_message
|
62
|
+
end
|
63
|
+
|
64
|
+
def self.random
|
65
|
+
exception = Exception.random
|
66
|
+
|
67
|
+
exception.full_message
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
module ErrorMessage
|
72
|
+
def self.example(file: nil, message: nil, exception_class: nil)
|
73
|
+
file ||= self.file
|
74
|
+
|
75
|
+
backtrace_frame = Exception::Backtrace::Frame.example(file:)
|
76
|
+
|
77
|
+
exception = Exception.example(backtrace_frame:, message:, exception_class:)
|
78
|
+
|
79
|
+
get(exception)
|
80
|
+
end
|
81
|
+
|
82
|
+
def self.random
|
83
|
+
Random.example
|
84
|
+
end
|
85
|
+
|
86
|
+
def self.file
|
87
|
+
File::Implementation::Local.example
|
88
|
+
end
|
89
|
+
|
90
|
+
def self.get(exception)
|
91
|
+
exception.full_message(order: :top, highlight: false).each_line(chomp: true).first
|
92
|
+
end
|
93
|
+
|
94
|
+
module Random
|
95
|
+
def self.example(...)
|
96
|
+
exception = Exception::Random.example(...)
|
97
|
+
|
98
|
+
ErrorMessage.get(exception)
|
99
|
+
end
|
100
|
+
|
101
|
+
def self.file
|
102
|
+
File::Implementation::Local.random
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module TestBenchIsolated
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Events
|
6
|
+
module FileFinished
|
7
|
+
extend EventData
|
8
|
+
|
9
|
+
def self.example(file: nil, result: nil, process_id: nil, time: nil)
|
10
|
+
file ||= self.file
|
11
|
+
result = self.result if result.nil?
|
12
|
+
process_id ||= self.process_id
|
13
|
+
time ||= self.time
|
14
|
+
|
15
|
+
Run::Events::FileFinished.build(file, result, process_id:, time:)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.random
|
19
|
+
Random.example
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.file
|
23
|
+
File::Test::Local.example
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.result
|
27
|
+
Result.example
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.process_id
|
31
|
+
ProcessID.example
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.time
|
35
|
+
Time.example
|
36
|
+
end
|
37
|
+
|
38
|
+
module Random
|
39
|
+
extend EventData
|
40
|
+
|
41
|
+
def self.example(file: nil, result: nil, process_id: nil, time: nil)
|
42
|
+
file ||= File::Test::Local.random
|
43
|
+
process_id ||= ProcessID.random
|
44
|
+
time ||= Time.random
|
45
|
+
|
46
|
+
if result.nil?
|
47
|
+
result = Result.random
|
48
|
+
end
|
49
|
+
|
50
|
+
FileFinished.example(file:, result:, process_id:, time:)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module TestBenchIsolated
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Events
|
6
|
+
module FileStarted
|
7
|
+
extend EventData
|
8
|
+
|
9
|
+
def self.example(file: nil, process_id: nil, time: nil)
|
10
|
+
file ||= self.file
|
11
|
+
process_id ||= self.process_id
|
12
|
+
time ||= self.time
|
13
|
+
|
14
|
+
Run::Events::FileStarted.build(file, process_id:, time:)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.random
|
18
|
+
Random.example
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.file
|
22
|
+
File::Test::Local.example
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.process_id
|
26
|
+
ProcessID.example
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.time
|
30
|
+
Time.example
|
31
|
+
end
|
32
|
+
|
33
|
+
module Random
|
34
|
+
extend EventData
|
35
|
+
|
36
|
+
def self.example(file: nil, process_id: nil, time: nil)
|
37
|
+
file ||= File::Test::Local.random
|
38
|
+
process_id ||= ProcessID.random
|
39
|
+
time ||= Time.random
|
40
|
+
|
41
|
+
FileStarted.example(file:, process_id:, time:)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
module TestBenchIsolated
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Events
|
6
|
+
module Finished
|
7
|
+
extend EventData
|
8
|
+
|
9
|
+
def self.example(result: nil, random_seed: nil, process_id: nil, time: nil)
|
10
|
+
random_seed ||= self.random_seed
|
11
|
+
result = self.result if result.nil?
|
12
|
+
process_id ||= self.process_id
|
13
|
+
time ||= self.time
|
14
|
+
|
15
|
+
Run::Events::Finished.build(random_seed, result, process_id:, time:)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.random
|
19
|
+
Random.example
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.random_seed
|
23
|
+
Started.random_seed
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.result
|
27
|
+
Result.example
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.process_id
|
31
|
+
ProcessID.example
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.time
|
35
|
+
Time.example
|
36
|
+
end
|
37
|
+
|
38
|
+
module Random
|
39
|
+
extend EventData
|
40
|
+
|
41
|
+
def self.example(result: nil, random_seed: nil, process_id: nil, time: nil)
|
42
|
+
random_seed ||= Controls::Random.integer
|
43
|
+
process_id ||= ProcessID.random
|
44
|
+
time ||= Time.random
|
45
|
+
|
46
|
+
if result.nil?
|
47
|
+
result = Result.random
|
48
|
+
end
|
49
|
+
|
50
|
+
Finished.example(result:, random_seed:, process_id:, time:)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module TestBenchIsolated
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Events
|
6
|
+
module Started
|
7
|
+
extend EventData
|
8
|
+
|
9
|
+
def self.example(random_seed: nil, process_id: nil, time: nil)
|
10
|
+
random_seed ||= self.random_seed
|
11
|
+
process_id ||= self.process_id
|
12
|
+
time ||= self.time
|
13
|
+
|
14
|
+
Run::Events::Started.build(random_seed, process_id:, time:)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.random
|
18
|
+
Random.example
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.random_seed
|
22
|
+
1
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.process_id
|
26
|
+
ProcessID.example
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.time
|
30
|
+
Time.example
|
31
|
+
end
|
32
|
+
|
33
|
+
module Random
|
34
|
+
extend EventData
|
35
|
+
|
36
|
+
def self.example(random_seed: nil, process_id: nil, time: nil)
|
37
|
+
random_seed ||= Controls::Random.integer
|
38
|
+
process_id ||= ProcessID.random
|
39
|
+
time ||= Time.random
|
40
|
+
|
41
|
+
Started.example(random_seed:, process_id:, time:)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,103 @@
|
|
1
|
+
module TestBenchIsolated
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Exception
|
6
|
+
def self.example(backtrace_frame: nil, message: nil, exception_class: nil)
|
7
|
+
exception = Fixture::Controls::Exception.example(message:, exception_class:)
|
8
|
+
|
9
|
+
backtrace = Backtrace.example(backtrace_frame)
|
10
|
+
exception.set_backtrace(backtrace)
|
11
|
+
|
12
|
+
exception
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.random
|
16
|
+
Random.example
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.message
|
20
|
+
Message.example
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.backtrace_frame
|
24
|
+
BacktraceFrame.example
|
25
|
+
end
|
26
|
+
|
27
|
+
Example = Fixture::Controls::Exception::Example
|
28
|
+
|
29
|
+
Message = Fixture::Controls::Exception::Message
|
30
|
+
|
31
|
+
module Random
|
32
|
+
def self.example(message: nil, backtrace_frame: nil)
|
33
|
+
message ||= Message.random
|
34
|
+
backtrace_frame ||= Backtrace::Frame.random
|
35
|
+
|
36
|
+
Exception.example(message:, backtrace_frame:)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
module Backtrace
|
41
|
+
def self.example(frame=nil)
|
42
|
+
frame ||= self.frame
|
43
|
+
|
44
|
+
[frame]
|
45
|
+
end
|
46
|
+
|
47
|
+
def self.random
|
48
|
+
frame = Frame.random
|
49
|
+
|
50
|
+
example(frame)
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.frame
|
54
|
+
Frame.example
|
55
|
+
end
|
56
|
+
|
57
|
+
module Frame
|
58
|
+
def self.example(file: nil, line_number: nil, method_name: nil)
|
59
|
+
file ||= self.file
|
60
|
+
line_number ||= self.line_number
|
61
|
+
method_name ||= self.method_name
|
62
|
+
|
63
|
+
"#{file}:#{line_number}:in `#{method_name}'"
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.random
|
67
|
+
Random.example
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.file
|
71
|
+
File::Implementation.example
|
72
|
+
end
|
73
|
+
|
74
|
+
def self.line_number
|
75
|
+
11
|
76
|
+
end
|
77
|
+
|
78
|
+
def self.method_name
|
79
|
+
'some_method'
|
80
|
+
end
|
81
|
+
|
82
|
+
module Random
|
83
|
+
def self.example(file: nil, line_number: nil, method_name: nil)
|
84
|
+
file ||= File::Implementation.random
|
85
|
+
line_number ||= Controls::Random.integer
|
86
|
+
method_name ||= self.method_name
|
87
|
+
|
88
|
+
Frame.example(file:, line_number:, method_name:)
|
89
|
+
end
|
90
|
+
|
91
|
+
def self.method_name
|
92
|
+
suffix = Controls::Random.string
|
93
|
+
|
94
|
+
"#{Frame.method_name}_#{suffix}"
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|