aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
authorAlyssa Ross2016-09-19 20:53:39 +0100
committerAlyssa Ross2016-09-19 20:53:39 +0100
commit41e25209f7486676f633ae05d7fc61e05af07b90 (patch)
tree46f0741b7dedc0bd54b52ddcd12eba89aabb71df /Library/Homebrew/test
parente22610aedd550cb5577dd08cedb7a5609d0ff0b8 (diff)
downloadbrew-41e25209f7486676f633ae05d7fc61e05af07b90.tar.bz2
Save runtime dependencies in INSTALL_RECEIPT.json
Fixes #930
Diffstat (limited to 'Library/Homebrew/test')
-rw-r--r--Library/Homebrew/test/fixtures/receipt.json6
-rw-r--r--Library/Homebrew/test/test_formula.rb21
-rw-r--r--Library/Homebrew/test/test_tab.rb19
3 files changed, 45 insertions, 1 deletions
diff --git a/Library/Homebrew/test/fixtures/receipt.json b/Library/Homebrew/test/fixtures/receipt.json
index 585a4e27d..62672bfa9 100644
--- a/Library/Homebrew/test/fixtures/receipt.json
+++ b/Library/Homebrew/test/fixtures/receipt.json
@@ -14,6 +14,12 @@
"alias_path": "/usr/local/Library/Taps/homebrew/homebrew-core/Aliases/test-formula",
"stdlib": "libcxx",
"compiler": "clang",
+ "runtime_dependencies": [
+ {
+ "full_name": "foo",
+ "version": "1.0"
+ }
+ ],
"source": {
"path": "/usr/local/Library/Taps/hombrew/homebrew-core/Formula/foo.rb",
"tap": "homebrew/core",
diff --git a/Library/Homebrew/test/test_formula.rb b/Library/Homebrew/test/test_formula.rb
index dcb3e3349..9207f8ead 100644
--- a/Library/Homebrew/test/test_formula.rb
+++ b/Library/Homebrew/test/test_formula.rb
@@ -638,6 +638,27 @@ class FormulaTests < Homebrew::TestCase
f1.test_fixtures("foo")
end
+ def test_dependencies
+ stub_formula_loader formula("f1") { url "f1-1.0" }
+ stub_formula_loader formula("f2") { url "f2-1.0" }
+
+ f3 = formula("f3") do
+ url "f3-1.0"
+ depends_on "f1" => :build
+ depends_on "f2"
+ end
+ stub_formula_loader f3
+
+ f4 = formula("f4") do
+ url "f4-1.0"
+ depends_on "f3"
+ end
+
+ assert_equal %w[f3], f4.deps.map(&:name)
+ assert_equal %w[f1 f2 f3], f4.recursive_dependencies.map(&:name)
+ assert_equal %w[f2 f3], f4.runtime_dependencies.map(&:name)
+ end
+
def test_to_hash
f1 = formula("foo") do
url "foo-1.0"
diff --git a/Library/Homebrew/test/test_tab.rb b/Library/Homebrew/test/test_tab.rb
index 2efaee983..ea4936c4b 100644
--- a/Library/Homebrew/test/test_tab.rb
+++ b/Library/Homebrew/test/test_tab.rb
@@ -16,6 +16,7 @@ class TabTests < Homebrew::TestCase
"HEAD" => TEST_SHA1,
"compiler" => "clang",
"stdlib" => "libcxx",
+ "runtime_dependencies" => [],
"source" => {
"tap" => "homebrew/core",
"path" => nil,
@@ -40,6 +41,7 @@ class TabTests < Homebrew::TestCase
assert_nil tab.tap
assert_nil tab.time
assert_nil tab.HEAD
+ assert_empty tab.runtime_dependencies
assert_nil tab.stable_version
assert_nil tab.devel_version
assert_nil tab.head_version
@@ -95,12 +97,14 @@ class TabTests < Homebrew::TestCase
assert_equal TEST_SHA1, tab.HEAD
assert_equal :clang, tab.cxxstdlib.compiler
assert_equal :libcxx, tab.cxxstdlib.type
+ assert_empty tab.runtime_dependencies
end
def test_from_file
path = Pathname.new(TEST_DIRECTORY).join("fixtures", "receipt.json")
tab = Tab.from_file(path)
source_path = "/usr/local/Library/Taps/hombrew/homebrew-core/Formula/foo.rb"
+ runtime_dependencies = [{ "full_name" => "foo", "version" => "1.0" }]
assert_equal @used.sort, tab.used_options.sort
assert_equal @unused.sort, tab.unused_options.sort
@@ -115,6 +119,7 @@ class TabTests < Homebrew::TestCase
assert_equal TEST_SHA1, tab.HEAD
assert_equal :clang, tab.cxxstdlib.compiler
assert_equal :libcxx, tab.cxxstdlib.type
+ assert_equal runtime_dependencies, tab.runtime_dependencies
assert_equal "2.14", tab.stable_version.to_s
assert_equal "2.15", tab.devel_version.to_s
assert_equal "HEAD-0000000", tab.head_version.to_s
@@ -122,11 +127,22 @@ class TabTests < Homebrew::TestCase
end
def test_create
- f = formula { url "foo-1.0" }
+ f = formula do
+ url "foo-1.0"
+ depends_on "bar"
+ depends_on "baz" => :build
+ end
+
+ stub_formula_loader formula("bar") { url "bar-2.0" }
+ stub_formula_loader formula("baz") { url "baz-3.0" }
+
compiler = DevelopmentTools.default_compiler
stdlib = :libcxx
tab = Tab.create(f, compiler, stdlib)
+ runtime_dependencies = [{ "full_name" => "bar", "version" => "2.0" }]
+
+ assert_equal runtime_dependencies, tab.runtime_dependencies
assert_equal f.path.to_s, tab.source["path"]
end
@@ -167,6 +183,7 @@ class TabTests < Homebrew::TestCase
assert_equal @tab.HEAD, tab.HEAD
assert_equal @tab.compiler, tab.compiler
assert_equal @tab.stdlib, tab.stdlib
+ assert_equal @tab.runtime_dependencies, tab.runtime_dependencies
assert_equal @tab.stable_version, tab.stable_version
assert_equal @tab.devel_version, tab.devel_version
assert_equal @tab.head_version, tab.head_version