test_bench-isolated 0 → 2.0.0.1

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 (153) hide show
  1. checksums.yaml +4 -4
  2. data/lib/test_bench/isolated.rb +1 -0
  3. data/lib/test_bench_isolated/test_bench/cli.rb +298 -0
  4. data/lib/test_bench_isolated/test_bench/controls/file.rb +7 -0
  5. data/lib/test_bench_isolated/test_bench/controls/path.rb +7 -0
  6. data/lib/test_bench_isolated/test_bench/controls/random.rb +9 -0
  7. data/lib/test_bench_isolated/test_bench/controls/result.rb +7 -0
  8. data/lib/test_bench_isolated/test_bench/controls/stdin.rb +29 -0
  9. data/lib/test_bench_isolated/test_bench/controls.rb +11 -0
  10. data/lib/test_bench_isolated/test_bench/fixture/actuate/class.rb +97 -0
  11. data/lib/test_bench_isolated/test_bench/fixture/actuate/object.rb +93 -0
  12. data/lib/test_bench_isolated/test_bench/fixture/controls/exception.rb +9 -0
  13. data/lib/test_bench_isolated/test_bench/fixture/controls/fixture/class.rb +88 -0
  14. data/lib/test_bench_isolated/test_bench/fixture/controls/fixture/object/modules.rb +41 -0
  15. data/lib/test_bench_isolated/test_bench/fixture/controls/fixture/object.rb +33 -0
  16. data/lib/test_bench_isolated/test_bench/fixture/controls/fixture.rb +29 -0
  17. data/lib/test_bench_isolated/test_bench/fixture/controls/output.rb +9 -0
  18. data/lib/test_bench_isolated/test_bench/fixture/controls/random.rb +9 -0
  19. data/lib/test_bench_isolated/test_bench/fixture/controls/result.rb +9 -0
  20. data/lib/test_bench_isolated/test_bench/fixture/controls/title.rb +9 -0
  21. data/lib/test_bench_isolated/test_bench/fixture/controls.rb +13 -0
  22. data/lib/test_bench_isolated/test_bench/fixture/evaluate.rb +31 -0
  23. data/lib/test_bench_isolated/test_bench/fixture/fixture.rb +201 -0
  24. data/lib/test_bench_isolated/test_bench/fixture.rb +8 -0
  25. data/lib/test_bench_isolated/test_bench/output/controls/data.rb +51 -0
  26. data/lib/test_bench_isolated/test_bench/output/controls/device.rb +29 -0
  27. data/lib/test_bench_isolated/test_bench/output/controls/event.rb +9 -0
  28. data/lib/test_bench_isolated/test_bench/output/controls/output.rb +36 -0
  29. data/lib/test_bench_isolated/test_bench/output/controls/random.rb +9 -0
  30. data/lib/test_bench_isolated/test_bench/output/controls/style.rb +33 -0
  31. data/lib/test_bench_isolated/test_bench/output/controls/styling.rb +29 -0
  32. data/lib/test_bench_isolated/test_bench/output/controls/text.rb +19 -0
  33. data/lib/test_bench_isolated/test_bench/output/controls.rb +10 -0
  34. data/lib/test_bench_isolated/test_bench/output/device/null.rb +21 -0
  35. data/lib/test_bench_isolated/test_bench/output/device/substitute.rb +60 -0
  36. data/lib/test_bench_isolated/test_bench/output/digest.rb +115 -0
  37. data/lib/test_bench_isolated/test_bench/output/output.rb +68 -0
  38. data/lib/test_bench_isolated/test_bench/output/writer/buffer.rb +59 -0
  39. data/lib/test_bench_isolated/test_bench/output/writer/defaults.rb +13 -0
  40. data/lib/test_bench_isolated/test_bench/output/writer/style.rb +52 -0
  41. data/lib/test_bench_isolated/test_bench/output/writer/substitute.rb +40 -0
  42. data/lib/test_bench_isolated/test_bench/output/writer.rb +212 -0
  43. data/lib/test_bench_isolated/test_bench/output.rb +14 -0
  44. data/lib/test_bench_isolated/test_bench/random/controls/seed.rb +27 -0
  45. data/lib/test_bench_isolated/test_bench/random/controls.rb +1 -0
  46. data/lib/test_bench_isolated/test_bench/random/random.rb +170 -0
  47. data/lib/test_bench_isolated/test_bench/random.rb +1 -0
  48. data/lib/test_bench_isolated/test_bench/run/controls/directory.rb +72 -0
  49. data/lib/test_bench_isolated/test_bench/run/controls/event_data.rb +9 -0
  50. data/lib/test_bench_isolated/test_bench/run/controls/events/event_data.rb +11 -0
  51. data/lib/test_bench_isolated/test_bench/run/controls/events/file_crashed.rb +111 -0
  52. data/lib/test_bench_isolated/test_bench/run/controls/events/file_finished.rb +58 -0
  53. data/lib/test_bench_isolated/test_bench/run/controls/events/file_started.rb +49 -0
  54. data/lib/test_bench_isolated/test_bench/run/controls/events/finished.rb +58 -0
  55. data/lib/test_bench_isolated/test_bench/run/controls/events/session.rb +11 -0
  56. data/lib/test_bench_isolated/test_bench/run/controls/events/started.rb +49 -0
  57. data/lib/test_bench_isolated/test_bench/run/controls/exception.rb +103 -0
  58. data/lib/test_bench_isolated/test_bench/run/controls/executor.rb +58 -0
  59. data/lib/test_bench_isolated/test_bench/run/controls/file/create.rb +71 -0
  60. data/lib/test_bench_isolated/test_bench/run/controls/file/pattern.rb +35 -0
  61. data/lib/test_bench_isolated/test_bench/run/controls/file.rb +182 -0
  62. data/lib/test_bench_isolated/test_bench/run/controls/path.rb +17 -0
  63. data/lib/test_bench_isolated/test_bench/run/controls/process_id.rb +9 -0
  64. data/lib/test_bench_isolated/test_bench/run/controls/random.rb +9 -0
  65. data/lib/test_bench_isolated/test_bench/run/controls/result.rb +9 -0
  66. data/lib/test_bench_isolated/test_bench/run/controls/time.rb +9 -0
  67. data/lib/test_bench_isolated/test_bench/run/controls.rb +26 -0
  68. data/lib/test_bench_isolated/test_bench/run/events.rb +14 -0
  69. data/lib/test_bench_isolated/test_bench/run/executor/serial.rb +36 -0
  70. data/lib/test_bench_isolated/test_bench/run/executor/substitute.rb +47 -0
  71. data/lib/test_bench_isolated/test_bench/run/executor.rb +46 -0
  72. data/lib/test_bench_isolated/test_bench/run/file.rb +83 -0
  73. data/lib/test_bench_isolated/test_bench/run/get_files/substitute.rb +48 -0
  74. data/lib/test_bench_isolated/test_bench/run/get_files.rb +78 -0
  75. data/lib/test_bench_isolated/test_bench/run/output/file.rb +137 -0
  76. data/lib/test_bench_isolated/test_bench/run/output/summary/error.rb +141 -0
  77. data/lib/test_bench_isolated/test_bench/run/output/summary.rb +184 -0
  78. data/lib/test_bench_isolated/test_bench/run/run.rb +156 -0
  79. data/lib/test_bench_isolated/test_bench/run.rb +18 -0
  80. data/lib/test_bench_isolated/test_bench/session/controls/comment.rb +107 -0
  81. data/lib/test_bench_isolated/test_bench/session/controls/detail.rb +93 -0
  82. data/lib/test_bench_isolated/test_bench/session/controls/event.rb +9 -0
  83. data/lib/test_bench_isolated/test_bench/session/controls/events/commented.rb +112 -0
  84. data/lib/test_bench_isolated/test_bench/session/controls/events/context_finished.rb +72 -0
  85. data/lib/test_bench_isolated/test_bench/session/controls/events/context_skipped.rb +49 -0
  86. data/lib/test_bench_isolated/test_bench/session/controls/events/context_started.rb +66 -0
  87. data/lib/test_bench_isolated/test_bench/session/controls/events/detailed.rb +112 -0
  88. data/lib/test_bench_isolated/test_bench/session/controls/events/event_data.rb +11 -0
  89. data/lib/test_bench_isolated/test_bench/session/controls/events/failed.rb +49 -0
  90. data/lib/test_bench_isolated/test_bench/session/controls/events/fixture_finished.rb +55 -0
  91. data/lib/test_bench_isolated/test_bench/session/controls/events/fixture_started.rb +49 -0
  92. data/lib/test_bench_isolated/test_bench/session/controls/events/test_finished.rb +72 -0
  93. data/lib/test_bench_isolated/test_bench/session/controls/events/test_skipped.rb +49 -0
  94. data/lib/test_bench_isolated/test_bench/session/controls/events/test_started.rb +66 -0
  95. data/lib/test_bench_isolated/test_bench/session/controls/events.rb +35 -0
  96. data/lib/test_bench_isolated/test_bench/session/controls/exception.rb +47 -0
  97. data/lib/test_bench_isolated/test_bench/session/controls/failure.rb +21 -0
  98. data/lib/test_bench_isolated/test_bench/session/controls/fixture.rb +21 -0
  99. data/lib/test_bench_isolated/test_bench/session/controls/output/detail.rb +31 -0
  100. data/lib/test_bench_isolated/test_bench/session/controls/output.rb +57 -0
  101. data/lib/test_bench_isolated/test_bench/session/controls/process_id.rb +9 -0
  102. data/lib/test_bench_isolated/test_bench/session/controls/random.rb +9 -0
  103. data/lib/test_bench_isolated/test_bench/session/controls/result.rb +25 -0
  104. data/lib/test_bench_isolated/test_bench/session/controls/substitute/path.rb +35 -0
  105. data/lib/test_bench_isolated/test_bench/session/controls/time.rb +9 -0
  106. data/lib/test_bench_isolated/test_bench/session/controls/title.rb +41 -0
  107. data/lib/test_bench_isolated/test_bench/session/controls.rb +36 -0
  108. data/lib/test_bench_isolated/test_bench/session/events.rb +27 -0
  109. data/lib/test_bench_isolated/test_bench/session/output/get.rb +29 -0
  110. data/lib/test_bench_isolated/test_bench/session/output/writer/buffer/interactive/viewport.rb +167 -0
  111. data/lib/test_bench_isolated/test_bench/session/output/writer/buffer/interactive.rb +141 -0
  112. data/lib/test_bench_isolated/test_bench/session/output/writer/buffer.rb +29 -0
  113. data/lib/test_bench_isolated/test_bench/session/output/writer/defaults.rb +19 -0
  114. data/lib/test_bench_isolated/test_bench/session/output/writer/substitute.rb +19 -0
  115. data/lib/test_bench_isolated/test_bench/session/output/writer.rb +97 -0
  116. data/lib/test_bench_isolated/test_bench/session/output.rb +377 -0
  117. data/lib/test_bench_isolated/test_bench/session/projection.rb +30 -0
  118. data/lib/test_bench_isolated/test_bench/session/session.rb +220 -0
  119. data/lib/test_bench_isolated/test_bench/session/store.rb +61 -0
  120. data/lib/test_bench_isolated/test_bench/session/substitute/path.rb +65 -0
  121. data/lib/test_bench_isolated/test_bench/session/substitute/sink.rb +114 -0
  122. data/lib/test_bench_isolated/test_bench/session/substitute.rb +120 -0
  123. data/lib/test_bench_isolated/test_bench/session.rb +22 -0
  124. data/lib/test_bench_isolated/test_bench/telemetry/controls/event/event_data.rb +17 -0
  125. data/lib/test_bench_isolated/test_bench/telemetry/controls/event/metadata.rb +72 -0
  126. data/lib/test_bench_isolated/test_bench/telemetry/controls/event.rb +140 -0
  127. data/lib/test_bench_isolated/test_bench/telemetry/controls/event_data.rb +131 -0
  128. data/lib/test_bench_isolated/test_bench/telemetry/controls/file.rb +86 -0
  129. data/lib/test_bench_isolated/test_bench/telemetry/controls/handler.rb +83 -0
  130. data/lib/test_bench_isolated/test_bench/telemetry/controls/process_id.rb +21 -0
  131. data/lib/test_bench_isolated/test_bench/telemetry/controls/projection/receiver.rb +33 -0
  132. data/lib/test_bench_isolated/test_bench/telemetry/controls/projection.rb +86 -0
  133. data/lib/test_bench_isolated/test_bench/telemetry/controls/random.rb +9 -0
  134. data/lib/test_bench_isolated/test_bench/telemetry/controls/sink.rb +35 -0
  135. data/lib/test_bench_isolated/test_bench/telemetry/controls/time.rb +125 -0
  136. data/lib/test_bench_isolated/test_bench/telemetry/controls.rb +17 -0
  137. data/lib/test_bench_isolated/test_bench/telemetry/event.rb +108 -0
  138. data/lib/test_bench_isolated/test_bench/telemetry/event_data/serialization.rb +172 -0
  139. data/lib/test_bench_isolated/test_bench/telemetry/event_data.rb +15 -0
  140. data/lib/test_bench_isolated/test_bench/telemetry/sink/file.rb +33 -0
  141. data/lib/test_bench_isolated/test_bench/telemetry/sink/handler/event_registry.rb +44 -0
  142. data/lib/test_bench_isolated/test_bench/telemetry/sink/handler.rb +128 -0
  143. data/lib/test_bench_isolated/test_bench/telemetry/sink/projection.rb +134 -0
  144. data/lib/test_bench_isolated/test_bench/telemetry/sink.rb +13 -0
  145. data/lib/test_bench_isolated/test_bench/telemetry/substitute/sink.rb +85 -0
  146. data/lib/test_bench_isolated/test_bench/telemetry/substitute.rb +34 -0
  147. data/lib/test_bench_isolated/test_bench/telemetry/telemetry.rb +111 -0
  148. data/lib/test_bench_isolated/test_bench/telemetry.rb +17 -0
  149. data/lib/test_bench_isolated/test_bench/test_bench.rb +56 -0
  150. data/lib/test_bench_isolated/test_bench.rb +5 -0
  151. data/script/bench +5 -0
  152. metadata +157 -7
  153. data/lib/test_bench/bootstrap.rb +0 -328
@@ -0,0 +1,112 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ module Detailed
7
+ extend EventData
8
+
9
+ def self.example(text: nil, quote: nil, heading: nil, process_id: nil, time: nil)
10
+ quote = self.quote if quote.nil?
11
+ process_id ||= self.process_id
12
+ time ||= self.time
13
+
14
+ if text == :none
15
+ text = nil
16
+ else
17
+ text ||= self.text
18
+ end
19
+
20
+ Session::Events::Detailed.build(text, quote, heading, process_id:, time:)
21
+ end
22
+
23
+ def self.random
24
+ Random.example
25
+ end
26
+
27
+ def self.text
28
+ Detail::Text.example
29
+ end
30
+
31
+ def self.quote
32
+ false
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(text: nil, quote: nil, heading: nil, process_id: nil, time: nil)
47
+ text ||= Detail::Text.random
48
+ quote ||= Detail::Quote.random
49
+ process_id ||= ProcessID.random
50
+ time ||= Time.random
51
+
52
+ Detailed.example(text:, quote:, heading:, process_id:, time:)
53
+ end
54
+ end
55
+
56
+ module MultipleLines
57
+ extend EventData
58
+
59
+ def self.example(omit_heading: nil, heading: nil, **attributes)
60
+ if omit_heading.nil?
61
+ omit_heading = !heading.nil?
62
+ end
63
+
64
+ if not omit_heading
65
+ heading ||= self.heading
66
+ end
67
+
68
+ Detailed.example(text:, quote:, heading:, **attributes)
69
+ end
70
+
71
+ def self.random
72
+ Random.example
73
+ end
74
+
75
+ def self.text
76
+ Detail::Text::MultipleLines.example
77
+ end
78
+
79
+ def self.quote
80
+ true
81
+ end
82
+
83
+ def self.heading
84
+ Detail::Heading.example
85
+ end
86
+
87
+ module Random
88
+ extend EventData
89
+
90
+ def self.example(omit_heading: nil, heading: nil, **attributes)
91
+ if omit_heading.nil?
92
+ omit_heading = !heading.nil?
93
+ end
94
+
95
+ suffix = Controls::Random.string
96
+
97
+ if not omit_heading
98
+ heading = Detail::Heading::Random.example(suffix)
99
+ end
100
+
101
+ text = Detail::Text::MultipleLines::Random.example(suffix)
102
+
103
+ Detailed::Random.example(text:, heading:, **attributes)
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
112
+ end
@@ -0,0 +1,11 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ EventData = Telemetry::Controls::Event::EventData
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,49 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ module Failed
7
+ extend EventData
8
+
9
+ def self.example(message: nil, process_id: nil, time: nil)
10
+ message ||= self.message
11
+ process_id ||= self.process_id
12
+ time ||= self.time
13
+
14
+ Session::Events::Failed.build(message, process_id:, time:)
15
+ end
16
+
17
+ def self.random
18
+ Random.example
19
+ end
20
+
21
+ def self.message
22
+ Failure::Message.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(message: nil, process_id: nil, time: nil)
37
+ message ||= Failure::Message.random
38
+ process_id ||= ProcessID.random
39
+ time ||= Time.random
40
+
41
+ Failed.example(message:, process_id:, time:)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,55 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ module FixtureFinished
7
+ extend EventData
8
+
9
+ def self.example(name: nil, result: nil, process_id: nil, time: nil)
10
+ name ||= self.name
11
+ result = self.result if result.nil?
12
+ process_id ||= self.process_id
13
+ time ||= self.time
14
+
15
+ Session::Events::FixtureFinished.build(name, result, process_id:, time:)
16
+ end
17
+
18
+ def self.random
19
+ Random.example
20
+ end
21
+
22
+ def self.name
23
+ Fixture::Name.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(name: nil, result: nil, process_id: nil, time: nil)
42
+ name ||= Fixture::Name.random
43
+ result = Result.random if result.nil?
44
+ process_id ||= ProcessID.random
45
+ time ||= Time.random
46
+
47
+ FixtureFinished.example(name:, result:, process_id:, time:)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,49 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ module FixtureStarted
7
+ extend EventData
8
+
9
+ def self.example(name: nil, process_id: nil, time: nil)
10
+ name ||= self.name
11
+ process_id ||= self.process_id
12
+ time ||= self.time
13
+
14
+ Session::Events::FixtureStarted.build(name, process_id:, time:)
15
+ end
16
+
17
+ def self.random
18
+ Random.example
19
+ end
20
+
21
+ def self.name
22
+ Fixture::Name.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(name: nil, process_id: nil, time: nil)
37
+ name ||= Fixture::Name.random
38
+ process_id ||= ProcessID.random
39
+ time ||= Time.random
40
+
41
+ FixtureStarted.example(name:, process_id:, time:)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,72 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ module TestFinished
7
+ extend EventData
8
+
9
+ def self.example(title: nil, result: nil, process_id: nil, time: nil)
10
+ result = self.result if result.nil?
11
+ process_id ||= self.process_id
12
+ time ||= self.time
13
+
14
+ if title == :none
15
+ title = nil
16
+ else
17
+ title ||= self.title
18
+ end
19
+
20
+ Session::Events::TestFinished.build(title, result, process_id:, time:)
21
+ end
22
+
23
+ def self.random
24
+ Random.example
25
+ end
26
+
27
+ def self.title
28
+ Title::Test.example
29
+ end
30
+
31
+ def self.result
32
+ Result.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(title: nil, result: nil, process_id: nil, time: nil)
47
+ result = Result.random if result.nil?
48
+ process_id ||= ProcessID.random
49
+ time ||= Time.random
50
+ title ||= Title::Test.random
51
+
52
+ TestFinished.example(title:, result:, process_id:, time:)
53
+ end
54
+ end
55
+
56
+ module NoTitle
57
+ extend EventData
58
+
59
+ def self.example(**arguments)
60
+ TestFinished.example(title: :none, **arguments)
61
+ end
62
+
63
+ def self.random
64
+ Random.example(title: :none)
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,49 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ module TestSkipped
7
+ extend EventData
8
+
9
+ def self.example(title: nil, process_id: nil, time: nil)
10
+ title ||= self.title
11
+ process_id ||= self.process_id
12
+ time ||= self.time
13
+
14
+ Session::Events::TestSkipped.build(title, process_id:, time:)
15
+ end
16
+
17
+ def self.random
18
+ Random.example
19
+ end
20
+
21
+ def self.title
22
+ Title::Test.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(title: nil, process_id: nil, time: nil)
37
+ process_id ||= ProcessID.random
38
+ time ||= Time.random
39
+ title ||= Title::Test.random
40
+
41
+ TestSkipped.example(title:, process_id:, time:)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,66 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ module TestStarted
7
+ extend EventData
8
+
9
+ def self.example(title: nil, process_id: nil, time: nil)
10
+ process_id ||= self.process_id
11
+ time ||= self.time
12
+
13
+ if title == :none
14
+ title = nil
15
+ else
16
+ title ||= self.title
17
+ end
18
+
19
+ Session::Events::TestStarted.build(title, process_id:, time:)
20
+ end
21
+
22
+ def self.random
23
+ Random.example
24
+ end
25
+
26
+ def self.title
27
+ Title::Test.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(title: nil, process_id: nil, time: nil)
42
+ process_id ||= ProcessID.random
43
+ time ||= Time.random
44
+ title ||= Title::Test.random
45
+
46
+ TestStarted.example(title:, process_id:, time:)
47
+ end
48
+ end
49
+
50
+ module NoTitle
51
+ extend EventData
52
+
53
+ def self.example(**arguments)
54
+ TestStarted.example(title: :none, **arguments)
55
+ end
56
+
57
+ def self.random
58
+ Random.example(title: :none)
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,35 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Events
6
+ def self.examples(random: nil)
7
+ random ||= false
8
+
9
+ events = []
10
+
11
+ Session::Events.each_type do |event_type|
12
+ control = Events.const_get(event_type, false)
13
+
14
+ if random
15
+ event = control.random
16
+ else
17
+ event = control.example
18
+ end
19
+
20
+ events << event
21
+ end
22
+
23
+ events
24
+ end
25
+
26
+ def self.each_example(random: nil, &block)
27
+ examples = examples(random:)
28
+
29
+ examples.each(&block)
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,47 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Exception
6
+ def self.example(message: nil, exception_class: nil)
7
+ message ||= self.message
8
+ exception_class ||= Example
9
+
10
+ exception_class.new(message)
11
+ end
12
+
13
+ def self.other_example
14
+ exception_class = OtherExample
15
+
16
+ example(exception_class:)
17
+ end
18
+
19
+ def self.random
20
+ message = Message.random
21
+
22
+ example(message:)
23
+ end
24
+
25
+ def self.message
26
+ Message.example
27
+ end
28
+
29
+ Example = Class.new(RuntimeError)
30
+ OtherExample = Class.new(RuntimeError)
31
+
32
+ module Message
33
+ def self.example
34
+ "Some exception"
35
+ end
36
+
37
+ def self.random
38
+ suffix = Random.string
39
+
40
+ "#{example} #{suffix}"
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,21 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Failure
6
+ module Message
7
+ def self.example
8
+ "Some failure message"
9
+ end
10
+
11
+ def self.random
12
+ suffix = Random.string
13
+
14
+ "#{example} #{suffix}"
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Fixture
6
+ module Name
7
+ def self.example
8
+ "SomeNamespace::SomeFixture"
9
+ end
10
+
11
+ def self.random
12
+ suffix = Random.string
13
+
14
+ "#{example}_#{suffix}"
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,31 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Output
6
+ module Detail
7
+ def self.example
8
+ Session::Output::Detail.on
9
+ end
10
+
11
+ def self.other_example
12
+ Session::Output::Detail.off
13
+ end
14
+
15
+ def self.random
16
+ details = [
17
+ Session::Output::Detail.on,
18
+ Session::Output::Detail.off,
19
+ Session::Output::Detail.failure
20
+ ]
21
+
22
+ index = Random.integer % details.count
23
+
24
+ details[index]
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,57 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ module Output
6
+ Device = TestBench::Output::Controls::Device
7
+ Data = TestBench::Output::Controls::Data
8
+ Styling = TestBench::Output::Controls::Styling
9
+ Style = TestBench::Output::Controls::Style
10
+ Text = TestBench::Output::Controls::Text
11
+
12
+ def self.example(details: nil, styling: nil, mode: nil)
13
+ styling ||= false
14
+
15
+ output = Session::Output.new
16
+
17
+ if details == true
18
+ output.detail_policy = Session::Output::Detail.on
19
+ elsif details == false
20
+ output.detail_policy = Session::Output::Detail.off
21
+ else
22
+ output.detail_policy = Session::Output::Detail.failure
23
+ end
24
+
25
+ if styling
26
+ output.writer.styling!
27
+ end
28
+
29
+ if not mode.nil?
30
+ output.mode = mode
31
+ end
32
+
33
+ output
34
+ end
35
+
36
+ module Styling
37
+ def self.example
38
+ Output.example(styling:)
39
+ end
40
+
41
+ def self.styling
42
+ true
43
+ end
44
+ end
45
+
46
+ module Pending
47
+ def self.example
48
+ output = Styling.example
49
+ output.pending_writer.buffer.limit = nil
50
+ output
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,9 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ ProcessID = TestBench::Telemetry::Controls::ProcessID
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ class Session
4
+ module Controls
5
+ Random = TestBench::Output::Controls::Random
6
+ end
7
+ end
8
+ end
9
+ end