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.
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