diff options
| author | Xu Cheng | 2016-06-30 16:55:45 +0800 | 
|---|---|---|
| committer | Xu Cheng | 2016-07-03 16:45:29 +0800 | 
| commit | 080ddd8804be14f4b18f9558b58270456ff313c2 (patch) | |
| tree | f213787040de277ac5ac155e1022b630c1afc98d /Library/Homebrew/dev-cmd/linkage.rb | |
| parent | abca5936f2fdd40520519af89c17afba7c873a54 (diff) | |
| download | brew-080ddd8804be14f4b18f9558b58270456ff313c2.tar.bz2 | |
linkage: check undeclared dependencies for `--test`
Also allowing access results for LinkageChecker
Diffstat (limited to 'Library/Homebrew/dev-cmd/linkage.rb')
| -rw-r--r-- | Library/Homebrew/dev-cmd/linkage.rb | 23 | 
1 files changed, 16 insertions, 7 deletions
diff --git a/Library/Homebrew/dev-cmd/linkage.rb b/Library/Homebrew/dev-cmd/linkage.rb index 49223068f..8c29dbe4e 100644 --- a/Library/Homebrew/dev-cmd/linkage.rb +++ b/Library/Homebrew/dev-cmd/linkage.rb @@ -16,27 +16,26 @@ require "formula"  module Homebrew    def linkage -    found_broken_dylibs = false      ARGV.kegs.each do |keg|        ohai "Checking #{keg.name} linkage" if ARGV.kegs.size > 1        result = LinkageChecker.new(keg)        if ARGV.include?("--test")          result.display_test_output +        if result.broken_dylibs? || result.undeclared_deps? +          Homebrew.failed = true +        end        elsif ARGV.include?("--reverse")          result.display_reverse_output        else          result.display_normal_output        end -      found_broken_dylibs = true unless result.broken_dylibs.empty? -    end -    if ARGV.include?("--test") && found_broken_dylibs -      exit 1      end    end    class LinkageChecker      attr_reader :keg -    attr_reader :broken_dylibs +    attr_reader :brewed_dylibs, :system_dylibs, :broken_dylibs, :variable_dylibs +    attr_reader :undeclared_deps, :reverse_links      def initialize(keg)        @keg = keg @@ -44,6 +43,7 @@ module Homebrew        @system_dylibs = Set.new        @broken_dylibs = Set.new        @variable_dylibs = Set.new +      @undeclared_deps = []        @reverse_links = Hash.new { |h, k| h[k] = Set.new }        check_dylibs      end @@ -76,7 +76,6 @@ module Homebrew          @undeclared_deps -= [f.name]        rescue FormulaUnavailableError          opoo "Formula unavailable: #{keg.name}" -        @undeclared_deps = []        end      end @@ -104,6 +103,16 @@ module Homebrew      def display_test_output        display_items "Missing libraries", @broken_dylibs        puts "No broken dylib links" if @broken_dylibs.empty? +      display_items "Possible undeclared dependencies", @undeclared_deps +      puts "No undeclared dependencies" if @undeclared_deps.empty? +    end + +    def broken_dylibs? +      !@broken_dylibs.empty? +    end + +    def undeclared_deps? +      !@undeclared_deps.empty?      end      private  | 
