Merge pull request #3659 from MikeMcQuaid/deprecated-requirements-harder
Deprecate requirements harder
This commit is contained in:
commit
e67b745b2f
@ -27,57 +27,42 @@ class DependencyCollector
|
||||
odeprecated "'depends_on :tex'"
|
||||
TeXRequirement.new(tags)
|
||||
when :autoconf, :automake, :bsdmake, :libtool
|
||||
output_deprecation(spec, tags)
|
||||
output_deprecation(spec)
|
||||
autotools_dep(spec, tags)
|
||||
when :cairo, :fontconfig, :freetype, :libpng, :pixman
|
||||
output_deprecation(spec, tags)
|
||||
output_deprecation(spec)
|
||||
Dependency.new(spec.to_s, tags)
|
||||
when :ant, :expat
|
||||
# output_deprecation(spec, tags)
|
||||
output_deprecation(spec)
|
||||
Dependency.new(spec.to_s, tags)
|
||||
when :libltdl
|
||||
tags << :run
|
||||
output_deprecation("libtool", tags)
|
||||
output_deprecation("libtool")
|
||||
Dependency.new("libtool", tags)
|
||||
when :apr
|
||||
output_deprecation(spec, tags, "apr-util")
|
||||
output_deprecation(spec, "apr-util")
|
||||
Dependency.new("apr-util", tags)
|
||||
when :fortran
|
||||
# output_deprecation(spec, tags, "gcc")
|
||||
FortranRequirement.new(tags)
|
||||
output_deprecation(spec, "gcc")
|
||||
Dependency.new("gcc", tags)
|
||||
when :gpg
|
||||
# output_deprecation(spec, tags, "gnupg")
|
||||
GPG2Requirement.new(tags)
|
||||
output_deprecation(spec, "gnupg")
|
||||
Dependency.new("gnupg", tags)
|
||||
when :hg
|
||||
# output_deprecation(spec, tags, "mercurial")
|
||||
MercurialRequirement.new(tags)
|
||||
output_deprecation(spec, "mercurial")
|
||||
Dependency.new("mercurial", tags)
|
||||
when :mpi
|
||||
# output_deprecation(spec, tags, "open-mpi")
|
||||
MPIRequirement.new(*tags)
|
||||
when :emacs
|
||||
# output_deprecation(spec, tags)
|
||||
EmacsRequirement.new(tags)
|
||||
when :mysql
|
||||
# output_deprecation(spec, tags)
|
||||
MysqlRequirement.new(tags)
|
||||
when :perl
|
||||
# output_deprecation(spec, tags)
|
||||
PerlRequirement.new(tags)
|
||||
when :postgresql
|
||||
# output_deprecation(spec, tags)
|
||||
PostgresqlRequirement.new(tags)
|
||||
output_deprecation(spec, "open-mpi")
|
||||
Dependency.new("open-mpi", tags)
|
||||
when :python, :python2
|
||||
# output_deprecation(spec, tags)
|
||||
PythonRequirement.new(tags)
|
||||
output_deprecation(spec, "python")
|
||||
Dependency.new("python", tags)
|
||||
when :python3
|
||||
# output_deprecation(spec, tags)
|
||||
Python3Requirement.new(tags)
|
||||
when :rbenv
|
||||
# output_deprecation(spec, tags)
|
||||
RbenvRequirement.new(tags)
|
||||
when :ruby
|
||||
# output_deprecation(spec, tags)
|
||||
RubyRequirement.new(tags)
|
||||
output_deprecation(spec, "python3")
|
||||
Dependency.new("python3", tags)
|
||||
when :emacs, :mysql, :perl, :postgresql, :rbenv, :ruby
|
||||
output_deprecation(spec)
|
||||
Dependency.new(spec, tags)
|
||||
else
|
||||
_parse_symbol_spec(spec, tags)
|
||||
end
|
||||
@ -88,13 +73,8 @@ class DependencyCollector
|
||||
Dependency.new(spec.to_s, tags)
|
||||
end
|
||||
|
||||
def output_deprecation(dependency, tags, new_dependency = dependency)
|
||||
tags_string = if tags.length > 1
|
||||
" => [:#{tags.join ", :"}]"
|
||||
elsif tags.length == 1
|
||||
" => :#{tags.first}"
|
||||
end
|
||||
def output_deprecation(dependency, new_dependency = dependency)
|
||||
odeprecated "'depends_on :#{dependency}'",
|
||||
"'depends_on \"#{new_dependency}\"#{tags_string}'"
|
||||
"'depends_on \"#{new_dependency}\"'"
|
||||
end
|
||||
end
|
||||
|
||||
@ -1,76 +1,134 @@
|
||||
require "requirements"
|
||||
require "compat/requirements/emacs_requirement"
|
||||
require "compat/requirements/fortran_requirement"
|
||||
require "compat/requirements/language_module_requirement"
|
||||
require "compat/requirements/mpi_requirement"
|
||||
require "compat/requirements/perl_requirement"
|
||||
require "compat/requirements/python_requirement"
|
||||
require "compat/requirements/ruby_requirement"
|
||||
require "compat/requirements/tex_requirement"
|
||||
|
||||
class MysqlRequirement < Requirement
|
||||
fatal true
|
||||
default_formula "mysql"
|
||||
satisfy { which "mysql_config" }
|
||||
end
|
||||
|
||||
class PostgresqlRequirement < Requirement
|
||||
fatal true
|
||||
default_formula "postgresql"
|
||||
satisfy { which "pg_config" }
|
||||
end
|
||||
|
||||
class RbenvRequirement < Requirement
|
||||
fatal true
|
||||
default_formula "rbenv"
|
||||
satisfy { which "rbenv" }
|
||||
end
|
||||
|
||||
class CVSRequirement < Requirement
|
||||
fatal true
|
||||
default_formula "cvs"
|
||||
satisfy { which "cvs" }
|
||||
satisfy do
|
||||
odeprecated("CVSRequirement", "'depends_on \"cvs\"'")
|
||||
which "cvs"
|
||||
end
|
||||
end
|
||||
|
||||
class MercurialRequirement < Requirement
|
||||
class EmacsRequirement < Requirement
|
||||
fatal true
|
||||
default_formula "mercurial"
|
||||
satisfy { which "hg" }
|
||||
satisfy do
|
||||
odeprecated("EmacsRequirement", "'depends_on \"cvs\"'")
|
||||
which "emacs"
|
||||
end
|
||||
end
|
||||
|
||||
class GPG2Requirement < Requirement
|
||||
class FortranRequirement < Requirement
|
||||
fatal true
|
||||
default_formula "gnupg"
|
||||
satisfy { which "gpg" }
|
||||
satisfy do
|
||||
odeprecated("FortranRequirement", "'depends_on \"cvs\"'")
|
||||
which "gfortran"
|
||||
end
|
||||
end
|
||||
|
||||
class GitRequirement < Requirement
|
||||
fatal true
|
||||
default_formula "git"
|
||||
satisfy { Utils.git_available? }
|
||||
satisfy do
|
||||
odeprecated("GitRequirement", "'depends_on \"cvs\"'")
|
||||
which "git"
|
||||
end
|
||||
end
|
||||
|
||||
class GPG2Requirement < Requirement
|
||||
fatal true
|
||||
satisfy do
|
||||
odeprecated("GPG2Requirement", "'depends_on \"cvs\"'")
|
||||
which "gpg"
|
||||
end
|
||||
end
|
||||
|
||||
class MercurialRequirement < Requirement
|
||||
fatal true
|
||||
satisfy do
|
||||
odeprecated("MercurialRequirement", "'depends_on \"cvs\"'")
|
||||
which "hg"
|
||||
end
|
||||
end
|
||||
|
||||
class MPIRequirement < Requirement
|
||||
fatal true
|
||||
satisfy do
|
||||
odeprecated("MPIRequirement", "'depends_on \"cvs\"'")
|
||||
which "mpicc"
|
||||
end
|
||||
end
|
||||
|
||||
class MysqlRequirement < Requirement
|
||||
fatal true
|
||||
satisfy do
|
||||
odeprecated("MysqlRequirement", "'depends_on \"cvs\"'")
|
||||
which "mysql_config"
|
||||
end
|
||||
end
|
||||
|
||||
class PerlRequirement < Requirement
|
||||
fatal true
|
||||
satisfy do
|
||||
odeprecated("PerlRequirement", "'depends_on \"cvs\"'")
|
||||
which "perl"
|
||||
end
|
||||
end
|
||||
|
||||
class PostgresqlRequirement < Requirement
|
||||
fatal true
|
||||
satisfy do
|
||||
odeprecated("PostgresqlRequirement", "'depends_on \"cvs\"'")
|
||||
which "pg_config"
|
||||
end
|
||||
end
|
||||
|
||||
class PythonRequirement < Requirement
|
||||
fatal true
|
||||
satisfy do
|
||||
odeprecated("PythonRequirement", "'depends_on \"cvs\"'")
|
||||
which "python"
|
||||
end
|
||||
end
|
||||
|
||||
class Python3Requirement < Requirement
|
||||
fatal true
|
||||
satisfy do
|
||||
odeprecated("Python3Requirement", "'depends_on \"cvs\"'")
|
||||
which "python3"
|
||||
end
|
||||
end
|
||||
|
||||
class RbenvRequirement < Requirement
|
||||
fatal true
|
||||
satisfy do
|
||||
odeprecated("RbenvRequirement", "'depends_on \"cvs\"'")
|
||||
which "rbenv"
|
||||
end
|
||||
end
|
||||
|
||||
class RubyRequirement < Requirement
|
||||
fatal true
|
||||
satisfy do
|
||||
odeprecated("RubyRequirement", "'depends_on \"cvs\"'")
|
||||
which "ruby"
|
||||
end
|
||||
end
|
||||
|
||||
class SubversionRequirement < Requirement
|
||||
fatal true
|
||||
default_formula "subversion"
|
||||
satisfy { Utils.svn_available? }
|
||||
satisfy do
|
||||
odeprecated("SubversionRequirement", "'depends_on \"cvs\"'")
|
||||
which "svn"
|
||||
end
|
||||
end
|
||||
|
||||
XcodeDependency = XcodeRequirement
|
||||
MysqlDependency = MysqlRequirement
|
||||
PostgresqlDependency = PostgresqlRequirement
|
||||
GPGDependency = GPG2Requirement
|
||||
GPGRequirement = GPG2Requirement
|
||||
TeXDependency = TeXRequirement
|
||||
MercurialDependency = MercurialRequirement
|
||||
GitDependency = GitRequirement
|
||||
FortranDependency = FortranRequirement
|
||||
JavaDependency = JavaRequirement
|
||||
LanguageModuleDependency = LanguageModuleRequirement
|
||||
MPIDependency = MPIRequirement
|
||||
OsxfuseDependency = OsxfuseRequirement
|
||||
PythonDependency = PythonRequirement
|
||||
TuntapDependency = TuntapRequirement
|
||||
X11Dependency = X11Requirement
|
||||
ConflictsWithBinaryOsxfuse = NonBinaryOsxfuseRequirement
|
||||
MinimumMacOSRequirement = MacOSRequirement
|
||||
class TeXRequirement < Requirement
|
||||
fatal true
|
||||
cask "mactex"
|
||||
download "https://www.tug.org/mactex/"
|
||||
satisfy do
|
||||
odeprecated("TeXRequirement", "'depends_on \"cvs\"'")
|
||||
which("tex") || which("latex")
|
||||
end
|
||||
end
|
||||
|
||||
MinimumMacOSRequirement = MacOSRequirement
|
||||
|
||||
@ -1,35 +0,0 @@
|
||||
class EmacsRequirement < Requirement
|
||||
fatal true
|
||||
default_formula "emacs"
|
||||
|
||||
def initialize(tags)
|
||||
@version = tags.shift if /\d+\.*\d*/ =~ tags.first
|
||||
super
|
||||
end
|
||||
|
||||
satisfy build_env: false do
|
||||
next false unless which "emacs"
|
||||
next true unless @version
|
||||
emacs_version = Utils.popen_read("emacs", "--batch", "--eval", "(princ emacs-version)")
|
||||
Version.create(emacs_version) >= Version.create(@version)
|
||||
end
|
||||
|
||||
env do
|
||||
ENV.prepend_path "PATH", which("emacs").dirname
|
||||
ENV["EMACS"] = "emacs"
|
||||
end
|
||||
|
||||
def message
|
||||
if @version
|
||||
s = "Emacs #{@version} or later is required."
|
||||
else
|
||||
s = "Emacs is required."
|
||||
end
|
||||
s += super
|
||||
s
|
||||
end
|
||||
|
||||
def inspect
|
||||
"#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>"
|
||||
end
|
||||
end
|
||||
@ -1,13 +0,0 @@
|
||||
require "requirement"
|
||||
|
||||
class FortranRequirement < Requirement
|
||||
fatal true
|
||||
|
||||
default_formula "gcc"
|
||||
|
||||
env { ENV.fortran }
|
||||
|
||||
satisfy build_env: false do
|
||||
which(ENV["FC"] || "gfortran")
|
||||
end
|
||||
end
|
||||
@ -1,66 +0,0 @@
|
||||
require "requirement"
|
||||
|
||||
# There are multiple implementations of MPI-2 available.
|
||||
# http://www.mpi-forum.org/
|
||||
# This requirement is used to find an appropriate one.
|
||||
class MPIRequirement < Requirement
|
||||
attr_reader :lang_list
|
||||
|
||||
fatal true
|
||||
|
||||
default_formula "open-mpi"
|
||||
|
||||
env :userpaths
|
||||
|
||||
# This method must accept varargs rather than an array for
|
||||
# backwards compatibility with formulae that call it directly.
|
||||
def initialize(*tags)
|
||||
@non_functional = []
|
||||
@unknown_langs = []
|
||||
@lang_list = [:cc, :cxx, :f77, :f90] & tags
|
||||
tags -= @lang_list
|
||||
super(tags)
|
||||
end
|
||||
|
||||
def mpi_wrapper_works?(compiler)
|
||||
compiler = which compiler
|
||||
return false if compiler.nil? || !compiler.executable?
|
||||
|
||||
# Some wrappers are non-functional and will return a non-zero exit code
|
||||
# when invoked for version info.
|
||||
#
|
||||
# NOTE: A better test may be to do a small test compilation a la autotools.
|
||||
quiet_system compiler, "--version"
|
||||
end
|
||||
|
||||
def inspect
|
||||
"#<#{self.class.name}: #{name.inspect} #{tags.inspect} lang_list=#{@lang_list.inspect}>"
|
||||
end
|
||||
|
||||
satisfy do
|
||||
@lang_list.each do |lang|
|
||||
case lang
|
||||
when :cc, :cxx, :f90, :f77
|
||||
compiler = "mpi" + lang.to_s
|
||||
@non_functional << compiler unless mpi_wrapper_works? compiler
|
||||
else
|
||||
@unknown_langs << lang.to_s
|
||||
end
|
||||
end
|
||||
@unknown_langs.empty? && @non_functional.empty?
|
||||
end
|
||||
|
||||
env do
|
||||
# Set environment variables to help configure scripts find MPI compilers.
|
||||
# Variable names taken from:
|
||||
# https://www.gnu.org/software/autoconf-archive/ax_mpi.html
|
||||
@lang_list.each do |lang|
|
||||
compiler = "mpi" + lang.to_s
|
||||
mpi_path = which compiler
|
||||
|
||||
# Fortran 90 environment var has a different name
|
||||
compiler = "MPIFC" if lang == :f90
|
||||
ENV[compiler.upcase] = mpi_path
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,36 +0,0 @@
|
||||
class PerlRequirement < Requirement
|
||||
fatal true
|
||||
default_formula "perl"
|
||||
|
||||
def initialize(tags)
|
||||
@version = tags.shift if /^\d+\.\d+$/ =~ tags.first
|
||||
raise "PerlRequirement requires a version!" unless @version
|
||||
super
|
||||
end
|
||||
|
||||
satisfy(build_env: false) do
|
||||
which_all("perl").detect do |perl|
|
||||
perl_version = Utils.popen_read(perl, "--version")[/v(\d+\.\d+)(?:\.\d+)?/, 1]
|
||||
next unless perl_version
|
||||
Version.create(perl_version.to_s) >= Version.create(@version)
|
||||
end
|
||||
end
|
||||
|
||||
def message
|
||||
s = "Perl #{@version} is required to install this formula."
|
||||
s += super
|
||||
s
|
||||
end
|
||||
|
||||
def inspect
|
||||
"#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>"
|
||||
end
|
||||
|
||||
def display_s
|
||||
if @version
|
||||
"#{name} >= #{@version}"
|
||||
else
|
||||
name
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -1,68 +0,0 @@
|
||||
require "language/python"
|
||||
|
||||
class PythonRequirement < Requirement
|
||||
fatal true
|
||||
default_formula "python"
|
||||
|
||||
satisfy build_env: false do
|
||||
python = which_python
|
||||
next unless python
|
||||
next unless short_version
|
||||
# Always use Python 2.7 for consistency on older versions of Mac OS X.
|
||||
short_version == Version.create("2.7")
|
||||
end
|
||||
|
||||
env do
|
||||
if !system_python? && short_version == Version.create("2.7")
|
||||
ENV.prepend_path "PATH", which_python.dirname
|
||||
end
|
||||
|
||||
# Homebrew Python should take precedence over other Pythons in the PATH
|
||||
ENV.prepend_path "PATH", Formula["python"].opt_bin
|
||||
ENV.prepend_path "PATH", Formula["python"].opt_libexec/"bin"
|
||||
|
||||
if system_python?
|
||||
ENV["PYTHONPATH"] = "#{HOMEBREW_PREFIX}/lib/python#{short_version}/site-packages"
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def short_version
|
||||
@short_version ||= Language::Python.major_minor_version which_python
|
||||
end
|
||||
|
||||
def which_python
|
||||
python = which python_binary
|
||||
return unless python
|
||||
Pathname.new Utils.popen_read(python, "-c", "import sys; print(sys.executable)").strip
|
||||
end
|
||||
|
||||
def system_python
|
||||
"/usr/bin/#{python_binary}"
|
||||
end
|
||||
|
||||
def system_python?
|
||||
system_python == which_python.to_s
|
||||
end
|
||||
|
||||
def python_binary
|
||||
"python2.7"
|
||||
end
|
||||
|
||||
# Deprecated
|
||||
alias to_s python_binary
|
||||
end
|
||||
|
||||
class Python3Requirement < PythonRequirement
|
||||
fatal true
|
||||
default_formula "python3"
|
||||
|
||||
satisfy(build_env: false) { which_python }
|
||||
|
||||
private
|
||||
|
||||
def python_binary
|
||||
"python3"
|
||||
end
|
||||
end
|
||||
@ -1,56 +0,0 @@
|
||||
class RubyRequirement < Requirement
|
||||
fatal true
|
||||
default_formula "ruby"
|
||||
|
||||
def initialize(tags)
|
||||
@version = tags.shift if /(\d\.)+\d/ =~ tags.first
|
||||
raise "RubyRequirement requires a version!" unless @version
|
||||
super
|
||||
end
|
||||
|
||||
satisfy(build_env: false) { new_enough_ruby }
|
||||
|
||||
env do
|
||||
ENV.prepend_path "PATH", new_enough_ruby.dirname
|
||||
end
|
||||
|
||||
def message
|
||||
s = "Ruby >= #{@version} is required to install this formula."
|
||||
s += super
|
||||
s
|
||||
end
|
||||
|
||||
def inspect
|
||||
"#<#{self.class.name}: #{name.inspect} #{tags.inspect} version=#{@version.inspect}>"
|
||||
end
|
||||
|
||||
def display_s
|
||||
if @version
|
||||
"#{name} >= #{@version}"
|
||||
else
|
||||
name
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def new_enough_ruby
|
||||
rubies.detect { |ruby| new_enough?(ruby) }
|
||||
end
|
||||
|
||||
def rubies
|
||||
rubies = which_all("ruby")
|
||||
ruby_formula = Formula["ruby"]
|
||||
rubies.unshift ruby_formula.bin/"ruby" if ruby_formula&.installed?
|
||||
rubies.uniq
|
||||
end
|
||||
|
||||
def new_enough?(ruby)
|
||||
version = Utils.popen_read(ruby, "-e", "print RUBY_VERSION").strip
|
||||
version =~ /^\d+\.\d+/ && Version.create(version) >= min_version
|
||||
end
|
||||
|
||||
def min_version
|
||||
@min_version ||= Version.create(@version)
|
||||
end
|
||||
end
|
||||
@ -1,20 +0,0 @@
|
||||
require "requirement"
|
||||
|
||||
class TeXRequirement < Requirement
|
||||
fatal true
|
||||
cask "mactex"
|
||||
download "https://www.tug.org/mactex/"
|
||||
|
||||
satisfy { which("tex") || which("latex") }
|
||||
|
||||
def message
|
||||
s = <<~EOS
|
||||
A LaTeX distribution is required for Homebrew to install this formula.
|
||||
|
||||
Make sure that "/usr/texbin", or the location you installed it to, is in
|
||||
your PATH before proceeding.
|
||||
EOS
|
||||
s += super
|
||||
s
|
||||
end
|
||||
end
|
||||
@ -1,8 +1,6 @@
|
||||
require "language/java"
|
||||
|
||||
class JavaRequirement < Requirement
|
||||
default_formula "jdk"
|
||||
|
||||
env do
|
||||
env_java_common
|
||||
env_oracle_jdk
|
||||
|
||||
@ -14,6 +14,7 @@ require "tap"
|
||||
require "keg"
|
||||
require "migrator"
|
||||
require "extend/ENV"
|
||||
require "language/python"
|
||||
|
||||
# A formula provides instructions and metadata for Homebrew to install a piece
|
||||
# of software. Every Homebrew formula is a {Formula}.
|
||||
|
||||
@ -66,11 +66,6 @@ describe DependencyCollector do
|
||||
expect(dep).to be_optional
|
||||
end
|
||||
|
||||
specify "ant dependency", :needs_compat do
|
||||
subject.add ant: :build
|
||||
expect(find_dependency("ant")).to eq(Dependency.new("ant", [:build]))
|
||||
end
|
||||
|
||||
it "doesn't mutate the dependency spec" do
|
||||
spec = { "foo" => :optional }
|
||||
copy = spec.dup
|
||||
|
||||
@ -132,64 +132,4 @@ describe FormulaInstaller do
|
||||
fi.check_install_sanity
|
||||
}.to raise_error(CannotInstallFormulaError)
|
||||
end
|
||||
|
||||
describe "#install_requirement_formula?", :needs_compat do
|
||||
before do
|
||||
@requirement = Python3Requirement.new
|
||||
@requirement_dependency = @requirement.to_dependency
|
||||
@install_bottle_for_dependent = false
|
||||
allow(@requirement).to receive(:satisfied?).and_return(satisfied?)
|
||||
allow(@requirement).to receive(:satisfied_by_formula?).and_return(satisfied_by_formula?)
|
||||
allow(@requirement).to receive(:build?).and_return(build?)
|
||||
@dependent = formula do
|
||||
url "foo"
|
||||
version "0.1"
|
||||
depends_on :python3
|
||||
end
|
||||
allow(@dependent).to receive(:installed?).and_return(installed?)
|
||||
@fi = FormulaInstaller.new(@dependent)
|
||||
end
|
||||
|
||||
subject { @fi.install_requirement_formula?(@requirement_dependency, @requirement, @dependent, @install_bottle_for_dependent) }
|
||||
|
||||
context "it returns false when requirement is satisfied" do
|
||||
let(:satisfied?) { true }
|
||||
let(:satisfied_by_formula?) { false }
|
||||
let(:build?) { false }
|
||||
let(:installed?) { false }
|
||||
it { is_expected.to be false }
|
||||
end
|
||||
|
||||
context "it returns false when requirement is satisfied but default formula is installed" do
|
||||
let(:satisfied?) { true }
|
||||
let(:satisfied_by_formula?) { false }
|
||||
let(:build?) { false }
|
||||
let(:installed?) { false }
|
||||
it { is_expected.to be false }
|
||||
end
|
||||
|
||||
context "it returns false when requirement is :build and dependent is installed" do
|
||||
let(:satisfied?) { false }
|
||||
let(:satisfied_by_formula?) { false }
|
||||
let(:build?) { true }
|
||||
let(:installed?) { true }
|
||||
it { is_expected.to be false }
|
||||
end
|
||||
|
||||
context "it returns true when requirement isn't satisfied" do
|
||||
let(:satisfied?) { false }
|
||||
let(:satisfied_by_formula?) { false }
|
||||
let(:build?) { false }
|
||||
let(:installed?) { false }
|
||||
it { is_expected.to be true }
|
||||
end
|
||||
|
||||
context "it returns true when requirement is satisfied by a formula" do
|
||||
let(:satisfied?) { true }
|
||||
let(:satisfied_by_formula?) { true }
|
||||
let(:build?) { false }
|
||||
let(:installed?) { false }
|
||||
it { is_expected.to be true }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -1,14 +1,13 @@
|
||||
require "compat/requirements/mpi_requirement"
|
||||
require "compat/requirements"
|
||||
|
||||
describe MPIRequirement, :needs_compat do
|
||||
describe "::new" do
|
||||
subject { described_class.new(*(wrappers + tags)) }
|
||||
subject { described_class.new(wrappers + tags) }
|
||||
let(:wrappers) { [:cc, :cxx, :f77] }
|
||||
let(:tags) { [:optional, "some-other-tag"] }
|
||||
|
||||
it "untangles wrappers and tags" do
|
||||
expect(subject.lang_list).to eq(wrappers)
|
||||
expect(subject.tags).to eq(tags)
|
||||
it "stores wrappers as tags" do
|
||||
expect(subject.tags).to eq(wrappers + tags)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user