test_bench-run 2.1.0.0 → 2.1.0.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f86789849939cac7ca7d67385058748f8e44655b7099caa24ef3e6d18e31a2f3
4
- data.tar.gz: 3db57846d485feb8aee9eac44335d60916b74eb9ae70bae7530450b61aa27b8e
3
+ metadata.gz: dd25020bbd6d5fad214e39fa5c0d9828c5ec723c63cb6be33203e7448b6d31d4
4
+ data.tar.gz: 16686bcaf8ca4074a5b24fd02609d36a7a43ec08c71646f31ff7ad85ed80f43d
5
5
  SHA512:
6
- metadata.gz: 92c0cf6a5a3604038d2e5ab391b523196bb28e4273439b0e80da573cd9b290faa672cfcdcea932edf021b86f8005b8dd48504988fd2bb207f67d06c20247522e
7
- data.tar.gz: 54e52ced3ea8aef27b7f5e881c25586d3df4da6a740910f7b4985b64e06d850cf05de731bc69de867e1088105df788101772385eccedcb70f2068ee404067d09
6
+ metadata.gz: 2156b6636a386a6a8a101c44ed8c1b393393a0569e8e40a206b1ea096cfa33bf1fc7a922fa2104d6ceea31bcf24a373a8f6cc7d62da576685162f6bae23fadf8
7
+ data.tar.gz: 7fedfc204b5ceba903e596ba9c788c401c14e04cb8e75934276b7a7c7aa9485bc3b5fc9d20a9ee29c7701c701c93446cc51cc39319f6d0e76264c4214c4c0264
@@ -4,111 +4,15 @@ module TestBench
4
4
  class Serial
5
5
  include Executor
6
6
 
7
- attr_accessor :file_reader
8
- attr_accessor :file_writer
9
- attr_accessor :telemetry_reader
10
- attr_accessor :telemetry_writer
11
-
12
- def session_store
13
- @session_store ||= Session::Store.new
14
- end
15
- attr_writer :session_store
16
-
17
- def configure
18
- Session::Store.configure(self)
19
- end
20
-
21
- def start
22
- self.file_reader, self.file_writer = ::IO.pipe(flags: ::IO::SYNC)
23
- self.telemetry_reader, self.telemetry_writer = ::IO.pipe(flags: ::IO::SYNC)
24
-
25
- fork do
26
- file_writer.close
27
- telemetry_reader.close
28
-
29
- start!
30
- end
31
-
32
- file_reader.close
33
- telemetry_writer.close
7
+ def run_file
8
+ @run_file ||= Run::File.build
34
9
  end
35
-
36
- def start!
37
- telemetry_sink = Telemetry::Sink::File.new(telemetry_writer)
38
-
39
- session = Session.build do |telemetry|
40
- telemetry.register(telemetry_sink)
41
- end
42
-
43
- session_store.reset(session)
44
-
45
- run_file = Run::File.build(session:)
46
-
47
- until file_reader.eof?
48
- file = file_reader.gets(chomp: true)
49
-
50
- run_file.(file)
51
- end
52
-
53
- rescue => exception
54
-
55
- ensure
56
- if not exception.nil?
57
- fork { start! }
58
-
59
- file_reader.close
60
- telemetry_writer.close
61
-
62
- exit(false)
63
- end
64
- end
65
- # Must refer to line containing "fork { start! }"
66
- def fork_line = __LINE__ - 9
10
+ attr_writer :run_file
67
11
 
68
12
  def execute(file)
69
- file_writer.puts(file)
70
-
71
- session = session_store.fetch
72
-
73
- session_projection = Session::Projection.new(session)
74
-
75
- loop do
76
- event_text = telemetry_reader.gets
77
-
78
- event_data = Telemetry::EventData.load(event_text)
79
- session.telemetry.record(event_data)
80
-
81
- session_projection.(event_data)
82
-
83
- if event_data.type == :FileCrashed
84
- session.record_failure
85
- dump_exception_text(event_data)
86
- break
87
- end
88
-
89
- if event_data.type == :FileFinished
90
- break
91
- end
92
- end
93
- end
94
-
95
- def finish
96
- file_writer.close
97
- telemetry_reader.close
98
-
99
- ::Process.waitall
100
- end
101
-
102
- def dump_exception_text(file_crashed_data)
103
- error_text = file_crashed_data.data.last
104
-
105
- error_text.gsub!(backtrace_fork_pattern, '')
106
-
107
- STDERR.write("#{error_text}\n")
108
- end
109
-
110
- def backtrace_fork_pattern
111
- @backtrace_fork_pattern ||= /^\t.*#{__FILE__}:#{fork_line}.*?\n/m
13
+ run_file.(file)
14
+ rescue => exception
15
+ STDERR.write("#{exception.full_message}\n")
112
16
  end
113
17
  end
114
18
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test_bench-run
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0.0
4
+ version: 2.1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Ladd