linter: discourage FileUtils::rm_rf, fixes SD-876
test plan: * see test commit Change-Id: I49f9a5bec1d8e6e3d44268ad1da20d314978a42b Reviewed-on: https://gerrit.instructure.com/74147 Tested-by: Jenkins Reviewed-by: Jon Jensen <jon@instructure.com> Product-Review: Jon Jensen <jon@instructure.com> QA-Review: Jon Jensen <jon@instructure.com>
This commit is contained in:
parent
1e824bec77
commit
58912ddfb8
|
@ -20,6 +20,7 @@ require 'rubocop_canvas/cops/lint/specs_ensure_spec_extension'
|
|||
require 'rubocop_canvas/cops/lint/specs_execute_script'
|
||||
require 'rubocop_canvas/cops/lint/specs_f_over_fj'
|
||||
require 'rubocop_canvas/cops/lint/specs_helper_modules'
|
||||
require 'rubocop_canvas/cops/lint/specs_rm_rf'
|
||||
require 'rubocop_canvas/cops/migration/concurrent_index'
|
||||
require 'rubocop_canvas/cops/migration/primary_key'
|
||||
require 'rubocop_canvas/cops/migration/remove_column'
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
module RuboCop
|
||||
module Cop
|
||||
module Lint
|
||||
class SpecsExecuteScript < Cop
|
||||
MSG = "In order to enable spec parallelization, avoid FileUtils.rm_rf and making persistent files/directories. Instead use Dir.mktmpdir. See https://gerrit.instructure.com/#/c/73834 for the pattern you should follow."
|
||||
METHOD = :rm_rf
|
||||
RECEIVER = :FileUtils
|
||||
|
||||
def on_send(node)
|
||||
receiver, method_name, *args = *node
|
||||
return unless method_name == METHOD
|
||||
return unless receiver.children[1] == RECEIVER
|
||||
|
||||
add_offense node, :expression, MSG
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue