mirror of
https://github.com/chromebrew/chromebrew.git
synced 2026-01-09 15:37:56 -05:00
Add test for removed dependencies (#10464)
* Add test for removed dependencies * Fix the reported issues
This commit is contained in:
committed by
GitHub
parent
e29ca72076
commit
3106ff0a2c
1
Rakefile
1
Rakefile
@@ -19,6 +19,7 @@ end
|
||||
|
||||
# Package tests
|
||||
task :package_test do
|
||||
ruby 'tests/dep_test'
|
||||
ruby 'tests/prop_test'
|
||||
ruby 'tests/buildsystem_test'
|
||||
end
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
require 'etc'
|
||||
|
||||
OLD_CREW_VERSION ||= defined?(CREW_VERSION) ? CREW_VERSION : '1.0'
|
||||
CREW_VERSION ||= '1.52.2' unless defined?(CREW_VERSION) && CREW_VERSION == OLD_CREW_VERSION
|
||||
CREW_VERSION ||= '1.52.3' unless defined?(CREW_VERSION) && CREW_VERSION == OLD_CREW_VERSION
|
||||
|
||||
# Kernel architecture.
|
||||
KERN_ARCH ||= Etc.uname[:machine]
|
||||
|
||||
@@ -97,15 +97,13 @@ class Package
|
||||
pkg_name = File.basename(pkg_file, '.rb')
|
||||
class_name = pkg_name.capitalize
|
||||
|
||||
# Read and eval package script under 'Package' class, using the
|
||||
# newest file available.
|
||||
# Read and eval package script under 'Package' class, using the newest file available.
|
||||
pkg_file = Dir["{#{CREW_LOCAL_REPO_ROOT}/packages,#{CREW_PACKAGES_PATH}}/#{pkg_name}.rb"].max { |a, b| File.mtime(a) <=> File.mtime(b) }
|
||||
|
||||
begin
|
||||
class_eval(File.read(pkg_file, encoding: Encoding::UTF_8), pkg_file) unless const_defined?("Package::#{class_name}")
|
||||
rescue TypeError
|
||||
abort "Package file for #{pkg_name} not found.".lightred
|
||||
end
|
||||
# If this package has been removed, it won't be found in either directory, so set it back to what it was before to get a nicer error.
|
||||
pkg_file = "#{CREW_PACKAGES_PATH}/#{pkg_name}.rb" if pkg_file.nil?
|
||||
|
||||
class_eval(File.read(pkg_file, encoding: Encoding::UTF_8), pkg_file) unless const_defined?("Package::#{class_name}")
|
||||
pkg_obj = const_get(class_name)
|
||||
pkg_obj.name = pkg_name
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ class Csvkit < Package
|
||||
})
|
||||
|
||||
depends_on 'py3_six'
|
||||
depends_on 'py3_agate_dfb'
|
||||
depends_on 'py3_agate_dbf'
|
||||
depends_on 'py3_agate'
|
||||
depends_on 'py3_agate_excel'
|
||||
depends_on 'py3_agate_sql'
|
||||
|
||||
@@ -18,7 +18,6 @@ class Mutter < Meson
|
||||
|
||||
# depends_on 'ccache' => :build
|
||||
depends_on 'dconf'
|
||||
depends_on 'gnome_settings_daemon'
|
||||
depends_on 'gobject_introspection' => :build
|
||||
depends_on 'gsettings_desktop_schemas'
|
||||
depends_on 'libcanberra'
|
||||
|
||||
@@ -18,7 +18,7 @@ class Textract < Package
|
||||
|
||||
depends_on 'py3_pdfminer_six'
|
||||
depends_on 'py3_ebooklib'
|
||||
depends_on 'py3_pptx'
|
||||
depends_on 'py3_python_pptx'
|
||||
depends_on 'py3_extract_msg'
|
||||
depends_on 'py3_xlrd'
|
||||
depends_on 'py3_docx2txt'
|
||||
|
||||
40
tests/dep_test
Executable file
40
tests/dep_test
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
require_relative '../lib/const'
|
||||
require_relative '../lib/color'
|
||||
require_relative '../lib/package'
|
||||
|
||||
# Add >LOCAL< lib to LOAD_PATH so that packages can be loaded
|
||||
$LOAD_PATH.unshift File.join(CREW_LIB_PATH, 'lib')
|
||||
|
||||
def check_for_removed_dependencies(pkg, verbose: false)
|
||||
pkg.get_deps_list
|
||||
puts "Removed dependency test for #{pkg.name} passed.".lightgreen if verbose
|
||||
return 0
|
||||
rescue Errno::ENOENT => e
|
||||
puts "#{pkg.name} depends on removed package #{e.to_s[%r{/packages/(\w+)\.rb}, 1]}".lightred
|
||||
puts "Removed dependency test for #{pkg.name} failed.".lightred
|
||||
return 1
|
||||
end
|
||||
|
||||
if ARGV[0]
|
||||
ARGV.each do |name|
|
||||
if File.file?(File.join(CREW_PACKAGES_PATH, "#{name}.rb"))
|
||||
check_for_removed_dependencies(Package.load_package(File.join(CREW_PACKAGES_PATH, "#{name}.rb")), verbose: true)
|
||||
else
|
||||
puts "Package #{name} not found.".lightred
|
||||
end
|
||||
end
|
||||
else
|
||||
failed_packages = 0
|
||||
Dir["#{CREW_PACKAGES_PATH}/*.rb"].each do |filename|
|
||||
failed_packages += check_for_removed_dependencies(Package.load_package(filename))
|
||||
end
|
||||
|
||||
if failed_packages.positive?
|
||||
puts "\n#{failed_packages} packages failed dependency tests.".lightred
|
||||
exit(1)
|
||||
else
|
||||
puts "\nAll packages passed dependency tests.".lightgreen
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user