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,44 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Summary
|
6
|
+
module File
|
7
|
+
module Unstyled
|
8
|
+
def self.example
|
9
|
+
<<~TEXT
|
10
|
+
File Summary
|
11
|
+
- - -
|
12
|
+
- #{Path::File.example}: no tests, 11 failures, 12+ skipped, 2 errors:
|
13
|
+
#{Message::Error.example}
|
14
|
+
#{Session::BacktraceLocation.example}
|
15
|
+
|
16
|
+
#{Message::Error.other_example}
|
17
|
+
#{Session::BacktraceLocation.other_example}
|
18
|
+
|
19
|
+
- #{Path::File.other_example}: 1 failure
|
20
|
+
TEXT
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
module Styled
|
25
|
+
def self.example
|
26
|
+
<<~TEXT
|
27
|
+
\e[1;4m\e[31mFile Summary\e[m
|
28
|
+
\e[31m\e[2m-\e[22m \e[1m#{Info.path}\e[22m: no tests, 11 failures, 12+ skipped, 2 errors:\e[m
|
29
|
+
\e[31m#{Message::Error.example}\e[m
|
30
|
+
\e[31m#{Session::BacktraceLocation.example}\e[m
|
31
|
+
\e[m
|
32
|
+
\e[31m#{Message::Error.other_example}\e[m
|
33
|
+
\e[31m#{Session::BacktraceLocation.other_example}\e[m
|
34
|
+
\e[m
|
35
|
+
\e[31m\e[2m-\e[22m \e[1m#{Info::Other.path}\e[22m: 1 failure\e[m
|
36
|
+
TEXT
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Summary
|
6
|
+
module Run
|
7
|
+
def self.example
|
8
|
+
Unstyled.example
|
9
|
+
end
|
10
|
+
|
11
|
+
module Unstyled
|
12
|
+
def self.example
|
13
|
+
<<~TEXT
|
14
|
+
Attempted 222 files: 200 completed, 20 aborted, 2 not found
|
15
|
+
1111 tests in 0.00 seconds (Inf tests/sec)
|
16
|
+
1000 passed, 111 failed, 11+ skipped
|
17
|
+
TEXT
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
module Styled
|
22
|
+
def self.example
|
23
|
+
<<~TEXT
|
24
|
+
Attempted 222 files: 200 completed, \e[1;31m20 aborted\e[39;22m, \e[31m2 not found\e[m
|
25
|
+
1111 tests in 0.00 seconds (Inf tests/sec)\e[m
|
26
|
+
\e[32m1000 passed\e[39m, \e[1;31m111 failed\e[39;22m, \e[33m11+ skipped\e[m
|
27
|
+
TEXT
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
module Initial
|
32
|
+
def self.unstyled
|
33
|
+
<<~TEXT
|
34
|
+
Attempted 0 files: 0 completed, 0 aborted, 0 not found
|
35
|
+
0 tests in 0.00 seconds (NaN tests/sec)
|
36
|
+
0 passed, 0 failed, 0 skipped
|
37
|
+
TEXT
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.styled
|
41
|
+
<<~TEXT
|
42
|
+
Attempted 0 files: 0 completed, 0 aborted, 0 not found\e[m
|
43
|
+
0 tests in 0.00 seconds (NaN tests/sec)\e[m
|
44
|
+
\e[2;3m0 passed\e[23;22m, 0 failed, 0 skipped\e[m
|
45
|
+
TEXT
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Controls
|
5
|
+
module Summary
|
6
|
+
def self.example
|
7
|
+
Unstyled.example
|
8
|
+
end
|
9
|
+
|
10
|
+
module Unstyled
|
11
|
+
def self.example
|
12
|
+
<<~TEXT
|
13
|
+
#{File::Unstyled.example}
|
14
|
+
#{Run::Unstyled.example}
|
15
|
+
TEXT
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
module Styled
|
20
|
+
def self.example
|
21
|
+
<<~TEXT
|
22
|
+
#{File::Styled.example}\e[m
|
23
|
+
#{Run::Styled.example}\e[m
|
24
|
+
TEXT
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
module Initial
|
29
|
+
def self.unstyled
|
30
|
+
<<~TEXT
|
31
|
+
#{Run::Initial.unstyled}
|
32
|
+
TEXT
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.styled
|
36
|
+
<<~TEXT
|
37
|
+
#{Run::Initial.styled}\e[m
|
38
|
+
TEXT
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
require 'test_bench_bootstrap/test_bench/output/controls'
|
4
|
+
|
5
|
+
require 'test_bench_bootstrap/test_bench/run/controls/session'
|
6
|
+
require 'test_bench_bootstrap/test_bench/run/controls/telemetry'
|
7
|
+
|
8
|
+
require 'test_bench_bootstrap/test_bench/run/controls/events'
|
9
|
+
require 'test_bench_bootstrap/test_bench/run/controls/message'
|
10
|
+
require 'test_bench_bootstrap/test_bench/run/controls/random'
|
11
|
+
require 'test_bench_bootstrap/test_bench/run/controls/status'
|
12
|
+
require 'test_bench_bootstrap/test_bench/run/controls/time'
|
13
|
+
|
14
|
+
require 'test_bench_bootstrap/test_bench/run/controls/path'
|
15
|
+
|
16
|
+
require 'test_bench_bootstrap/test_bench/run/controls/summary'
|
17
|
+
require 'test_bench_bootstrap/test_bench/run/controls/summary/file'
|
18
|
+
require 'test_bench_bootstrap/test_bench/run/controls/summary/file/totals'
|
19
|
+
require 'test_bench_bootstrap/test_bench/run/controls/summary/file/info'
|
20
|
+
require 'test_bench_bootstrap/test_bench/run/controls/summary/run'
|
@@ -0,0 +1,146 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
def summary
|
5
|
+
@summary ||= Summary::Substitute.build
|
6
|
+
end
|
7
|
+
attr_writer :summary
|
8
|
+
|
9
|
+
def select_files
|
10
|
+
@select_files ||= SelectFiles::Substitute.build
|
11
|
+
end
|
12
|
+
attr_writer :select_files
|
13
|
+
|
14
|
+
def session
|
15
|
+
@session ||= Session::Substitute.build
|
16
|
+
end
|
17
|
+
attr_writer :session
|
18
|
+
|
19
|
+
def print_summary
|
20
|
+
@print_summary.nil? ?
|
21
|
+
@print_summary = true :
|
22
|
+
@print_summary
|
23
|
+
end
|
24
|
+
attr_writer :print_summary
|
25
|
+
alias :print_summary? :print_summary
|
26
|
+
|
27
|
+
def abort_on_failure
|
28
|
+
@abort_on_failure.nil? ?
|
29
|
+
@abort_on_failure = false :
|
30
|
+
@abort_on_failure
|
31
|
+
end
|
32
|
+
attr_writer :abort_on_failure
|
33
|
+
alias :abort_on_failure? :abort_on_failure
|
34
|
+
|
35
|
+
def path_sequence
|
36
|
+
@path_sequence ||= 0
|
37
|
+
end
|
38
|
+
attr_writer :path_sequence
|
39
|
+
|
40
|
+
def self.build(exclude: nil, print_summary: nil, abort_on_failure: nil, session: nil)
|
41
|
+
if print_summary.nil?
|
42
|
+
print_summary = Defaults.print_summary
|
43
|
+
end
|
44
|
+
|
45
|
+
if abort_on_failure.nil?
|
46
|
+
abort_on_failure = Defaults.abort_on_failure
|
47
|
+
end
|
48
|
+
|
49
|
+
instance = new
|
50
|
+
|
51
|
+
instance.print_summary = print_summary
|
52
|
+
instance.abort_on_failure = abort_on_failure
|
53
|
+
|
54
|
+
Session.configure(instance, session:)
|
55
|
+
|
56
|
+
Summary.configure(instance)
|
57
|
+
|
58
|
+
SelectFiles.configure(instance, exclude_patterns: exclude)
|
59
|
+
|
60
|
+
session = instance.session
|
61
|
+
|
62
|
+
Output.register_telemetry_sink(session)
|
63
|
+
|
64
|
+
summary = instance.summary
|
65
|
+
session.register_telemetry_sink(summary)
|
66
|
+
|
67
|
+
instance
|
68
|
+
end
|
69
|
+
|
70
|
+
def self.configure(receiver, attr_name: nil)
|
71
|
+
attr_name ||= :run
|
72
|
+
|
73
|
+
session = establish_session
|
74
|
+
|
75
|
+
instance = build(session:)
|
76
|
+
receiver.public_send(:"#{attr_name}=", instance)
|
77
|
+
end
|
78
|
+
|
79
|
+
def self.call(path, exclude: nil)
|
80
|
+
session = establish_session
|
81
|
+
|
82
|
+
instance = build(exclude:, session:)
|
83
|
+
|
84
|
+
instance.() do
|
85
|
+
instance << path
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def self.establish_session
|
90
|
+
session = Session.build
|
91
|
+
Session.establish(session)
|
92
|
+
session
|
93
|
+
end
|
94
|
+
|
95
|
+
def call(&block)
|
96
|
+
block.(self)
|
97
|
+
|
98
|
+
session.isolate.stop
|
99
|
+
|
100
|
+
if print_summary?
|
101
|
+
summary.print
|
102
|
+
end
|
103
|
+
|
104
|
+
result = session.result
|
105
|
+
Session::Result.resolve(result)
|
106
|
+
end
|
107
|
+
|
108
|
+
def path(path)
|
109
|
+
self.path_sequence += 1
|
110
|
+
|
111
|
+
select_files.(path) do |file_path|
|
112
|
+
if abort_on_failure?
|
113
|
+
case session.result
|
114
|
+
when Session::Result.aborted, Session::Result.failed
|
115
|
+
next
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
session.execute(file_path)
|
120
|
+
end
|
121
|
+
|
122
|
+
rescue SelectFiles::PathNotFoundError
|
123
|
+
session.execute(path)
|
124
|
+
end
|
125
|
+
alias :<< :path
|
126
|
+
|
127
|
+
def ran?
|
128
|
+
path_sequence > 0
|
129
|
+
end
|
130
|
+
|
131
|
+
module Defaults
|
132
|
+
def self.abort_on_failure
|
133
|
+
env_abort_on_failure = ENV.fetch('TEST_BENCH_ABORT_ON_FAILURE', 'off')
|
134
|
+
|
135
|
+
env_abort_on_failure == 'on'
|
136
|
+
end
|
137
|
+
|
138
|
+
def self.print_summary
|
139
|
+
env_print_summary = ENV.fetch('TEST_BENCH_OUTPUT_SUMMARY', 'on')
|
140
|
+
|
141
|
+
env_print_summary == 'on'
|
142
|
+
end
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
class SelectFiles
|
5
|
+
module Substitute
|
6
|
+
def self.build
|
7
|
+
SelectFiles.new
|
8
|
+
end
|
9
|
+
|
10
|
+
class SelectFiles
|
11
|
+
def files
|
12
|
+
@files ||= []
|
13
|
+
end
|
14
|
+
attr_writer :files
|
15
|
+
alias :set_files :files=
|
16
|
+
|
17
|
+
def paths
|
18
|
+
@paths ||= []
|
19
|
+
end
|
20
|
+
|
21
|
+
attr_accessor :raise_path_not_found_error
|
22
|
+
|
23
|
+
def raise_path_not_found_error!
|
24
|
+
self.raise_path_not_found_error = true
|
25
|
+
end
|
26
|
+
|
27
|
+
def call(path, &block)
|
28
|
+
if raise_path_not_found_error
|
29
|
+
raise PathNotFoundError
|
30
|
+
end
|
31
|
+
|
32
|
+
self.paths << path
|
33
|
+
|
34
|
+
files.each(&block)
|
35
|
+
end
|
36
|
+
|
37
|
+
def path?(path)
|
38
|
+
paths.include?(path)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
class SelectFiles
|
5
|
+
PathNotFoundError = Class.new(RuntimeError)
|
6
|
+
|
7
|
+
def exclude_patterns
|
8
|
+
@exclude_patterns ||= []
|
9
|
+
end
|
10
|
+
attr_writer :exclude_patterns
|
11
|
+
|
12
|
+
attr_accessor :apex_directory
|
13
|
+
|
14
|
+
def self.build(exclude_patterns: nil)
|
15
|
+
exclude_patterns ||= Defaults.exclude_file_patterns
|
16
|
+
|
17
|
+
exclude_patterns = Array(exclude_patterns)
|
18
|
+
|
19
|
+
instance = new
|
20
|
+
instance.exclude_patterns = exclude_patterns
|
21
|
+
instance
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.configure(receiver, exclude_patterns: nil, attr_name: nil)
|
25
|
+
attr_name ||= :select_files
|
26
|
+
|
27
|
+
instance = build(exclude_patterns:)
|
28
|
+
receiver.public_send(:"#{attr_name}=", instance)
|
29
|
+
end
|
30
|
+
|
31
|
+
def call(path, &block)
|
32
|
+
full_path = ::File.expand_path(path, apex_directory)
|
33
|
+
if not ::File.exist?(full_path)
|
34
|
+
raise PathNotFoundError, "No such file or directory - #{full_path}"
|
35
|
+
end
|
36
|
+
|
37
|
+
extension = ::File.extname(path)
|
38
|
+
|
39
|
+
if extension.empty?
|
40
|
+
directory_path = path
|
41
|
+
glob_pattern = ::File.join(directory_path, '**', '*.rb')
|
42
|
+
else
|
43
|
+
file_path = path
|
44
|
+
glob_pattern = file_path
|
45
|
+
end
|
46
|
+
|
47
|
+
Dir.glob(glob_pattern, base: apex_directory) do |file|
|
48
|
+
excluded = exclude_patterns.any? do |exclude_pattern|
|
49
|
+
::File.fnmatch?(exclude_pattern, file, ::File::FNM_EXTGLOB)
|
50
|
+
end
|
51
|
+
|
52
|
+
if excluded
|
53
|
+
next
|
54
|
+
end
|
55
|
+
|
56
|
+
block.(file)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
module Defaults
|
61
|
+
def self.exclude_file_patterns
|
62
|
+
env_exclude_file_pattern = ENV.fetch('TEST_BENCH_EXCLUDE_FILE_PATTERN', '*_init.rb')
|
63
|
+
|
64
|
+
env_exclude_file_pattern.split(':')
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
module Substitute
|
5
|
+
def self.build
|
6
|
+
Run.new
|
7
|
+
end
|
8
|
+
|
9
|
+
class Run
|
10
|
+
attr_accessor :result
|
11
|
+
alias :set_result :result=
|
12
|
+
|
13
|
+
attr_accessor :ran
|
14
|
+
def ran?
|
15
|
+
ran ? true : false
|
16
|
+
end
|
17
|
+
|
18
|
+
def paths
|
19
|
+
@paths ||= []
|
20
|
+
end
|
21
|
+
|
22
|
+
def call(&block)
|
23
|
+
block.(self)
|
24
|
+
|
25
|
+
result
|
26
|
+
end
|
27
|
+
|
28
|
+
def path(path)
|
29
|
+
self.ran = true
|
30
|
+
|
31
|
+
paths << path
|
32
|
+
end
|
33
|
+
alias :<< :path
|
34
|
+
|
35
|
+
def path?(path)
|
36
|
+
paths.include?(path)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module TestBenchBootstrap
|
2
|
+
module TestBench
|
3
|
+
class Run
|
4
|
+
class Summary
|
5
|
+
module Substitute
|
6
|
+
def self.build
|
7
|
+
Summary.new
|
8
|
+
end
|
9
|
+
|
10
|
+
class Summary < Summary
|
11
|
+
def printed?(...)
|
12
|
+
writer.written?(...)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|