test_bench-bootstrap 6.1.1 → 7.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.
- checksums.yaml +4 -4
- data/executables/bench-bootstrap +7 -0
- data/lib/test_bench_bootstrap/controls.rb +1 -0
- data/lib/test_bench_bootstrap/test_bench_bootstrap.rb +7 -0
- data/lib/test_bench_bootstrap.rb +4 -0
- data/upstream-lib/test_bench_bootstrap/import_constants/controls/namespace.rb +84 -0
- data/upstream-lib/test_bench_bootstrap/import_constants/controls.rb +1 -0
- data/upstream-lib/test_bench_bootstrap/import_constants/import_constants.rb +46 -0
- data/upstream-lib/test_bench_bootstrap/import_constants/macro.rb +10 -0
- data/upstream-lib/test_bench_bootstrap/import_constants.rb +2 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/controls/telemetry_sink.rb +7 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/controls.rb +3 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/controls/path.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/controls/random.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/controls/run.rb +12 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/controls/standard_input.rb +31 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/controls.rb +8 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/defaults.rb +15 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/executable.rb +61 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable/parse_arguments.rb +271 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/executable.rb +7 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/build.rb +41 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/comment_style.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/exception.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/fixture.rb +69 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/message.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/output.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/path.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/session.rb +21 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/status.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/text.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls/title.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/controls.rb +14 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/evaluate.rb +37 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture/fixture.rb +213 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/fixture.rb +7 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/comment_style.rb +63 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/comment_style.rb +23 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/event.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/aborted.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/commented.rb +23 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/context_finished.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/context_started.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/detailed.rb +23 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/failed.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/file_executed.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/file_not_found.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/file_queued.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/skipped.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/test_finished.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/events/test_started.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/random.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/session.rb +19 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/status.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/style.rb +41 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls/text.rb +31 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/controls.rb +26 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/detail_policy.rb +46 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/device/null.rb +21 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/device/substitute.rb +46 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/device.rb +75 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/get.rb +32 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/level.rb +53 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/output.rb +572 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/writer/style.rb +54 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/writer/substitute.rb +27 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output/writer.rb +119 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/output.rb +20 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/controls/seed.rb +25 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/controls/sequence.rb +70 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/controls.rb +2 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/defaults.rb +13 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/generator/substitute.rb +23 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/generator.rb +64 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/iterator.rb +54 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random/random.rb +27 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/random.rb +8 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/events.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/message.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/path.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/random.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/session.rb +16 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/status.rb +44 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/summary/file/info.rb +108 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/summary/file/totals.rb +38 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/summary/file.rb +44 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/summary/run.rb +53 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/summary.rb +45 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/telemetry.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls/time.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/controls.rb +20 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/run.rb +146 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/select_files/substitute.rb +45 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/select_files.rb +70 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/substitute.rb +42 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/summary/substitute.rb +19 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run/summary.rb +477 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/run.rb +10 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/backtrace/location.rb +48 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/backtrace.rb +83 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/comment_disposition.rb +17 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/event.rb +35 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/aborted.rb +51 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/commented.rb +62 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/context_finished.rb +112 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/context_started.rb +51 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/detailed.rb +62 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/failed.rb +41 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/file_executed.rb +101 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/file_not_found.rb +41 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/file_queued.rb +41 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/skipped.rb +51 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/test_finished.rb +92 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events/test_started.rb +51 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/events.rb +35 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/exception/message.rb +23 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/exception/raise.rb +52 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/exception.rb +81 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/message.rb +43 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/metadata.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/path/apex_directory.rb +76 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/path/file/create.rb +113 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/path/file.rb +42 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/path.rb +87 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/random.rb +9 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/result.rb +17 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/sequence.rb +13 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/status.rb +92 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/telemetry.rb +15 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/telemetry_sink.rb +37 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/text.rb +33 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls/title.rb +41 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/controls.rb +43 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/defaults.rb +17 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/events.rb +24 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/exception/format_backtrace/substitute.rb +34 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/exception/format_backtrace.rb +114 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/isolate/substitute.rb +45 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/isolate.rb +159 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/result.rb +44 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/session.rb +236 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/status.rb +60 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/substitute/sink.rb +99 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/substitute.rb +154 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session/trace.rb +53 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/session.rb +22 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/event/metadata.rb +72 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/event.rb +156 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/event_data.rb +113 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/handler.rb +83 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/path/file.rb +39 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/process_id.rb +25 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/random.rb +11 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/sink.rb +35 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls/time.rb +104 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/controls.rb +16 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/event.rb +130 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/event_data/serialization.rb +85 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/event_data.rb +15 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/sink/file.rb +39 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/sink/handler/event_registry.rb +44 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/sink/handler.rb +128 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/sink.rb +13 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/substitute/sink.rb +71 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/substitute.rb +43 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry/telemetry.rb +92 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/telemetry.rb +18 -0
- data/upstream-lib/test_bench_bootstrap/test_bench/test_bench.rb +72 -0
- data/upstream-lib/test_bench_bootstrap/test_bench.rb +4 -0
- metadata +353 -16
- data/lib/test_bench/bootstrap.rb +0 -328
@@ -0,0 +1,15 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Session
|
4
|
+
module Controls
|
5
|
+
module Telemetry
|
6
|
+
Event = TestBench::Telemetry::Controls::Event
|
7
|
+
EventData = TestBench::Telemetry::Controls::EventData
|
8
|
+
Metadata = TestBench::Telemetry::Controls::Event::Metadata
|
9
|
+
Random = TestBench::Telemetry::Controls::Random
|
10
|
+
Sink = TestBench::Telemetry::Controls::Sink
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Session
|
4
|
+
module Controls
|
5
|
+
module TelemetrySink
|
6
|
+
def self.example
|
7
|
+
Telemetry::Sink.example
|
8
|
+
end
|
9
|
+
|
10
|
+
class SetTrace
|
11
|
+
include TestBench::Telemetry::Sink
|
12
|
+
|
13
|
+
attr_accessor :trace_text
|
14
|
+
|
15
|
+
attr_reader :session
|
16
|
+
|
17
|
+
def initialize(session)
|
18
|
+
@session = session
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.register(session)
|
22
|
+
instance = new(session)
|
23
|
+
session.register_telemetry_sink(instance)
|
24
|
+
instance
|
25
|
+
end
|
26
|
+
|
27
|
+
def receive(_event_data)
|
28
|
+
trace_text = session.trace.join
|
29
|
+
|
30
|
+
self.trace_text = trace_text
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Session
|
4
|
+
module Controls
|
5
|
+
module Text
|
6
|
+
def self.example
|
7
|
+
"Some text"
|
8
|
+
end
|
9
|
+
|
10
|
+
module Comment
|
11
|
+
def self.example
|
12
|
+
"Some comment"
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.other_example
|
16
|
+
"Some other comment"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module Detail
|
21
|
+
def self.example
|
22
|
+
"Some detail"
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.other_example
|
26
|
+
"Some other detail"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Session
|
4
|
+
module Controls
|
5
|
+
module Title
|
6
|
+
def self.example
|
7
|
+
"Some Title"
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.other_example
|
11
|
+
"Some Other Title"
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.random
|
15
|
+
"#{example} #{Random.string}"
|
16
|
+
end
|
17
|
+
|
18
|
+
module Context
|
19
|
+
def self.example
|
20
|
+
"Some Context"
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.other_example
|
24
|
+
"Some Other Context"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
module Test
|
29
|
+
def self.example
|
30
|
+
"Some test"
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.other_example
|
34
|
+
"Some other test"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'test_bench_bootstrap/test_bench/telemetry/controls'
|
2
|
+
|
3
|
+
require 'test_bench_bootstrap/test_bench/session/controls/telemetry'
|
4
|
+
|
5
|
+
require 'test_bench_bootstrap/test_bench/session/controls/event'
|
6
|
+
require 'test_bench_bootstrap/test_bench/session/controls/metadata'
|
7
|
+
require 'test_bench_bootstrap/test_bench/session/controls/random'
|
8
|
+
require 'test_bench_bootstrap/test_bench/session/controls/result'
|
9
|
+
require 'test_bench_bootstrap/test_bench/session/controls/sequence'
|
10
|
+
require 'test_bench_bootstrap/test_bench/session/controls/status'
|
11
|
+
require 'test_bench_bootstrap/test_bench/session/controls/telemetry_sink'
|
12
|
+
|
13
|
+
require 'test_bench_bootstrap/test_bench/session/controls/path'
|
14
|
+
require 'test_bench_bootstrap/test_bench/session/controls/path/apex_directory'
|
15
|
+
require 'test_bench_bootstrap/test_bench/session/controls/path/file'
|
16
|
+
require 'test_bench_bootstrap/test_bench/session/controls/path/file/create'
|
17
|
+
|
18
|
+
require 'test_bench_bootstrap/test_bench/session/controls/exception/raise'
|
19
|
+
require 'test_bench_bootstrap/test_bench/session/controls/exception'
|
20
|
+
require 'test_bench_bootstrap/test_bench/session/controls/exception/message'
|
21
|
+
|
22
|
+
require 'test_bench_bootstrap/test_bench/session/controls/backtrace'
|
23
|
+
require 'test_bench_bootstrap/test_bench/session/controls/backtrace/location'
|
24
|
+
|
25
|
+
require 'test_bench_bootstrap/test_bench/session/controls/text'
|
26
|
+
require 'test_bench_bootstrap/test_bench/session/controls/message'
|
27
|
+
require 'test_bench_bootstrap/test_bench/session/controls/title'
|
28
|
+
|
29
|
+
require 'test_bench_bootstrap/test_bench/session/controls/comment_disposition'
|
30
|
+
|
31
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events/failed'
|
32
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events/aborted'
|
33
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events/skipped'
|
34
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events/commented'
|
35
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events/detailed'
|
36
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events/test_started'
|
37
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events/test_finished'
|
38
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events/context_started'
|
39
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events/context_finished'
|
40
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events/file_queued'
|
41
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events/file_executed'
|
42
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events/file_not_found'
|
43
|
+
require 'test_bench_bootstrap/test_bench/session/controls/events'
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Session
|
4
|
+
module Defaults
|
5
|
+
def self.strict
|
6
|
+
disabled_value = 'off'
|
7
|
+
|
8
|
+
env_strict = ENV.fetch('TEST_BENCH_STRICT', disabled_value)
|
9
|
+
|
10
|
+
disabled = env_strict == disabled_value
|
11
|
+
|
12
|
+
!disabled
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Session
|
4
|
+
module Events
|
5
|
+
Failed = Telemetry::Event.define(:message)
|
6
|
+
Aborted = Telemetry::Event.define(:message, :location)
|
7
|
+
Skipped = Telemetry::Event.define(:message)
|
8
|
+
|
9
|
+
Commented = Telemetry::Event.define(:text, :disposition)
|
10
|
+
Detailed = Telemetry::Event.define(:text, :disposition)
|
11
|
+
|
12
|
+
TestStarted = Telemetry::Event.define(:title)
|
13
|
+
TestFinished = Telemetry::Event.define(:title, :result)
|
14
|
+
|
15
|
+
ContextStarted = Telemetry::Event.define(:title)
|
16
|
+
ContextFinished = Telemetry::Event.define(:title, :result)
|
17
|
+
|
18
|
+
FileQueued = Telemetry::Event.define(:file)
|
19
|
+
FileExecuted = Telemetry::Event.define(:file, :result)
|
20
|
+
FileNotFound = Telemetry::Event.define(:file)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/upstream-lib/test_bench_bootstrap/test_bench/session/exception/format_backtrace/substitute.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Session
|
4
|
+
module Exception
|
5
|
+
class FormatBacktrace
|
6
|
+
module Substitute
|
7
|
+
def self.build
|
8
|
+
FormatBacktrace.new
|
9
|
+
end
|
10
|
+
|
11
|
+
class FormatBacktrace
|
12
|
+
attr_accessor :location
|
13
|
+
alias :set_location :location=
|
14
|
+
|
15
|
+
def exceptions
|
16
|
+
@exceptions ||= []
|
17
|
+
end
|
18
|
+
|
19
|
+
def call(exception)
|
20
|
+
exceptions << exception
|
21
|
+
|
22
|
+
location
|
23
|
+
end
|
24
|
+
|
25
|
+
def formatted?(exception)
|
26
|
+
exceptions.include?(exception)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,114 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Session
|
4
|
+
module Exception
|
5
|
+
class FormatBacktrace
|
6
|
+
def omit_patterns
|
7
|
+
@omit_patterns ||= []
|
8
|
+
end
|
9
|
+
attr_writer :omit_patterns
|
10
|
+
|
11
|
+
def apex_directory
|
12
|
+
@apex_directory ||= ::Dir.pwd
|
13
|
+
end
|
14
|
+
attr_writer :apex_directory
|
15
|
+
|
16
|
+
attr_accessor :styling
|
17
|
+
alias :styling? :styling
|
18
|
+
|
19
|
+
def self.build
|
20
|
+
instance = new
|
21
|
+
|
22
|
+
omit_patterns = Defaults.omit_patterns
|
23
|
+
instance.omit_patterns = omit_patterns
|
24
|
+
|
25
|
+
styling = Defaults.styling
|
26
|
+
instance.styling = styling
|
27
|
+
|
28
|
+
instance
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.configure(receiver, attr_name: nil)
|
32
|
+
attr_name ||= :format_backtrace
|
33
|
+
|
34
|
+
instance = build
|
35
|
+
receiver.public_send(:"#{attr_name}=", instance)
|
36
|
+
end
|
37
|
+
|
38
|
+
def call(exception)
|
39
|
+
if styling?
|
40
|
+
omitted_text = "\e[2;3m*omitted*\e[23;22m"
|
41
|
+
else
|
42
|
+
omitted_text = "*omitted*"
|
43
|
+
end
|
44
|
+
|
45
|
+
backtrace = []
|
46
|
+
|
47
|
+
original_frame = exception.backtrace_locations.first.to_s
|
48
|
+
backtrace << original_frame
|
49
|
+
|
50
|
+
omitting = false
|
51
|
+
|
52
|
+
exception.backtrace_locations[1..-1].each do |backtrace_location|
|
53
|
+
if omit?(backtrace_location)
|
54
|
+
if not omitting
|
55
|
+
backtrace << omitted_text
|
56
|
+
end
|
57
|
+
|
58
|
+
omitting = true
|
59
|
+
else
|
60
|
+
omitting = false
|
61
|
+
end
|
62
|
+
|
63
|
+
if not omitting
|
64
|
+
backtrace << backtrace_location.to_s
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
apex_directory_prefix = ::File.join(apex_directory, '')
|
69
|
+
|
70
|
+
backtrace.each do |backtrace_location_text|
|
71
|
+
backtrace_location_text.delete_prefix!(apex_directory_prefix)
|
72
|
+
end
|
73
|
+
|
74
|
+
exception.set_backtrace(backtrace)
|
75
|
+
|
76
|
+
if exception.cause
|
77
|
+
self.(exception.cause)
|
78
|
+
end
|
79
|
+
|
80
|
+
location = exception.backtrace_locations.find do |backtrace_location|
|
81
|
+
!omit?(backtrace_location)
|
82
|
+
end
|
83
|
+
|
84
|
+
location ||= exception.backtrace_locations.first
|
85
|
+
|
86
|
+
location = "#{location.path}:#{location.lineno}"
|
87
|
+
location.delete_prefix!(apex_directory_prefix)
|
88
|
+
location
|
89
|
+
end
|
90
|
+
|
91
|
+
def omit?(backtrace_location)
|
92
|
+
backtrace_path = backtrace_location.path
|
93
|
+
|
94
|
+
omit_patterns.any? do |omit_pattern|
|
95
|
+
::File.fnmatch?(omit_pattern, backtrace_path, ::File::FNM_EXTGLOB)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
module Defaults
|
100
|
+
def self.omit_patterns
|
101
|
+
env_omit_backtrace_pattern = ENV.fetch('TEST_BENCH_OMIT_BACKTRACE_PATTERN', '')
|
102
|
+
|
103
|
+
env_omit_backtrace_pattern.split(':')
|
104
|
+
end
|
105
|
+
|
106
|
+
def self.styling
|
107
|
+
::Exception.to_tty?
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Session
|
4
|
+
class Isolate
|
5
|
+
module Substitute
|
6
|
+
def self.build
|
7
|
+
Isolate.new
|
8
|
+
end
|
9
|
+
|
10
|
+
class Isolate
|
11
|
+
def file_paths
|
12
|
+
@file_paths ||= []
|
13
|
+
end
|
14
|
+
attr_writer :file_paths
|
15
|
+
|
16
|
+
def events
|
17
|
+
@events ||= []
|
18
|
+
end
|
19
|
+
attr_writer :events
|
20
|
+
alias :set_events :events=
|
21
|
+
|
22
|
+
attr_accessor :stopped
|
23
|
+
def stopped?
|
24
|
+
stopped ? true : false
|
25
|
+
end
|
26
|
+
|
27
|
+
def call(file_path, &block)
|
28
|
+
file_paths << file_path
|
29
|
+
|
30
|
+
events.each(&block)
|
31
|
+
end
|
32
|
+
|
33
|
+
def stop
|
34
|
+
self.stopped = true
|
35
|
+
end
|
36
|
+
|
37
|
+
def executed?(file_path)
|
38
|
+
file_paths.include?(file_path)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,159 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Session
|
4
|
+
class Isolate
|
5
|
+
def subprocess_sequence
|
6
|
+
@subprocess_sequence ||= 0
|
7
|
+
end
|
8
|
+
attr_writer :subprocess_sequence
|
9
|
+
|
10
|
+
def apex_directory
|
11
|
+
@apex_directory ||= ::Dir.pwd
|
12
|
+
end
|
13
|
+
attr_writer :apex_directory
|
14
|
+
|
15
|
+
attr_accessor :subprocess_id
|
16
|
+
|
17
|
+
attr_accessor :telemetry_reader
|
18
|
+
attr_accessor :file_path_writer
|
19
|
+
|
20
|
+
def self.build(apex_directory: nil)
|
21
|
+
instance = new
|
22
|
+
instance.apex_directory = apex_directory
|
23
|
+
instance
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.configure(receiver, apex_directory: nil, attr_name: nil)
|
27
|
+
attr_name ||= :isolate
|
28
|
+
|
29
|
+
instance = build(apex_directory:)
|
30
|
+
receiver.public_send(:"#{attr_name}=", instance)
|
31
|
+
end
|
32
|
+
|
33
|
+
def call(file_path, &probe)
|
34
|
+
case status
|
35
|
+
when Status.stopping
|
36
|
+
stop
|
37
|
+
start
|
38
|
+
when Status.stopped
|
39
|
+
start
|
40
|
+
end
|
41
|
+
|
42
|
+
file_path_writer.puts(file_path)
|
43
|
+
|
44
|
+
loop do
|
45
|
+
event_data_text = telemetry_reader.gets
|
46
|
+
|
47
|
+
event_data = Telemetry::EventData.load(event_data_text)
|
48
|
+
|
49
|
+
if Isolated === event_data
|
50
|
+
executed_file_path, result = event_data.data
|
51
|
+
|
52
|
+
if executed_file_path == file_path
|
53
|
+
if result == Result.aborted
|
54
|
+
stop!
|
55
|
+
end
|
56
|
+
|
57
|
+
break
|
58
|
+
else
|
59
|
+
next
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
probe.(event_data)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
def start
|
68
|
+
file_path_reader, file_path_writer = IO.pipe
|
69
|
+
telemetry_reader, telemetry_writer = IO.pipe
|
70
|
+
|
71
|
+
subprocess_id = fork do
|
72
|
+
file_path_writer.close
|
73
|
+
telemetry_reader.close
|
74
|
+
|
75
|
+
::Dir.chdir(apex_directory)
|
76
|
+
|
77
|
+
session = Session.build
|
78
|
+
|
79
|
+
telemetry_sink = Telemetry::Sink::File.new(telemetry_writer)
|
80
|
+
session.register_telemetry_sink(telemetry_sink)
|
81
|
+
|
82
|
+
Session.establish(session)
|
83
|
+
|
84
|
+
while file_path = file_path_reader.gets(chomp: true)
|
85
|
+
pending_event = Isolated.build(file_path)
|
86
|
+
|
87
|
+
absolute_file_path = ::File.expand_path(file_path)
|
88
|
+
|
89
|
+
session.evaluate(pending_event) do
|
90
|
+
load(absolute_file_path)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
ensure
|
95
|
+
# Ensure any exception raised by the subprocess is likely to be printed after the session's test output
|
96
|
+
one_millisecond = 0.001
|
97
|
+
sleep(one_millisecond)
|
98
|
+
end
|
99
|
+
|
100
|
+
telemetry_writer.close
|
101
|
+
file_path_reader.close
|
102
|
+
|
103
|
+
self.subprocess_id = subprocess_id
|
104
|
+
self.subprocess_sequence += 1
|
105
|
+
|
106
|
+
self.telemetry_reader = telemetry_reader
|
107
|
+
self.file_path_writer = file_path_writer
|
108
|
+
|
109
|
+
subprocess_id
|
110
|
+
end
|
111
|
+
|
112
|
+
def stop
|
113
|
+
stop!
|
114
|
+
|
115
|
+
if subprocess_id.nil?
|
116
|
+
return nil
|
117
|
+
end
|
118
|
+
|
119
|
+
subprocess_status = ::Process::Status.wait(subprocess_id)
|
120
|
+
|
121
|
+
self.subprocess_id = nil
|
122
|
+
|
123
|
+
subprocess_status.exitstatus
|
124
|
+
end
|
125
|
+
|
126
|
+
def stop!
|
127
|
+
telemetry_reader&.close
|
128
|
+
file_path_writer&.close
|
129
|
+
end
|
130
|
+
|
131
|
+
def status
|
132
|
+
if subprocess_id.nil?
|
133
|
+
Status.stopped
|
134
|
+
elsif telemetry_reader.closed? && file_path_writer.closed?
|
135
|
+
Status.stopping
|
136
|
+
else
|
137
|
+
Status.active
|
138
|
+
end
|
139
|
+
end
|
140
|
+
|
141
|
+
Isolated = Telemetry::Event.define(:file, :result)
|
142
|
+
|
143
|
+
module Status
|
144
|
+
def self.active
|
145
|
+
:active
|
146
|
+
end
|
147
|
+
|
148
|
+
def self.stopping
|
149
|
+
:stopping
|
150
|
+
end
|
151
|
+
|
152
|
+
def self.stopped
|
153
|
+
:stopped
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Session
|
4
|
+
module Result
|
5
|
+
extend self
|
6
|
+
|
7
|
+
def self.resolve(result, strict: nil)
|
8
|
+
if strict.nil?
|
9
|
+
strict = Defaults.strict
|
10
|
+
end
|
11
|
+
|
12
|
+
case result
|
13
|
+
in "passed"
|
14
|
+
true
|
15
|
+
in "failed" | "aborted"
|
16
|
+
false
|
17
|
+
in "none" | "incomplete"
|
18
|
+
!strict
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def passed
|
23
|
+
"passed"
|
24
|
+
end
|
25
|
+
|
26
|
+
def failed
|
27
|
+
"failed"
|
28
|
+
end
|
29
|
+
|
30
|
+
def none
|
31
|
+
"none"
|
32
|
+
end
|
33
|
+
|
34
|
+
def aborted
|
35
|
+
"aborted"
|
36
|
+
end
|
37
|
+
|
38
|
+
def incomplete
|
39
|
+
"incomplete"
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|