test_bench-run 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.
Files changed (35) hide show
  1. checksums.yaml +7 -0
  2. data/lib/test_bench/run/controls/directory.rb +54 -0
  3. data/lib/test_bench/run/controls/event_data.rb +7 -0
  4. data/lib/test_bench/run/controls/events/event_data.rb +9 -0
  5. data/lib/test_bench/run/controls/events/file_crashed.rb +109 -0
  6. data/lib/test_bench/run/controls/events/file_finished.rb +56 -0
  7. data/lib/test_bench/run/controls/events/file_started.rb +47 -0
  8. data/lib/test_bench/run/controls/events/finished.rb +50 -0
  9. data/lib/test_bench/run/controls/events/session.rb +9 -0
  10. data/lib/test_bench/run/controls/events/started.rb +41 -0
  11. data/lib/test_bench/run/controls/exception.rb +101 -0
  12. data/lib/test_bench/run/controls/executor.rb +56 -0
  13. data/lib/test_bench/run/controls/file/create.rb +69 -0
  14. data/lib/test_bench/run/controls/file/pattern.rb +29 -0
  15. data/lib/test_bench/run/controls/file.rb +180 -0
  16. data/lib/test_bench/run/controls/path.rb +15 -0
  17. data/lib/test_bench/run/controls/process_id.rb +7 -0
  18. data/lib/test_bench/run/controls/random.rb +7 -0
  19. data/lib/test_bench/run/controls/result.rb +7 -0
  20. data/lib/test_bench/run/controls/time.rb +7 -0
  21. data/lib/test_bench/run/controls.rb +26 -0
  22. data/lib/test_bench/run/events.rb +12 -0
  23. data/lib/test_bench/run/executor/serial.rb +112 -0
  24. data/lib/test_bench/run/executor/substitute.rb +45 -0
  25. data/lib/test_bench/run/executor.rb +44 -0
  26. data/lib/test_bench/run/file/substitute.rb +41 -0
  27. data/lib/test_bench/run/file.rb +73 -0
  28. data/lib/test_bench/run/get_files/substitute.rb +46 -0
  29. data/lib/test_bench/run/get_files.rb +72 -0
  30. data/lib/test_bench/run/output/file.rb +129 -0
  31. data/lib/test_bench/run/output/summary/error.rb +139 -0
  32. data/lib/test_bench/run/output/summary.rb +179 -0
  33. data/lib/test_bench/run/run.rb +101 -0
  34. data/lib/test_bench/run.rb +19 -0
  35. metadata +103 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6cc31ef71213961951028bc33a31f17ba40ba1401f18111ed20454be6236e3b4
4
+ data.tar.gz: 98d146a75264aef9aa48e3e51366be7a7837830156908540b34df9723a36fdd0
5
+ SHA512:
6
+ metadata.gz: 01bf99f7760ff77df99bf40991e91753fe0cc1af6d9ecac45747a34687a193bdbd0d5d6f3a6ada6d2bea1ca04fe527f6fe10ffa3fe7b002b59449665b919b8b3
7
+ data.tar.gz: 244160004df72f41db3b3304ad91a36319ccbdf6fefc7c4ee40e13749ce3f1876a2e8ed2884930a7c1178cd638d6ae6987a5ca45bed1b3df258a4e767d14ffb3
@@ -0,0 +1,54 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ module Directory
5
+ def self.example(name=nil, parent_directory: nil, root_directory: nil)
6
+ name ||= self.name
7
+ parent_directory ||= self.parent_directory
8
+
9
+ ::File.join(parent_directory, name)
10
+ end
11
+
12
+ def self.random(parent_directory: nil)
13
+ name = Name.random
14
+
15
+ example(name, parent_directory:)
16
+ end
17
+
18
+ def self.name
19
+ Name.example
20
+ end
21
+
22
+ def self.parent_directory
23
+ File::Create.directory
24
+ end
25
+
26
+ def self.root_directory
27
+ File::Create.root_directory
28
+ end
29
+
30
+ module Name
31
+ def self.example
32
+ "some-directory"
33
+ end
34
+
35
+ def self.random
36
+ suffix = Random.string
37
+
38
+ "#{example}-#{suffix}"
39
+ end
40
+ end
41
+
42
+ module Create
43
+ def self.call(parent_directory: nil)
44
+ directory = Directory.random(parent_directory:)
45
+
46
+ ::Dir.mkdir(directory)
47
+
48
+ directory
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,7 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ EventData = Telemetry::Controls::EventData
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,9 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ module Events
5
+ EventData = Session::Controls::Events::EventData
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,109 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ module Events
5
+ module FileCrashed
6
+ extend EventData
7
+
8
+ def self.example(file: nil, error_message: nil, error_text: nil, process_id: nil, time: nil)
9
+ file ||= self.file
10
+ error_message ||= self.error_message
11
+ error_text ||= self.error_text
12
+ process_id ||= self.process_id
13
+ time ||= self.time
14
+
15
+ Run::Events::FileCrashed.build(file, error_message, error_text, process_id:, time:)
16
+ end
17
+
18
+ def self.random
19
+ Random.example
20
+ end
21
+
22
+ def self.file
23
+ File::Test::Local.example
24
+ end
25
+
26
+ def self.error_message
27
+ ErrorMessage.example
28
+ end
29
+
30
+ def self.error_text
31
+ ErrorText.example
32
+ end
33
+
34
+ def self.process_id
35
+ ProcessID.example
36
+ end
37
+
38
+ def self.time
39
+ Time.example
40
+ end
41
+
42
+ module Random
43
+ extend EventData
44
+
45
+ def self.example(file: nil, error_message: nil, error_text: nil, process_id: nil, time: nil)
46
+ file ||= File::Test::Local.random
47
+ error_message ||= ErrorMessage.random
48
+ error_text ||= ErrorText.random
49
+ process_id ||= ProcessID.random
50
+ time ||= Time.random
51
+
52
+ FileCrashed.example(file:, error_message:, error_text:, process_id:, time:)
53
+ end
54
+ end
55
+
56
+ module ErrorText
57
+ def self.example(...)
58
+ exception = Exception.example
59
+
60
+ exception.full_message
61
+ end
62
+
63
+ def self.random
64
+ exception = Exception.random
65
+
66
+ exception.full_message
67
+ end
68
+ end
69
+
70
+ module ErrorMessage
71
+ def self.example(file: nil, message: nil, exception_class: nil)
72
+ file ||= self.file
73
+
74
+ backtrace_frame = Exception::Backtrace::Frame.example(file:)
75
+
76
+ exception = Exception.example(backtrace_frame:, message:, exception_class:)
77
+
78
+ get(exception)
79
+ end
80
+
81
+ def self.random
82
+ Random.example
83
+ end
84
+
85
+ def self.file
86
+ File::Implementation::Local.example
87
+ end
88
+
89
+ def self.get(exception)
90
+ exception.full_message(order: :top, highlight: false).each_line(chomp: true).first
91
+ end
92
+
93
+ module Random
94
+ def self.example(...)
95
+ exception = Exception::Random.example(...)
96
+
97
+ ErrorMessage.get(exception)
98
+ end
99
+
100
+ def self.file
101
+ File::Implementation::Local.random
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,56 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ module Events
5
+ module FileFinished
6
+ extend EventData
7
+
8
+ def self.example(file: nil, result: nil, process_id: nil, time: nil)
9
+ file ||= self.file
10
+ result = self.result if result.nil?
11
+ process_id ||= self.process_id
12
+ time ||= self.time
13
+
14
+ Run::Events::FileFinished.build(file, result, process_id:, time:)
15
+ end
16
+
17
+ def self.random
18
+ Random.example
19
+ end
20
+
21
+ def self.file
22
+ File::Test::Local.example
23
+ end
24
+
25
+ def self.result
26
+ Result.example
27
+ end
28
+
29
+ def self.process_id
30
+ ProcessID.example
31
+ end
32
+
33
+ def self.time
34
+ Time.example
35
+ end
36
+
37
+ module Random
38
+ extend EventData
39
+
40
+ def self.example(file: nil, result: nil, process_id: nil, time: nil)
41
+ file ||= File::Test::Local.random
42
+ process_id ||= ProcessID.random
43
+ time ||= Time.random
44
+
45
+ if result.nil?
46
+ result = Result.random
47
+ end
48
+
49
+ FileFinished.example(file:, result:, process_id:, time:)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,47 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ module Events
5
+ module FileStarted
6
+ extend EventData
7
+
8
+ def self.example(file: nil, process_id: nil, time: nil)
9
+ file ||= self.file
10
+ process_id ||= self.process_id
11
+ time ||= self.time
12
+
13
+ Run::Events::FileStarted.build(file, process_id:, time:)
14
+ end
15
+
16
+ def self.random
17
+ Random.example
18
+ end
19
+
20
+ def self.file
21
+ File::Test::Local.example
22
+ end
23
+
24
+ def self.process_id
25
+ ProcessID.example
26
+ end
27
+
28
+ def self.time
29
+ Time.example
30
+ end
31
+
32
+ module Random
33
+ extend EventData
34
+
35
+ def self.example(file: nil, process_id: nil, time: nil)
36
+ file ||= File::Test::Local.random
37
+ process_id ||= ProcessID.random
38
+ time ||= Time.random
39
+
40
+ FileStarted.example(file:, process_id:, time:)
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,50 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ module Events
5
+ module Finished
6
+ extend EventData
7
+
8
+ def self.example(result: nil, process_id: nil, time: nil)
9
+ result = self.result if result.nil?
10
+ process_id ||= self.process_id
11
+ time ||= self.time
12
+
13
+ Run::Events::Finished.build(result, process_id:, time:)
14
+ end
15
+
16
+ def self.random
17
+ Random.example
18
+ end
19
+
20
+ def self.result
21
+ Result.example
22
+ end
23
+
24
+ def self.process_id
25
+ ProcessID.example
26
+ end
27
+
28
+ def self.time
29
+ Time.example
30
+ end
31
+
32
+ module Random
33
+ extend EventData
34
+
35
+ def self.example(result: nil, process_id: nil, time: nil)
36
+ process_id ||= ProcessID.random
37
+ time ||= Time.random
38
+
39
+ if result.nil?
40
+ result = Result.random
41
+ end
42
+
43
+ Finished.example(result:, process_id:, time:)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,9 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ module Events
5
+ Session = Session::Controls::Events
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,41 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ module Events
5
+ module Started
6
+ extend EventData
7
+
8
+ def self.example(process_id: nil, time: nil)
9
+ process_id ||= self.process_id
10
+ time ||= self.time
11
+
12
+ Run::Events::Started.build(process_id:, time:)
13
+ end
14
+
15
+ def self.random
16
+ Random.example
17
+ end
18
+
19
+ def self.process_id
20
+ ProcessID.example
21
+ end
22
+
23
+ def self.time
24
+ Time.example
25
+ end
26
+
27
+ module Random
28
+ extend EventData
29
+
30
+ def self.example(process_id: nil, time: nil)
31
+ process_id ||= ProcessID.random
32
+ time ||= Time.random
33
+
34
+ Started.example(process_id:, time:)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,101 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ module Exception
5
+ def self.example(backtrace_frame: nil, message: nil, exception_class: nil)
6
+ exception = Fixture::Controls::Exception.example(message:, exception_class:)
7
+
8
+ backtrace = Backtrace.example(backtrace_frame)
9
+ exception.set_backtrace(backtrace)
10
+
11
+ exception
12
+ end
13
+
14
+ def self.random
15
+ Random.example
16
+ end
17
+
18
+ def self.message
19
+ Message.example
20
+ end
21
+
22
+ def self.backtrace_frame
23
+ BacktraceFrame.example
24
+ end
25
+
26
+ Example = Fixture::Controls::Exception::Example
27
+
28
+ Message = Fixture::Controls::Exception::Message
29
+
30
+ module Random
31
+ def self.example(message: nil, backtrace_frame: nil)
32
+ message ||= Message.random
33
+ backtrace_frame ||= Backtrace::Frame.random
34
+
35
+ Exception.example(message:, backtrace_frame:)
36
+ end
37
+ end
38
+
39
+ module Backtrace
40
+ def self.example(frame=nil)
41
+ frame ||= self.frame
42
+
43
+ [frame]
44
+ end
45
+
46
+ def self.random
47
+ frame = Frame.random
48
+
49
+ example(frame)
50
+ end
51
+
52
+ def self.frame
53
+ Frame.example
54
+ end
55
+
56
+ module Frame
57
+ def self.example(file: nil, line_number: nil, method_name: nil)
58
+ file ||= self.file
59
+ line_number ||= self.line_number
60
+ method_name ||= self.method_name
61
+
62
+ "#{file}:#{line_number}:in `#{method_name}'"
63
+ end
64
+
65
+ def self.random
66
+ Random.example
67
+ end
68
+
69
+ def self.file
70
+ File::Implementation.example
71
+ end
72
+
73
+ def self.line_number
74
+ 11
75
+ end
76
+
77
+ def self.method_name
78
+ 'some_method'
79
+ end
80
+
81
+ module Random
82
+ def self.example(file: nil, line_number: nil, method_name: nil)
83
+ file ||= File::Implementation.random
84
+ line_number ||= Controls::Random.integer
85
+ method_name ||= self.method_name
86
+
87
+ Frame.example(file:, line_number:, method_name:)
88
+ end
89
+
90
+ def self.method_name
91
+ suffix = Controls::Random.string
92
+
93
+ "#{Frame.method_name}_#{suffix}"
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
@@ -0,0 +1,56 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ module Executor
5
+ def self.example
6
+ Example.new
7
+ end
8
+
9
+ class Example
10
+ include TestBench::Run::Executor
11
+
12
+ attr_accessor :executed_file
13
+
14
+ attr_accessor :started
15
+ def started? = !!started
16
+
17
+ attr_accessor :finished
18
+ def finished? = !!finished
19
+
20
+ attr_accessor :configured
21
+ def configured? = !!configured
22
+
23
+ def configure
24
+ self.configured = true
25
+ end
26
+
27
+ def start
28
+ self.started = true
29
+ end
30
+
31
+ def execute(file)
32
+ self.executed_file = file
33
+ end
34
+
35
+ def executed?(file)
36
+ executed_file == file
37
+ end
38
+
39
+ def finish
40
+ self.finished = true
41
+ end
42
+ end
43
+
44
+ module NotImplemented
45
+ def self.example
46
+ Example.new
47
+ end
48
+
49
+ class Example
50
+ include TestBench::Run::Executor
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,69 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ module File
5
+ module Create
6
+ def self.call(contents: nil, directory: nil)
7
+ contents ||= self.contents
8
+ directory ||= self.directory
9
+
10
+ filename = File::Name::Random.example
11
+
12
+ file = ::File.join(directory, filename)
13
+
14
+ ::File.write(file, contents)
15
+
16
+ file
17
+ end
18
+
19
+ def self.contents
20
+ '# Some file'
21
+ end
22
+
23
+ def self.directory
24
+ 'tmp'
25
+ end
26
+
27
+ module Pass
28
+ def self.call(directory: nil)
29
+ Create.(contents:, directory:)
30
+ end
31
+
32
+ def self.contents
33
+ Create.contents
34
+ end
35
+ end
36
+
37
+ module Failure
38
+ def self.call(session: nil, directory: nil)
39
+ contents = contents(session:)
40
+
41
+ Create.(contents:, directory:)
42
+ end
43
+
44
+ def self.contents(session: nil)
45
+ session ||= Session.new
46
+
47
+ <<~RUBY
48
+ session = ObjectSpace._id2ref(#{session.object_id})
49
+ session.test do
50
+ session.assert(false)
51
+ end
52
+ RUBY
53
+ end
54
+ end
55
+
56
+ module Crash
57
+ def self.call(directory: nil)
58
+ Create.(contents:, directory:)
59
+ end
60
+
61
+ def self.contents
62
+ "raise #{Exception}.example"
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,29 @@
1
+ module TestBench
2
+ class Run
3
+ module Controls
4
+ module File
5
+ module Pattern
6
+ def self.example
7
+ Any.example
8
+ end
9
+
10
+ module Any
11
+ def self.example
12
+ '*'
13
+ end
14
+ end
15
+
16
+ module None
17
+ def self.example
18
+ random
19
+ end
20
+
21
+ def self.random
22
+ Controls::Random.string
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end