nano-fast-box 0.0.1
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 +7 -0
- data/nano-fast-box.gemspec +12 -0
- data/simplecov-0.22.0/CHANGELOG.md +191 -0
- data/simplecov-0.22.0/LICENSE +20 -0
- data/simplecov-0.22.0/README.md +974 -0
- data/simplecov-0.22.0/doc/alternate-formatters.md +71 -0
- data/simplecov-0.22.0/doc/commercial-services.md +25 -0
- data/simplecov-0.22.0/doc/editor-integration.md +18 -0
- data/simplecov-0.22.0/lib/minitest/simplecov_plugin.rb +15 -0
- data/simplecov-0.22.0/lib/simplecov/combine/branches_combiner.rb +32 -0
- data/simplecov-0.22.0/lib/simplecov/combine/files_combiner.rb +24 -0
- data/simplecov-0.22.0/lib/simplecov/combine/lines_combiner.rb +43 -0
- data/simplecov-0.22.0/lib/simplecov/combine/results_combiner.rb +60 -0
- data/simplecov-0.22.0/lib/simplecov/combine.rb +30 -0
- data/simplecov-0.22.0/lib/simplecov/command_guesser.rb +64 -0
- data/simplecov-0.22.0/lib/simplecov/configuration.rb +500 -0
- data/simplecov-0.22.0/lib/simplecov/coverage_statistics.rb +56 -0
- data/simplecov-0.22.0/lib/simplecov/default_formatter.rb +20 -0
- data/simplecov-0.22.0/lib/simplecov/defaults.rb +53 -0
- data/simplecov-0.22.0/lib/simplecov/exit_codes/exit_code_handling.rb +29 -0
- data/simplecov-0.22.0/lib/simplecov/exit_codes/maximum_coverage_drop_check.rb +83 -0
- data/simplecov-0.22.0/lib/simplecov/exit_codes/minimum_coverage_by_file_check.rb +54 -0
- data/simplecov-0.22.0/lib/simplecov/exit_codes/minimum_overall_coverage_check.rb +53 -0
- data/simplecov-0.22.0/lib/simplecov/exit_codes.rb +15 -0
- data/simplecov-0.22.0/lib/simplecov/file_list.rb +120 -0
- data/simplecov-0.22.0/lib/simplecov/filter.rb +94 -0
- data/simplecov-0.22.0/lib/simplecov/formatter/multi_formatter.rb +32 -0
- data/simplecov-0.22.0/lib/simplecov/formatter/simple_formatter.rb +25 -0
- data/simplecov-0.22.0/lib/simplecov/formatter.rb +10 -0
- data/simplecov-0.22.0/lib/simplecov/last_run.rb +28 -0
- data/simplecov-0.22.0/lib/simplecov/lines_classifier.rb +48 -0
- data/simplecov-0.22.0/lib/simplecov/load_global_config.rb +8 -0
- data/simplecov-0.22.0/lib/simplecov/no_defaults.rb +4 -0
- data/simplecov-0.22.0/lib/simplecov/process.rb +19 -0
- data/simplecov-0.22.0/lib/simplecov/profiles/bundler_filter.rb +5 -0
- data/simplecov-0.22.0/lib/simplecov/profiles/hidden_filter.rb +5 -0
- data/simplecov-0.22.0/lib/simplecov/profiles/rails.rb +18 -0
- data/simplecov-0.22.0/lib/simplecov/profiles/root_filter.rb +10 -0
- data/simplecov-0.22.0/lib/simplecov/profiles/test_frameworks.rb +8 -0
- data/simplecov-0.22.0/lib/simplecov/profiles.rb +35 -0
- data/simplecov-0.22.0/lib/simplecov/result.rb +94 -0
- data/simplecov-0.22.0/lib/simplecov/result_adapter.rb +30 -0
- data/simplecov-0.22.0/lib/simplecov/result_merger.rb +194 -0
- data/simplecov-0.22.0/lib/simplecov/simulate_coverage.rb +29 -0
- data/simplecov-0.22.0/lib/simplecov/source_file/branch.rb +84 -0
- data/simplecov-0.22.0/lib/simplecov/source_file/line.rb +72 -0
- data/simplecov-0.22.0/lib/simplecov/source_file.rb +355 -0
- data/simplecov-0.22.0/lib/simplecov/useless_results_remover.rb +18 -0
- data/simplecov-0.22.0/lib/simplecov/version.rb +5 -0
- data/simplecov-0.22.0/lib/simplecov.rb +470 -0
- metadata +90 -0
|
@@ -0,0 +1,470 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "English"
|
|
4
|
+
|
|
5
|
+
# Coverage may be inaccurate under JRUBY.
|
|
6
|
+
if defined?(JRUBY_VERSION) && defined?(JRuby) && !org.jruby.RubyInstanceConfig.FULL_TRACE_ENABLED
|
|
7
|
+
|
|
8
|
+
# @see https://github.com/jruby/jruby/issues/1196
|
|
9
|
+
# @see https://github.com/metricfu/metric_fu/pull/226
|
|
10
|
+
# @see https://github.com/simplecov-ruby/simplecov/issues/420
|
|
11
|
+
# @see https://github.com/simplecov-ruby/simplecov/issues/86
|
|
12
|
+
# @see https://jira.codehaus.org/browse/JRUBY-6106
|
|
13
|
+
|
|
14
|
+
warn 'Coverage may be inaccurate; set the "--debug" command line option,' \
|
|
15
|
+
' or do JRUBY_OPTS="--debug"' \
|
|
16
|
+
' or set the "debug.fullTrace=true" option in your .jrubyrc'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
#
|
|
20
|
+
# Code coverage for ruby. Please check out README for a full introduction.
|
|
21
|
+
#
|
|
22
|
+
module SimpleCov
|
|
23
|
+
class << self
|
|
24
|
+
attr_accessor :running, :pid
|
|
25
|
+
|
|
26
|
+
# Basically, should we take care of at_exit behavior or something else?
|
|
27
|
+
# Used by the minitest plugin. See lib/minitest/simplecov_plugin.rb
|
|
28
|
+
attr_accessor :external_at_exit
|
|
29
|
+
alias external_at_exit? external_at_exit
|
|
30
|
+
|
|
31
|
+
#
|
|
32
|
+
# Sets up SimpleCov to run against your project.
|
|
33
|
+
# You can optionally specify a profile to use as well as configuration with a block:
|
|
34
|
+
# SimpleCov.start
|
|
35
|
+
# OR
|
|
36
|
+
# SimpleCov.start 'rails' # using rails profile
|
|
37
|
+
# OR
|
|
38
|
+
# SimpleCov.start do
|
|
39
|
+
# add_filter 'test'
|
|
40
|
+
# end
|
|
41
|
+
# OR
|
|
42
|
+
# SimpleCov.start 'rails' do
|
|
43
|
+
# add_filter 'test'
|
|
44
|
+
# end
|
|
45
|
+
#
|
|
46
|
+
# Please check out the RDoc for SimpleCov::Configuration to find about available config options
|
|
47
|
+
#
|
|
48
|
+
def start(profile = nil, &block)
|
|
49
|
+
require "coverage"
|
|
50
|
+
initial_setup(profile, &block)
|
|
51
|
+
require_relative "./simplecov/process" if SimpleCov.enabled_for_subprocesses? &&
|
|
52
|
+
::Process.respond_to?(:fork)
|
|
53
|
+
|
|
54
|
+
make_parallel_tests_available
|
|
55
|
+
|
|
56
|
+
@result = nil
|
|
57
|
+
self.pid = Process.pid
|
|
58
|
+
|
|
59
|
+
start_coverage_measurement
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
#
|
|
63
|
+
# Collate a series of SimpleCov result files into a single SimpleCov output.
|
|
64
|
+
#
|
|
65
|
+
# You can optionally specify configuration with a block:
|
|
66
|
+
# SimpleCov.collate Dir["simplecov-resultset-*/.resultset.json"]
|
|
67
|
+
# OR
|
|
68
|
+
# SimpleCov.collate Dir["simplecov-resultset-*/.resultset.json"], 'rails' # using rails profile
|
|
69
|
+
# OR
|
|
70
|
+
# SimpleCov.collate Dir["simplecov-resultset-*/.resultset.json"] do
|
|
71
|
+
# add_filter 'test'
|
|
72
|
+
# end
|
|
73
|
+
# OR
|
|
74
|
+
# SimpleCov.collate Dir["simplecov-resultset-*/.resultset.json"], 'rails' do
|
|
75
|
+
# add_filter 'test'
|
|
76
|
+
# end
|
|
77
|
+
#
|
|
78
|
+
# Please check out the RDoc for SimpleCov::Configuration to find about
|
|
79
|
+
# available config options, or checkout the README for more in-depth
|
|
80
|
+
# information about coverage collation
|
|
81
|
+
#
|
|
82
|
+
# By default `collate` ignores the merge_timeout so all results of all files specified will be
|
|
83
|
+
# merged together. If you want to honor the merge_timeout then provide the keyword argument
|
|
84
|
+
# `ignore_timeout: false`.
|
|
85
|
+
#
|
|
86
|
+
def collate(result_filenames, profile = nil, ignore_timeout: true, &block)
|
|
87
|
+
raise "There are no reports to be merged" if result_filenames.empty?
|
|
88
|
+
|
|
89
|
+
initial_setup(profile, &block)
|
|
90
|
+
|
|
91
|
+
# Use the ResultMerger to produce a single, merged result, ready to use.
|
|
92
|
+
@result = ResultMerger.merge_and_store(*result_filenames, ignore_timeout: ignore_timeout)
|
|
93
|
+
|
|
94
|
+
run_exit_tasks!
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
#
|
|
98
|
+
# Returns the result for the current coverage run, merging it across test suites
|
|
99
|
+
# from cache using SimpleCov::ResultMerger if use_merging is activated (default)
|
|
100
|
+
#
|
|
101
|
+
def result
|
|
102
|
+
return @result if result?
|
|
103
|
+
|
|
104
|
+
# Collect our coverage result
|
|
105
|
+
process_coverage_result if running
|
|
106
|
+
|
|
107
|
+
# If we're using merging of results, store the current result
|
|
108
|
+
# first (if there is one), then merge the results and return those
|
|
109
|
+
if use_merging
|
|
110
|
+
wait_for_other_processes
|
|
111
|
+
SimpleCov::ResultMerger.store_result(@result) if result?
|
|
112
|
+
@result = SimpleCov::ResultMerger.merged_result
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
@result
|
|
116
|
+
ensure
|
|
117
|
+
self.running = false
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
#
|
|
121
|
+
# Returns nil if the result has not been computed
|
|
122
|
+
# Otherwise, returns the result
|
|
123
|
+
#
|
|
124
|
+
def result?
|
|
125
|
+
defined?(@result) && @result
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
#
|
|
129
|
+
# Applies the configured filters to the given array of SimpleCov::SourceFile items
|
|
130
|
+
#
|
|
131
|
+
def filtered(files)
|
|
132
|
+
result = files.clone
|
|
133
|
+
filters.each do |filter|
|
|
134
|
+
result = result.reject { |source_file| filter.matches?(source_file) }
|
|
135
|
+
end
|
|
136
|
+
SimpleCov::FileList.new result
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
#
|
|
140
|
+
# Applies the configured groups to the given array of SimpleCov::SourceFile items
|
|
141
|
+
#
|
|
142
|
+
def grouped(files)
|
|
143
|
+
grouped = {}
|
|
144
|
+
grouped_files = []
|
|
145
|
+
groups.each do |name, filter|
|
|
146
|
+
grouped[name] = SimpleCov::FileList.new(files.select { |source_file| filter.matches?(source_file) })
|
|
147
|
+
grouped_files += grouped[name]
|
|
148
|
+
end
|
|
149
|
+
if !groups.empty? && !(other_files = files.reject { |source_file| grouped_files.include?(source_file) }).empty?
|
|
150
|
+
grouped["Ungrouped"] = SimpleCov::FileList.new(other_files)
|
|
151
|
+
end
|
|
152
|
+
grouped
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
#
|
|
156
|
+
# Applies the profile of given name on SimpleCov configuration
|
|
157
|
+
#
|
|
158
|
+
def load_profile(name)
|
|
159
|
+
profiles.load(name)
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
def load_adapter(name)
|
|
163
|
+
warn "#{Kernel.caller.first}: [DEPRECATION] #load_adapter is deprecated. Use #load_profile instead."
|
|
164
|
+
load_profile(name)
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
#
|
|
168
|
+
# Clear out the previously cached .result. Primarily useful in testing
|
|
169
|
+
#
|
|
170
|
+
def clear_result
|
|
171
|
+
@result = nil
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def at_exit_behavior
|
|
175
|
+
# If we are in a different process than called start, don't interfere.
|
|
176
|
+
return if SimpleCov.pid != Process.pid
|
|
177
|
+
|
|
178
|
+
# If SimpleCov is no longer running then don't run exit tasks
|
|
179
|
+
SimpleCov.run_exit_tasks! if SimpleCov.running
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
# @api private
|
|
183
|
+
#
|
|
184
|
+
# Called from at_exit block
|
|
185
|
+
#
|
|
186
|
+
def run_exit_tasks!
|
|
187
|
+
error_exit_status = exit_status_from_exception
|
|
188
|
+
|
|
189
|
+
at_exit.call
|
|
190
|
+
|
|
191
|
+
exit_and_report_previous_error(error_exit_status) if previous_error?(error_exit_status)
|
|
192
|
+
process_results_and_report_error if ready_to_process_results?
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
#
|
|
196
|
+
# @api private
|
|
197
|
+
#
|
|
198
|
+
# Returns the exit status from the exit exception
|
|
199
|
+
#
|
|
200
|
+
def exit_status_from_exception
|
|
201
|
+
# Capture the current exception if it exists
|
|
202
|
+
@exit_exception = $ERROR_INFO
|
|
203
|
+
return nil unless @exit_exception
|
|
204
|
+
|
|
205
|
+
if @exit_exception.is_a?(SystemExit)
|
|
206
|
+
@exit_exception.status
|
|
207
|
+
else
|
|
208
|
+
SimpleCov::ExitCodes::EXCEPTION
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
# @api private
|
|
213
|
+
def previous_error?(error_exit_status)
|
|
214
|
+
# Normally it'd be enough to check for previous error but when running test_unit
|
|
215
|
+
# status is 0
|
|
216
|
+
error_exit_status && error_exit_status != SimpleCov::ExitCodes::SUCCESS
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
#
|
|
220
|
+
# @api private
|
|
221
|
+
#
|
|
222
|
+
# Thinking: Move this behavior earlier so if there was an error we do nothing?
|
|
223
|
+
def exit_and_report_previous_error(exit_status)
|
|
224
|
+
warn("Stopped processing SimpleCov as a previous error not related to SimpleCov has been detected") if print_error_status
|
|
225
|
+
Kernel.exit(exit_status)
|
|
226
|
+
end
|
|
227
|
+
|
|
228
|
+
# @api private
|
|
229
|
+
def ready_to_process_results?
|
|
230
|
+
final_result_process? && result?
|
|
231
|
+
end
|
|
232
|
+
|
|
233
|
+
def process_results_and_report_error
|
|
234
|
+
exit_status = process_result(result)
|
|
235
|
+
|
|
236
|
+
# Force exit with stored status (see github issue #5)
|
|
237
|
+
if exit_status.positive?
|
|
238
|
+
warn("SimpleCov failed with exit #{exit_status} due to a coverage related error") if print_error_status
|
|
239
|
+
Kernel.exit exit_status
|
|
240
|
+
end
|
|
241
|
+
end
|
|
242
|
+
|
|
243
|
+
# @api private
|
|
244
|
+
#
|
|
245
|
+
# Usage:
|
|
246
|
+
# exit_status = SimpleCov.process_result(SimpleCov.result, exit_status)
|
|
247
|
+
#
|
|
248
|
+
def process_result(result)
|
|
249
|
+
result_exit_status = result_exit_status(result)
|
|
250
|
+
write_last_run(result) if result_exit_status == SimpleCov::ExitCodes::SUCCESS
|
|
251
|
+
result_exit_status
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
# @api private
|
|
255
|
+
CoverageLimits = Struct.new(:minimum_coverage, :minimum_coverage_by_file, :maximum_coverage_drop, keyword_init: true)
|
|
256
|
+
def result_exit_status(result)
|
|
257
|
+
coverage_limits = CoverageLimits.new(
|
|
258
|
+
minimum_coverage: minimum_coverage, minimum_coverage_by_file: minimum_coverage_by_file,
|
|
259
|
+
maximum_coverage_drop: maximum_coverage_drop
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
ExitCodes::ExitCodeHandling.call(result, coverage_limits: coverage_limits)
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
#
|
|
266
|
+
# @api private
|
|
267
|
+
#
|
|
268
|
+
def final_result_process?
|
|
269
|
+
# checking for ENV["TEST_ENV_NUMBER"] to determine if the tests are being run in parallel
|
|
270
|
+
!defined?(ParallelTests) || !ENV["TEST_ENV_NUMBER"] || ParallelTests.last_process?
|
|
271
|
+
end
|
|
272
|
+
|
|
273
|
+
#
|
|
274
|
+
# @api private
|
|
275
|
+
#
|
|
276
|
+
def wait_for_other_processes
|
|
277
|
+
return unless defined?(ParallelTests) && final_result_process?
|
|
278
|
+
|
|
279
|
+
ParallelTests.wait_for_other_processes_to_finish
|
|
280
|
+
end
|
|
281
|
+
|
|
282
|
+
#
|
|
283
|
+
# @api private
|
|
284
|
+
#
|
|
285
|
+
def write_last_run(result)
|
|
286
|
+
SimpleCov::LastRun.write(result:
|
|
287
|
+
result.coverage_statistics.transform_values do |stats|
|
|
288
|
+
round_coverage(stats.percent)
|
|
289
|
+
end)
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
#
|
|
293
|
+
# @api private
|
|
294
|
+
#
|
|
295
|
+
# Rounding down to be extra strict, see #679
|
|
296
|
+
def round_coverage(coverage)
|
|
297
|
+
coverage.floor(2)
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
private
|
|
301
|
+
|
|
302
|
+
def initial_setup(profile, &block)
|
|
303
|
+
load_profile(profile) if profile
|
|
304
|
+
configure(&block) if block_given?
|
|
305
|
+
self.running = true
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
#
|
|
309
|
+
# Trigger Coverage.start depends on given config coverage_criterion
|
|
310
|
+
#
|
|
311
|
+
# With Positive branch it supports all coverage measurement types
|
|
312
|
+
# With Negative branch it supports only line coverage measurement type
|
|
313
|
+
#
|
|
314
|
+
def start_coverage_measurement
|
|
315
|
+
# This blog post gives a good run down of the coverage criterias introduced
|
|
316
|
+
# in Ruby 2.5: https://blog.bigbinary.com/2018/04/11/ruby-2-5-supports-measuring-branch-and-method-coverages.html
|
|
317
|
+
# There is also a nice writeup of the different coverage criteria made in this
|
|
318
|
+
# comment https://github.com/simplecov-ruby/simplecov/pull/692#discussion_r281836176 :
|
|
319
|
+
# Ruby < 2.5:
|
|
320
|
+
# https://github.com/ruby/ruby/blob/v1_9_3_374/ext/coverage/coverage.c
|
|
321
|
+
# traditional mode (Array)
|
|
322
|
+
#
|
|
323
|
+
# Ruby 2.5:
|
|
324
|
+
# https://bugs.ruby-lang.org/issues/13901
|
|
325
|
+
# https://github.com/ruby/ruby/blob/v2_5_3/ext/coverage/coverage.c
|
|
326
|
+
# default: traditional/compatible mode (Array)
|
|
327
|
+
# :lines - like traditional mode but using Hash
|
|
328
|
+
# :branches
|
|
329
|
+
# :methods
|
|
330
|
+
# :all - same as lines + branches + methods
|
|
331
|
+
#
|
|
332
|
+
# Ruby >= 2.6:
|
|
333
|
+
# https://bugs.ruby-lang.org/issues/15022
|
|
334
|
+
# https://github.com/ruby/ruby/blob/v2_6_3/ext/coverage/coverage.c
|
|
335
|
+
# default: traditional/compatible mode (Array)
|
|
336
|
+
# :lines - like traditional mode but using Hash
|
|
337
|
+
# :branches
|
|
338
|
+
# :methods
|
|
339
|
+
# :oneshot_lines - can not be combined with lines
|
|
340
|
+
# :all - same as lines + branches + methods
|
|
341
|
+
#
|
|
342
|
+
if coverage_start_arguments_supported?
|
|
343
|
+
start_coverage_with_criteria
|
|
344
|
+
else
|
|
345
|
+
Coverage.start unless Coverage.running?
|
|
346
|
+
end
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
def start_coverage_with_criteria
|
|
350
|
+
start_arguments = coverage_criteria.map do |criterion|
|
|
351
|
+
[lookup_corresponding_ruby_coverage_name(criterion), true]
|
|
352
|
+
end.to_h
|
|
353
|
+
|
|
354
|
+
start_arguments[:eval] = true if coverage_for_eval_enabled?
|
|
355
|
+
|
|
356
|
+
Coverage.start(start_arguments) unless Coverage.running?
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
CRITERION_TO_RUBY_COVERAGE = {
|
|
360
|
+
branch: :branches,
|
|
361
|
+
line: :lines
|
|
362
|
+
}.freeze
|
|
363
|
+
def lookup_corresponding_ruby_coverage_name(criterion)
|
|
364
|
+
CRITERION_TO_RUBY_COVERAGE.fetch(criterion)
|
|
365
|
+
end
|
|
366
|
+
|
|
367
|
+
#
|
|
368
|
+
# Finds files that were to be tracked but were not loaded and initializes
|
|
369
|
+
# the line-by-line coverage to zero (if relevant) or nil (comments / whitespace etc).
|
|
370
|
+
#
|
|
371
|
+
def add_not_loaded_files(result)
|
|
372
|
+
if tracked_files
|
|
373
|
+
result = result.dup
|
|
374
|
+
Dir[tracked_files].each do |file|
|
|
375
|
+
absolute_path = File.expand_path(file)
|
|
376
|
+
result[absolute_path] ||= SimulateCoverage.call(absolute_path)
|
|
377
|
+
end
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
result
|
|
381
|
+
end
|
|
382
|
+
|
|
383
|
+
#
|
|
384
|
+
# Call steps that handle process coverage result
|
|
385
|
+
#
|
|
386
|
+
# @return [Hash]
|
|
387
|
+
#
|
|
388
|
+
def process_coverage_result
|
|
389
|
+
adapt_coverage_result
|
|
390
|
+
remove_useless_results
|
|
391
|
+
result_with_not_loaded_files
|
|
392
|
+
end
|
|
393
|
+
|
|
394
|
+
#
|
|
395
|
+
# Unite the result so it wouldn't matter what coverage type was called
|
|
396
|
+
#
|
|
397
|
+
# @return [Hash]
|
|
398
|
+
#
|
|
399
|
+
def adapt_coverage_result
|
|
400
|
+
@result = SimpleCov::ResultAdapter.call(Coverage.result)
|
|
401
|
+
end
|
|
402
|
+
|
|
403
|
+
#
|
|
404
|
+
# Filter coverage result
|
|
405
|
+
# The result before filter also has result of coverage for files
|
|
406
|
+
# are not related to the project like loaded gems coverage.
|
|
407
|
+
#
|
|
408
|
+
# @return [Hash]
|
|
409
|
+
#
|
|
410
|
+
def remove_useless_results
|
|
411
|
+
@result = SimpleCov::UselessResultsRemover.call(@result)
|
|
412
|
+
end
|
|
413
|
+
|
|
414
|
+
#
|
|
415
|
+
# Initialize result with files that are not included by coverage
|
|
416
|
+
# and added inside the config block
|
|
417
|
+
#
|
|
418
|
+
# @return [Hash]
|
|
419
|
+
#
|
|
420
|
+
def result_with_not_loaded_files
|
|
421
|
+
@result = SimpleCov::Result.new(add_not_loaded_files(@result))
|
|
422
|
+
end
|
|
423
|
+
|
|
424
|
+
# parallel_tests isn't always available, see: https://github.com/grosser/parallel_tests/issues/772
|
|
425
|
+
def make_parallel_tests_available
|
|
426
|
+
return if defined?(ParallelTests)
|
|
427
|
+
return unless probably_running_parallel_tests?
|
|
428
|
+
|
|
429
|
+
require "parallel_tests"
|
|
430
|
+
rescue LoadError
|
|
431
|
+
warn("SimpleCov guessed you were running inside parallel tests but couldn't load it. Please file a bug report with us!")
|
|
432
|
+
end
|
|
433
|
+
|
|
434
|
+
def probably_running_parallel_tests?
|
|
435
|
+
ENV["TEST_ENV_NUMBER"] && ENV["PARALLEL_TEST_GROUPS"]
|
|
436
|
+
end
|
|
437
|
+
end
|
|
438
|
+
end
|
|
439
|
+
|
|
440
|
+
# requires are down here here for a load order reason I'm not sure what it is about
|
|
441
|
+
require "set"
|
|
442
|
+
require "forwardable"
|
|
443
|
+
require_relative "simplecov/configuration"
|
|
444
|
+
SimpleCov.extend SimpleCov::Configuration
|
|
445
|
+
require_relative "simplecov/coverage_statistics"
|
|
446
|
+
require_relative "simplecov/exit_codes"
|
|
447
|
+
require_relative "simplecov/profiles"
|
|
448
|
+
require_relative "simplecov/source_file/line"
|
|
449
|
+
require_relative "simplecov/source_file/branch"
|
|
450
|
+
require_relative "simplecov/source_file"
|
|
451
|
+
require_relative "simplecov/file_list"
|
|
452
|
+
require_relative "simplecov/result"
|
|
453
|
+
require_relative "simplecov/filter"
|
|
454
|
+
require_relative "simplecov/formatter"
|
|
455
|
+
require_relative "simplecov/last_run"
|
|
456
|
+
require_relative "simplecov/lines_classifier"
|
|
457
|
+
require_relative "simplecov/result_merger"
|
|
458
|
+
require_relative "simplecov/command_guesser"
|
|
459
|
+
require_relative "simplecov/version"
|
|
460
|
+
require_relative "simplecov/result_adapter"
|
|
461
|
+
require_relative "simplecov/combine"
|
|
462
|
+
require_relative "simplecov/combine/branches_combiner"
|
|
463
|
+
require_relative "simplecov/combine/files_combiner"
|
|
464
|
+
require_relative "simplecov/combine/lines_combiner"
|
|
465
|
+
require_relative "simplecov/combine/results_combiner"
|
|
466
|
+
require_relative "simplecov/useless_results_remover"
|
|
467
|
+
require_relative "simplecov/simulate_coverage"
|
|
468
|
+
|
|
469
|
+
# Load default config
|
|
470
|
+
require_relative "simplecov/defaults" unless ENV["SIMPLECOV_NO_DEFAULTS"]
|
metadata
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: nano-fast-box
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Andrey78
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 2026-07-06 00:00:00.000000000 Z
|
|
11
|
+
dependencies: []
|
|
12
|
+
description: University research based on simplecov
|
|
13
|
+
email:
|
|
14
|
+
- cakoc614@gmail.com
|
|
15
|
+
executables: []
|
|
16
|
+
extensions: []
|
|
17
|
+
extra_rdoc_files: []
|
|
18
|
+
files:
|
|
19
|
+
- nano-fast-box.gemspec
|
|
20
|
+
- simplecov-0.22.0/CHANGELOG.md
|
|
21
|
+
- simplecov-0.22.0/LICENSE
|
|
22
|
+
- simplecov-0.22.0/README.md
|
|
23
|
+
- simplecov-0.22.0/doc/alternate-formatters.md
|
|
24
|
+
- simplecov-0.22.0/doc/commercial-services.md
|
|
25
|
+
- simplecov-0.22.0/doc/editor-integration.md
|
|
26
|
+
- simplecov-0.22.0/lib/minitest/simplecov_plugin.rb
|
|
27
|
+
- simplecov-0.22.0/lib/simplecov.rb
|
|
28
|
+
- simplecov-0.22.0/lib/simplecov/combine.rb
|
|
29
|
+
- simplecov-0.22.0/lib/simplecov/combine/branches_combiner.rb
|
|
30
|
+
- simplecov-0.22.0/lib/simplecov/combine/files_combiner.rb
|
|
31
|
+
- simplecov-0.22.0/lib/simplecov/combine/lines_combiner.rb
|
|
32
|
+
- simplecov-0.22.0/lib/simplecov/combine/results_combiner.rb
|
|
33
|
+
- simplecov-0.22.0/lib/simplecov/command_guesser.rb
|
|
34
|
+
- simplecov-0.22.0/lib/simplecov/configuration.rb
|
|
35
|
+
- simplecov-0.22.0/lib/simplecov/coverage_statistics.rb
|
|
36
|
+
- simplecov-0.22.0/lib/simplecov/default_formatter.rb
|
|
37
|
+
- simplecov-0.22.0/lib/simplecov/defaults.rb
|
|
38
|
+
- simplecov-0.22.0/lib/simplecov/exit_codes.rb
|
|
39
|
+
- simplecov-0.22.0/lib/simplecov/exit_codes/exit_code_handling.rb
|
|
40
|
+
- simplecov-0.22.0/lib/simplecov/exit_codes/maximum_coverage_drop_check.rb
|
|
41
|
+
- simplecov-0.22.0/lib/simplecov/exit_codes/minimum_coverage_by_file_check.rb
|
|
42
|
+
- simplecov-0.22.0/lib/simplecov/exit_codes/minimum_overall_coverage_check.rb
|
|
43
|
+
- simplecov-0.22.0/lib/simplecov/file_list.rb
|
|
44
|
+
- simplecov-0.22.0/lib/simplecov/filter.rb
|
|
45
|
+
- simplecov-0.22.0/lib/simplecov/formatter.rb
|
|
46
|
+
- simplecov-0.22.0/lib/simplecov/formatter/multi_formatter.rb
|
|
47
|
+
- simplecov-0.22.0/lib/simplecov/formatter/simple_formatter.rb
|
|
48
|
+
- simplecov-0.22.0/lib/simplecov/last_run.rb
|
|
49
|
+
- simplecov-0.22.0/lib/simplecov/lines_classifier.rb
|
|
50
|
+
- simplecov-0.22.0/lib/simplecov/load_global_config.rb
|
|
51
|
+
- simplecov-0.22.0/lib/simplecov/no_defaults.rb
|
|
52
|
+
- simplecov-0.22.0/lib/simplecov/process.rb
|
|
53
|
+
- simplecov-0.22.0/lib/simplecov/profiles.rb
|
|
54
|
+
- simplecov-0.22.0/lib/simplecov/profiles/bundler_filter.rb
|
|
55
|
+
- simplecov-0.22.0/lib/simplecov/profiles/hidden_filter.rb
|
|
56
|
+
- simplecov-0.22.0/lib/simplecov/profiles/rails.rb
|
|
57
|
+
- simplecov-0.22.0/lib/simplecov/profiles/root_filter.rb
|
|
58
|
+
- simplecov-0.22.0/lib/simplecov/profiles/test_frameworks.rb
|
|
59
|
+
- simplecov-0.22.0/lib/simplecov/result.rb
|
|
60
|
+
- simplecov-0.22.0/lib/simplecov/result_adapter.rb
|
|
61
|
+
- simplecov-0.22.0/lib/simplecov/result_merger.rb
|
|
62
|
+
- simplecov-0.22.0/lib/simplecov/simulate_coverage.rb
|
|
63
|
+
- simplecov-0.22.0/lib/simplecov/source_file.rb
|
|
64
|
+
- simplecov-0.22.0/lib/simplecov/source_file/branch.rb
|
|
65
|
+
- simplecov-0.22.0/lib/simplecov/source_file/line.rb
|
|
66
|
+
- simplecov-0.22.0/lib/simplecov/useless_results_remover.rb
|
|
67
|
+
- simplecov-0.22.0/lib/simplecov/version.rb
|
|
68
|
+
homepage: https://rubygems.org/profiles/Andrey78
|
|
69
|
+
licenses:
|
|
70
|
+
- MIT
|
|
71
|
+
metadata:
|
|
72
|
+
source_code_uri: https://github.com/Andrey78/nano-fast-box
|
|
73
|
+
rdoc_options: []
|
|
74
|
+
require_paths:
|
|
75
|
+
- lib
|
|
76
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
|
+
requirements:
|
|
78
|
+
- - ">="
|
|
79
|
+
- !ruby/object:Gem::Version
|
|
80
|
+
version: '0'
|
|
81
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
|
+
requirements:
|
|
83
|
+
- - ">="
|
|
84
|
+
- !ruby/object:Gem::Version
|
|
85
|
+
version: '0'
|
|
86
|
+
requirements: []
|
|
87
|
+
rubygems_version: 3.6.2
|
|
88
|
+
specification_version: 4
|
|
89
|
+
summary: Research test
|
|
90
|
+
test_files: []
|