brew/Library/Homebrew/test/formula_test.rb

66 lines
1.6 KiB
Ruby
Raw Normal View History

#!/usr/bin/ruby
# This software is in the public domain, furnished "as is", without technical
# support, and with no warranty, express or implied, as to its usefulness for
# any purpose.
$:.push(File.expand_path(__FILE__+'/../..'))
require 'test/unit'
require 'global'
require 'formula'
require 'utils'
# NOTE duplicated in unittest.rb (we need to refactor the tests anyway)
def nostdout
if ARGV.include? '-V'
yield
end
begin
require 'stringio'
tmpo=$stdout
tmpe=$stderr
$stdout=StringIO.new
yield
ensure
$stdout=tmpo
end
end
class FormulaNames <Test::Unit::TestCase
def test_formula_names
nostdout do
Dir["#{HOMEBREW_PREFIX}/Library/Formula/*.rb"].each do |f|
assert_nothing_raised do
Formula.factory f
end
end
end
end
end
2009-11-18 15:43:00 -08:00
class WellKnownCodeIssues <Test::Unit::TestCase
2009-11-18 15:50:01 -08:00
def all_formulas
Dir["#{HOMEBREW_PREFIX}/Library/Formula/*.rb"].each {|f| yield f }
end
def test_for_commented_out_cmake
2009-11-18 15:50:01 -08:00
# Formulas shouldn't contain commented-out cmake code from the default template
all_formulas do |f|
result = `grep "# depends_on 'cmake'" "#{f}"`.strip
assert_equal('', result, "Commented template code still in #{f}")
end
end
2009-11-18 15:43:00 -08:00
def test_for_misquoted_prefix
# Prefix should not have single quotes if the system args are already separated
target_string = "[\\\"]--prefix=[\\']"
2009-11-18 15:50:01 -08:00
all_formulas do |f|
2009-11-18 15:43:00 -08:00
result = `grep -e "#{target_string}" "#{f}"`.strip
assert_equal('', result, "--prefix is incorrectly single-quoted in #{f}")
end
end
end