test_bench-isolated 0 → 2.0.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.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/lib/test_bench_isolated/test_bench/cli.rb +298 -0
  3. data/lib/test_bench_isolated/test_bench/controls/file.rb +7 -0
  4. data/lib/test_bench_isolated/test_bench/controls/path.rb +7 -0
  5. data/lib/test_bench_isolated/test_bench/controls/random.rb +9 -0
  6. data/lib/test_bench_isolated/test_bench/controls/result.rb +7 -0
  7. data/lib/test_bench_isolated/test_bench/controls/stdin.rb +29 -0
  8. data/lib/test_bench_isolated/test_bench/controls.rb +11 -0
  9. data/lib/test_bench_isolated/test_bench/fixture/actuate/class.rb +97 -0
  10. data/lib/test_bench_isolated/test_bench/fixture/actuate/object.rb +93 -0
  11. data/lib/test_bench_isolated/test_bench/fixture/controls/exception.rb +9 -0
  12. data/lib/test_bench_isolated/test_bench/fixture/controls/fixture/class.rb +88 -0
  13. data/lib/test_bench_isolated/test_bench/fixture/controls/fixture/object/modules.rb +41 -0
  14. data/lib/test_bench_isolated/test_bench/fixture/controls/fixture/object.rb +33 -0
  15. data/lib/test_bench_isolated/test_bench/fixture/controls/fixture.rb +29 -0
  16. data/lib/test_bench_isolated/test_bench/fixture/controls/output.rb +9 -0
  17. data/lib/test_bench_isolated/test_bench/fixture/controls/random.rb +9 -0
  18. data/lib/test_bench_isolated/test_bench/fixture/controls/result.rb +9 -0
  19. data/lib/test_bench_isolated/test_bench/fixture/controls/title.rb +9 -0
  20. data/lib/test_bench_isolated/test_bench/fixture/controls.rb +13 -0
  21. data/lib/test_bench_isolated/test_bench/fixture/evaluate.rb +31 -0
  22. data/lib/test_bench_isolated/test_bench/fixture/fixture.rb +201 -0
  23. data/lib/test_bench_isolated/test_bench/fixture.rb +8 -0
  24. data/lib/test_bench_isolated/test_bench/output/controls/data.rb +51 -0
  25. data/lib/test_bench_isolated/test_bench/output/controls/device.rb +29 -0
  26. data/lib/test_bench_isolated/test_bench/output/controls/event.rb +9 -0
  27. data/lib/test_bench_isolated/test_bench/output/controls/output.rb +36 -0
  28. data/lib/test_bench_isolated/test_bench/output/controls/random.rb +9 -0
  29. data/lib/test_bench_isolated/test_bench/output/controls/style.rb +33 -0
  30. data/lib/test_bench_isolated/test_bench/output/controls/styling.rb +29 -0
  31. data/lib/test_bench_isolated/test_bench/output/controls/text.rb +19 -0
  32. data/lib/test_bench_isolated/test_bench/output/controls.rb +10 -0
  33. data/lib/test_bench_isolated/test_bench/output/device/null.rb +21 -0
  34. data/lib/test_bench_isolated/test_bench/output/device/substitute.rb +60 -0
  35. data/lib/test_bench_isolated/test_bench/output/digest.rb +115 -0
  36. data/lib/test_bench_isolated/test_bench/output/output.rb +68 -0
  37. data/lib/test_bench_isolated/test_bench/output/writer/buffer.rb +59 -0
  38. data/lib/test_bench_isolated/test_bench/output/writer/defaults.rb +13 -0
  39. data/lib/test_bench_isolated/test_bench/output/writer/style.rb +52 -0
  40. data/lib/test_bench_isolated/test_bench/output/writer/substitute.rb +40 -0
  41. data/lib/test_bench_isolated/test_bench/output/writer.rb +212 -0
  42. data/lib/test_bench_isolated/test_bench/output.rb +14 -0
  43. data/lib/test_bench_isolated/test_bench/random/controls/seed.rb +27 -0
  44. data/lib/test_bench_isolated/test_bench/random/controls.rb +1 -0
  45. data/lib/test_bench_isolated/test_bench/random/random.rb +170 -0
  46. data/lib/test_bench_isolated/test_bench/random.rb +1 -0
  47. data/lib/test_bench_isolated/test_bench/run/controls/directory.rb +72 -0
  48. data/lib/test_bench_isolated/test_bench/run/controls/event_data.rb +9 -0
  49. data/lib/test_bench_isolated/test_bench/run/controls/events/event_data.rb +11 -0
  50. data/lib/test_bench_isolated/test_bench/run/controls/events/file_crashed.rb +111 -0
  51. data/lib/test_bench_isolated/test_bench/run/controls/events/file_finished.rb +58 -0
  52. data/lib/test_bench_isolated/test_bench/run/controls/events/file_started.rb +49 -0
  53. data/lib/test_bench_isolated/test_bench/run/controls/events/finished.rb +58 -0
  54. data/lib/test_bench_isolated/test_bench/run/controls/events/session.rb +11 -0
  55. data/lib/test_bench_isolated/test_bench/run/controls/events/started.rb +49 -0
  56. data/lib/test_bench_isolated/test_bench/run/controls/exception.rb +103 -0
  57. data/lib/test_bench_isolated/test_bench/run/controls/executor.rb +58 -0
  58. data/lib/test_bench_isolated/test_bench/run/controls/file/create.rb +71 -0
  59. data/lib/test_bench_isolated/test_bench/run/controls/file/pattern.rb +35 -0
  60. data/lib/test_bench_isolated/test_bench/run/controls/file.rb +182 -0
  61. data/lib/test_bench_isolated/test_bench/run/controls/path.rb +17 -0
  62. data/lib/test_bench_isolated/test_bench/run/controls/process_id.rb +9 -0
  63. data/lib/test_bench_isolated/test_bench/run/controls/random.rb +9 -0
  64. data/lib/test_bench_isolated/test_bench/run/controls/result.rb +9 -0
  65. data/lib/test_bench_isolated/test_bench/run/controls/time.rb +9 -0
  66. data/lib/test_bench_isolated/test_bench/run/controls.rb +26 -0
  67. data/lib/test_bench_isolated/test_bench/run/events.rb +14 -0
  68. data/lib/test_bench_isolated/test_bench/run/executor/serial.rb +36 -0
  69. data/lib/test_bench_isolated/test_bench/run/executor/substitute.rb +47 -0
  70. data/lib/test_bench_isolated/test_bench/run/executor.rb +46 -0
  71. data/lib/test_bench_isolated/test_bench/run/file.rb +83 -0
  72. data/lib/test_bench_isolated/test_bench/run/get_files/substitute.rb +48 -0
  73. data/lib/test_bench_isolated/test_bench/run/get_files.rb +78 -0
  74. data/lib/test_bench_isolated/test_bench/run/output/file.rb +137 -0
  75. data/lib/test_bench_isolated/test_bench/run/output/summary/error.rb +141 -0
  76. data/lib/test_bench_isolated/test_bench/run/output/summary.rb +184 -0
  77. data/lib/test_bench_isolated/test_bench/run/run.rb +156 -0
  78. data/lib/test_bench_isolated/test_bench/run.rb +18 -0
  79. data/lib/test_bench_isolated/test_bench/session/controls/comment.rb +107 -0
  80. data/lib/test_bench_isolated/test_bench/session/controls/detail.rb +93 -0
  81. data/lib/test_bench_isolated/test_bench/session/controls/event.rb +9 -0
  82. data/lib/test_bench_isolated/test_bench/session/controls/events/commented.rb +112 -0
  83. data/lib/test_bench_isolated/test_bench/session/controls/events/context_finished.rb +72 -0
  84. data/lib/test_bench_isolated/test_bench/session/controls/events/context_skipped.rb +49 -0
  85. data/lib/test_bench_isolated/test_bench/session/controls/events/context_started.rb +66 -0
  86. data/lib/test_bench_isolated/test_bench/session/controls/events/detailed.rb +112 -0
  87. data/lib/test_bench_isolated/test_bench/session/controls/events/event_data.rb +11 -0
  88. data/lib/test_bench_isolated/test_bench/session/controls/events/failed.rb +49 -0
  89. data/lib/test_bench_isolated/test_bench/session/controls/events/fixture_finished.rb +55 -0
  90. data/lib/test_bench_isolated/test_bench/session/controls/events/fixture_started.rb +49 -0
  91. data/lib/test_bench_isolated/test_bench/session/controls/events/test_finished.rb +72 -0
  92. data/lib/test_bench_isolated/test_bench/session/controls/events/test_skipped.rb +49 -0
  93. data/lib/test_bench_isolated/test_bench/session/controls/events/test_started.rb +66 -0
  94. data/lib/test_bench_isolated/test_bench/session/controls/events.rb +35 -0
  95. data/lib/test_bench_isolated/test_bench/session/controls/exception.rb +47 -0
  96. data/lib/test_bench_isolated/test_bench/session/controls/failure.rb +21 -0
  97. data/lib/test_bench_isolated/test_bench/session/controls/fixture.rb +21 -0
  98. data/lib/test_bench_isolated/test_bench/session/controls/output/detail.rb +31 -0
  99. data/lib/test_bench_isolated/test_bench/session/controls/output.rb +57 -0
  100. data/lib/test_bench_isolated/test_bench/session/controls/process_id.rb +9 -0
  101. data/lib/test_bench_isolated/test_bench/session/controls/random.rb +9 -0
  102. data/lib/test_bench_isolated/test_bench/session/controls/result.rb +25 -0
  103. data/lib/test_bench_isolated/test_bench/session/controls/substitute/path.rb +35 -0
  104. data/lib/test_bench_isolated/test_bench/session/controls/time.rb +9 -0
  105. data/lib/test_bench_isolated/test_bench/session/controls/title.rb +41 -0
  106. data/lib/test_bench_isolated/test_bench/session/controls.rb +36 -0
  107. data/lib/test_bench_isolated/test_bench/session/events.rb +27 -0
  108. data/lib/test_bench_isolated/test_bench/session/output/get.rb +29 -0
  109. data/lib/test_bench_isolated/test_bench/session/output/writer/buffer/interactive/viewport.rb +167 -0
  110. data/lib/test_bench_isolated/test_bench/session/output/writer/buffer/interactive.rb +141 -0
  111. data/lib/test_bench_isolated/test_bench/session/output/writer/buffer.rb +29 -0
  112. data/lib/test_bench_isolated/test_bench/session/output/writer/defaults.rb +19 -0
  113. data/lib/test_bench_isolated/test_bench/session/output/writer/substitute.rb +19 -0
  114. data/lib/test_bench_isolated/test_bench/session/output/writer.rb +97 -0
  115. data/lib/test_bench_isolated/test_bench/session/output.rb +377 -0
  116. data/lib/test_bench_isolated/test_bench/session/projection.rb +30 -0
  117. data/lib/test_bench_isolated/test_bench/session/session.rb +220 -0
  118. data/lib/test_bench_isolated/test_bench/session/store.rb +61 -0
  119. data/lib/test_bench_isolated/test_bench/session/substitute/path.rb +65 -0
  120. data/lib/test_bench_isolated/test_bench/session/substitute/sink.rb +114 -0
  121. data/lib/test_bench_isolated/test_bench/session/substitute.rb +120 -0
  122. data/lib/test_bench_isolated/test_bench/session.rb +22 -0
  123. data/lib/test_bench_isolated/test_bench/telemetry/controls/event/event_data.rb +17 -0
  124. data/lib/test_bench_isolated/test_bench/telemetry/controls/event/metadata.rb +72 -0
  125. data/lib/test_bench_isolated/test_bench/telemetry/controls/event.rb +140 -0
  126. data/lib/test_bench_isolated/test_bench/telemetry/controls/event_data.rb +131 -0
  127. data/lib/test_bench_isolated/test_bench/telemetry/controls/file.rb +86 -0
  128. data/lib/test_bench_isolated/test_bench/telemetry/controls/handler.rb +83 -0
  129. data/lib/test_bench_isolated/test_bench/telemetry/controls/process_id.rb +21 -0
  130. data/lib/test_bench_isolated/test_bench/telemetry/controls/projection/receiver.rb +33 -0
  131. data/lib/test_bench_isolated/test_bench/telemetry/controls/projection.rb +86 -0
  132. data/lib/test_bench_isolated/test_bench/telemetry/controls/random.rb +9 -0
  133. data/lib/test_bench_isolated/test_bench/telemetry/controls/sink.rb +35 -0
  134. data/lib/test_bench_isolated/test_bench/telemetry/controls/time.rb +125 -0
  135. data/lib/test_bench_isolated/test_bench/telemetry/controls.rb +17 -0
  136. data/lib/test_bench_isolated/test_bench/telemetry/event.rb +108 -0
  137. data/lib/test_bench_isolated/test_bench/telemetry/event_data/serialization.rb +172 -0
  138. data/lib/test_bench_isolated/test_bench/telemetry/event_data.rb +15 -0
  139. data/lib/test_bench_isolated/test_bench/telemetry/sink/file.rb +33 -0
  140. data/lib/test_bench_isolated/test_bench/telemetry/sink/handler/event_registry.rb +44 -0
  141. data/lib/test_bench_isolated/test_bench/telemetry/sink/handler.rb +128 -0
  142. data/lib/test_bench_isolated/test_bench/telemetry/sink/projection.rb +134 -0
  143. data/lib/test_bench_isolated/test_bench/telemetry/sink.rb +13 -0
  144. data/lib/test_bench_isolated/test_bench/telemetry/substitute/sink.rb +85 -0
  145. data/lib/test_bench_isolated/test_bench/telemetry/substitute.rb +34 -0
  146. data/lib/test_bench_isolated/test_bench/telemetry/telemetry.rb +111 -0
  147. data/lib/test_bench_isolated/test_bench/telemetry.rb +17 -0
  148. data/lib/test_bench_isolated/test_bench/test_bench.rb +56 -0
  149. data/lib/test_bench_isolated/test_bench.rb +5 -0
  150. data/script/bench +5 -0
  151. metadata +156 -7
  152. 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,9 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Run
4
+ module Controls
5
+ EventData = Telemetry::Controls::EventData
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Run
4
+ module Controls
5
+ module Events
6
+ EventData = Session::Controls::Events::EventData
7
+ end
8
+ end
9
+ end
10
+ end
11
+ 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,11 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Run
4
+ module Controls
5
+ module Events
6
+ Session = Session::Controls::Events
7
+ end
8
+ end
9
+ end
10
+ end
11
+ 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