test_bench-isolated 0 → 2.0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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,41 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Fixture
4
+ module Controls
5
+ module Fixture
6
+ module Object
7
+ module Modules
8
+ def self.included
9
+ [Extended, Included, NoFixture]
10
+ end
11
+
12
+ module Included
13
+ def self.example
14
+ self
15
+ end
16
+
17
+ module Fixture
18
+ end
19
+ end
20
+
21
+ module Extended
22
+ def self.example
23
+ self
24
+ end
25
+
26
+ module Fixture
27
+ end
28
+ end
29
+
30
+ module NoFixture
31
+ def self.example
32
+ self
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,33 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Fixture
4
+ module Controls
5
+ module Fixture
6
+ module Object
7
+ def self.example
8
+ object = Example.new
9
+ object.extend(Modules::Extended)
10
+ object
11
+ end
12
+
13
+ def self.fixture_modules
14
+ [
15
+ Modules::Extended::Fixture,
16
+ Modules::Included::Fixture,
17
+ Example::Fixture
18
+ ]
19
+ end
20
+
21
+ class Example
22
+ include Modules::Included
23
+ include Modules::NoFixture
24
+
25
+ module Fixture
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,29 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Fixture
4
+ module Controls
5
+ module Fixture
6
+ def self.example
7
+ Example.new
8
+ end
9
+
10
+ def self.call(output=nil, &block)
11
+ output ||= Output.example
12
+
13
+ fixture = Example.new
14
+
15
+ fixture.test_session.telemetry.register(output)
16
+
17
+ block.(fixture)
18
+
19
+ fixture
20
+ end
21
+
22
+ class Example
23
+ include TestBench::Fixture
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,9 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Fixture
4
+ module Controls
5
+ Output = TestBench::Session::Controls::Output
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Fixture
4
+ module Controls
5
+ Random = Output::Controls::Random
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Fixture
4
+ module Controls
5
+ Result = TestBench::Session::Controls::Result
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Fixture
4
+ module Controls
5
+ Title = TestBench::Session::Controls::Title
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ require 'test_bench_isolated/test_bench/session/controls'
2
+
3
+ require 'test_bench_isolated/test_bench/fixture/controls/random'
4
+ require 'test_bench_isolated/test_bench/fixture/controls/result'
5
+ require 'test_bench_isolated/test_bench/fixture/controls/exception'
6
+ require 'test_bench_isolated/test_bench/fixture/controls/title'
7
+
8
+ require 'test_bench_isolated/test_bench/fixture/controls/fixture'
9
+ require 'test_bench_isolated/test_bench/fixture/controls/fixture/class'
10
+ require 'test_bench_isolated/test_bench/fixture/controls/fixture/object/modules'
11
+ require 'test_bench_isolated/test_bench/fixture/controls/fixture/object'
12
+
13
+ require 'test_bench_isolated/test_bench/fixture/controls/output'
@@ -0,0 +1,31 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Fixture
4
+ class Evaluate
5
+ include Fixture
6
+
7
+ attr_reader :block
8
+
9
+ def initialize(block)
10
+ @block = block
11
+ end
12
+
13
+ def self.build(session:, &block)
14
+ instance = new(block)
15
+ Session.configure(instance, session:, attr_name: :test_session)
16
+ instance
17
+ end
18
+
19
+ def self.call(session: nil, &block)
20
+ instance = build(session:, &block)
21
+ instance.()
22
+ instance
23
+ end
24
+
25
+ def call
26
+ instance_exec(&block)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,201 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Fixture
4
+ include TestBench::Session::Events
5
+
6
+ def test_session
7
+ @test_session ||= Session::Substitute.build
8
+ end
9
+ attr_writer :test_session
10
+
11
+ def fixture_passed?
12
+ test_session.passed?
13
+ end
14
+ alias :passed? :fixture_passed?
15
+
16
+ def comment(...)
17
+ Fixture.comment(test_session.telemetry, Commented, ...)
18
+ end
19
+
20
+ def detail(...)
21
+ Fixture.comment(test_session.telemetry, Detailed, ...)
22
+ end
23
+
24
+ def assert(result)
25
+ if not [true, false, nil].include?(result)
26
+ raise TypeError, "Value #{result.inspect} isn't a boolean"
27
+ end
28
+
29
+ result = false if result.nil?
30
+
31
+ test_session.assert(result)
32
+ end
33
+
34
+ def refute(result)
35
+ if not [true, false, nil].include?(result)
36
+ raise TypeError, "Value #{result.inspect} isn't a boolean"
37
+ end
38
+
39
+ negated_result = !result
40
+
41
+ test_session.assert(negated_result)
42
+ end
43
+
44
+ def assert_raises(exception_class=nil, message=nil, strict: nil, &block)
45
+ if exception_class.nil?
46
+ strict ||= false
47
+ exception_class = StandardError
48
+ else
49
+ strict = true if strict.nil?
50
+ end
51
+
52
+ detail "Expected exception: #{exception_class}#{' (strict)' if strict}"
53
+ if not message.nil?
54
+ detail "Expected message: #{message.inspect}"
55
+ end
56
+
57
+ block.()
58
+
59
+ detail "(No exception was raised)"
60
+
61
+ rescue exception_class => exception
62
+
63
+ detail "Raised exception: #{exception.inspect}#{" (subclass of #{exception_class})" if exception.class < exception_class}"
64
+
65
+ if strict && !exception.instance_of?(exception_class)
66
+ raise exception
67
+ end
68
+
69
+ if message.nil?
70
+ result = true
71
+ else
72
+ result = exception.message == message
73
+ end
74
+
75
+ assert(result)
76
+ else
77
+ assert(false)
78
+ end
79
+
80
+ def refute_raises(exception_class=nil, strict: nil, &block)
81
+ if exception_class.nil?
82
+ strict ||= false
83
+ exception_class = StandardError
84
+ else
85
+ strict = true if strict.nil?
86
+ end
87
+
88
+ detail "Prohibited exception: #{exception_class}#{' (strict)' if strict}"
89
+
90
+ block.()
91
+
92
+ detail "(No exception was raised)"
93
+
94
+ rescue exception_class => exception
95
+
96
+ detail "Raised exception: #{exception.inspect}#{" (subclass of #{exception_class})" if exception.class < exception_class}"
97
+
98
+ if strict && !exception.instance_of?(exception_class)
99
+ raise exception
100
+ end
101
+
102
+ assert(false)
103
+ else
104
+ assert(true)
105
+ end
106
+
107
+ def context(title=nil, &block)
108
+ title = title&.to_str
109
+
110
+ test_session.context(title, &block)
111
+ end
112
+
113
+ def context!(title=nil, &block)
114
+ title = title&.to_str
115
+
116
+ test_session.context!(title, &block)
117
+ end
118
+
119
+ def test(title=nil, &block)
120
+ title = title&.to_str
121
+
122
+ test_session.test(title, &block)
123
+ end
124
+
125
+ def test!(title=nil, &block)
126
+ title = title&.to_str
127
+
128
+ test_session.test!(title, &block)
129
+ end
130
+
131
+ def fail!(message=nil)
132
+ test_session.fail(message)
133
+ end
134
+
135
+ def fixture(fixture_class_or_object, *, **, &)
136
+ session = self.test_session
137
+
138
+ Fixture.(fixture_class_or_object, *, session:, **, &)
139
+ end
140
+
141
+ def self.comment(telemetry, event_class, text, *additional_texts, heading: nil, quote: nil)
142
+ texts = [text, *additional_texts]
143
+
144
+ texts.map! do |text|
145
+ text.to_str
146
+ end
147
+
148
+ if quote.nil?
149
+ quote = texts.last.end_with?("\n")
150
+ end
151
+
152
+ if quote
153
+ if heading.nil?
154
+ heading = !text.end_with?("\n")
155
+ end
156
+ end
157
+
158
+ if heading
159
+ heading = texts.shift
160
+ else
161
+ heading = nil
162
+ end
163
+
164
+ if quote
165
+ text = texts.join
166
+ else
167
+ text = texts.first
168
+ end
169
+
170
+ event = event_class.new
171
+ event.text = text
172
+ event.quote = quote
173
+ event.heading = heading
174
+
175
+ telemetry.record(event)
176
+
177
+ if not quote
178
+ texts[1..-1].each do |text|
179
+ comment(telemetry, event_class, text, heading: false, quote: false)
180
+ end
181
+ end
182
+ end
183
+
184
+ def self.output(fixture, styling: nil)
185
+ session = fixture.test_session
186
+
187
+ TestBench::Session::Output::Get.(session, styling:)
188
+ end
189
+
190
+ def self.call(fixture_class_or_object, ...)
191
+ if fixture_class_or_object.instance_of?(Class)
192
+ fixture_class = fixture_class_or_object
193
+ Actuate::Class.(fixture_class, ...)
194
+ else
195
+ object = fixture_class_or_object
196
+ Actuate::Object.(object, ...)
197
+ end
198
+ end
199
+ end
200
+ end
201
+ end
@@ -0,0 +1,8 @@
1
+ require 'test_bench_isolated/test_bench/session'
2
+
3
+ require 'test_bench_isolated/test_bench/fixture/actuate/class'
4
+ require 'test_bench_isolated/test_bench/fixture/actuate/object'
5
+
6
+ require 'test_bench_isolated/test_bench/fixture/fixture'
7
+
8
+ require 'test_bench_isolated/test_bench/fixture/evaluate'
@@ -0,0 +1,51 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Output
4
+ module Controls
5
+ module Data
6
+ def self.example
7
+ "some-data"
8
+ end
9
+
10
+ def self.random
11
+ suffix = Random.string
12
+
13
+ "#{example}-#{suffix}"
14
+ end
15
+
16
+ module Digest
17
+ def self.example
18
+ '0123456789:;<=>'
19
+ end
20
+
21
+ def self.digest
22
+ 0x3031323334353637 + 0x0038393A3B3C3D3E
23
+ end
24
+
25
+ module Equivalent
26
+ module SameLength
27
+ def self.example
28
+ '0123456789:;<=>'
29
+ end
30
+
31
+ def self.digest
32
+ Digest.digest
33
+ end
34
+ end
35
+
36
+ module DifferentLength
37
+ def self.example
38
+ [Digest.digest].pack('Q>')
39
+ end
40
+
41
+ def self.digest
42
+ Digest.digest
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,29 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Output
4
+ module Controls
5
+ module Device
6
+ def self.example
7
+ TestBench::Output::Device::Substitute.build
8
+ end
9
+
10
+ module TTY
11
+ def self.example(tty: nil)
12
+ tty = true if tty.nil?
13
+
14
+ device = Device.example
15
+ device.tty! if tty
16
+ device
17
+ end
18
+
19
+ module Non
20
+ def self.example
21
+ TTY.example(tty: false)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,9 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Output
4
+ module Controls
5
+ Event = Telemetry::Controls::Event
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,36 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Output
4
+ module Controls
5
+ module Output
6
+ def self.example_class(&block)
7
+ Class.new do
8
+ include TestBench::Output
9
+
10
+ class_exec(&block)
11
+ end
12
+ end
13
+
14
+ class Example
15
+ include TestBench::Output
16
+ end
17
+
18
+ module Configure
19
+ class Example
20
+ include TestBench::Output
21
+ attr_accessor :some_attr
22
+
23
+ def configure(some_attr: nil, **arguments)
24
+ self.some_attr = some_attr
25
+ end
26
+
27
+ def configured?(some_attr)
28
+ self.some_attr == some_attr
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,9 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Output
4
+ module Controls
5
+ Random = Telemetry::Controls::Random
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,33 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Output
4
+ module Controls
5
+ module Style
6
+ def self.example
7
+ :bold
8
+ end
9
+
10
+ def self.other_example
11
+ :italic
12
+ end
13
+
14
+ module Unknown
15
+ def self.example
16
+ :unknown
17
+ end
18
+ end
19
+
20
+ module Code
21
+ def self.example
22
+ '1'
23
+ end
24
+
25
+ def self.other_example
26
+ '3'
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,29 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Output
4
+ module Controls
5
+ module Styling
6
+ def self.example
7
+ Writer::Styling.on
8
+ end
9
+
10
+ def self.other_example
11
+ Writer::Styling.off
12
+ end
13
+
14
+ def self.random
15
+ stylings = [
16
+ Writer::Styling.on,
17
+ Writer::Styling.off,
18
+ Writer::Styling.detect
19
+ ]
20
+
21
+ index = Random.integer % stylings.count
22
+
23
+ stylings[index]
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,19 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Output
4
+ module Controls
5
+ module Text
6
+ def self.example
7
+ "Some text"
8
+ end
9
+
10
+ def self.random
11
+ suffix = Random.string
12
+
13
+ "#{example} #{suffix}"
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,10 @@
1
+ require 'test_bench_isolated/test_bench/telemetry/controls'
2
+
3
+ require 'test_bench_isolated/test_bench/output/controls/random'
4
+ require 'test_bench_isolated/test_bench/output/controls/data'
5
+ require 'test_bench_isolated/test_bench/output/controls/device'
6
+ require 'test_bench_isolated/test_bench/output/controls/text'
7
+ require 'test_bench_isolated/test_bench/output/controls/styling'
8
+ require 'test_bench_isolated/test_bench/output/controls/style'
9
+ require 'test_bench_isolated/test_bench/output/controls/output'
10
+ require 'test_bench_isolated/test_bench/output/controls/event'
@@ -0,0 +1,21 @@
1
+ module TestBenchIsolated
2
+ module TestBench
3
+ module Output
4
+ module Device
5
+ class Null
6
+ def self.build
7
+ @instance ||= new
8
+ end
9
+
10
+ def write(data)
11
+ data.bytesize
12
+ end
13
+
14
+ def tty?
15
+ false
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end