mirror of
https://github.com/ruby/ruby.git
synced 2025-08-23 04:55:21 +02:00
34 lines
967 B
Ruby
Executable file
34 lines
967 B
Ruby
Executable file
#!/usr/bin/env ruby
|
|
|
|
# This script is used to check that each *_spec.rb file has
|
|
# a relative_require for spec_helper which should live higher
|
|
# up in the ruby/spec repo directory tree.
|
|
#
|
|
# Prints errors to $stderr and returns a non-zero exit code when
|
|
# errors are found.
|
|
#
|
|
# Related to https://github.com/ruby/spec/pull/992
|
|
|
|
def check_file(fn)
|
|
File.foreach(fn) do |line|
|
|
return $1 if line =~ /^\s*require_relative\s*['"](.*spec_helper)['"]/
|
|
end
|
|
nil
|
|
end
|
|
|
|
rootdir = ARGV[0] || "."
|
|
fglob = File.join(rootdir, "**", "*_spec.rb")
|
|
specfiles = Dir.glob(fglob)
|
|
raise "No spec files found in #{fglob.inspect}. Give an argument to specify the root-directory of ruby/spec" if specfiles.empty?
|
|
|
|
errors = 0
|
|
specfiles.sort.each do |fn|
|
|
result = check_file(fn)
|
|
if result.nil?
|
|
warn "Missing require_relative for *spec_helper for file: #{fn}"
|
|
errors += 1
|
|
end
|
|
end
|
|
|
|
puts "# Found #{errors} files with require_relative spec_helper issues."
|
|
exit 1 if errors > 0
|
|
|