summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoss Burton <ross@burtonini.com>2021-04-06 14:34:20 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2021-04-06 22:37:19 +0100
commit394b98f7d77c199a4a022447ec5d722ffb7d1741 (patch)
treef1645ada0f7b6eac9c735590429bfabcfbf60fff
parentdc26d35e0935f30af55a3d2cb5c501d1b5c35437 (diff)
downloadopenembedded-core-contrib-394b98f7d77c199a4a022447ec5d722ffb7d1741.tar.gz
openembedded-core-contrib-394b98f7d77c199a4a022447ec5d722ffb7d1741.tar.bz2
openembedded-core-contrib-394b98f7d77c199a4a022447ec5d722ffb7d1741.zip
oeqa/selftest: add test case for SRC_URI dependency sniffing
Add tests to verify that SRC_URI dependency sniffing works correctly. Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oeqa/selftest/cases/fetch.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/meta/lib/oeqa/selftest/cases/fetch.py b/meta/lib/oeqa/selftest/cases/fetch.py
index 76cbadf2ff..67e85d3e4c 100644
--- a/meta/lib/oeqa/selftest/cases/fetch.py
+++ b/meta/lib/oeqa/selftest/cases/fetch.py
@@ -2,6 +2,9 @@
# SPDX-License-Identifier: MIT
#
+import tempfile
+import textwrap
+import bb.tinfoil
import oe.path
from oeqa.selftest.case import OESelftestTestCase
from oeqa.utils.commands import bitbake
@@ -49,3 +52,54 @@ MIRRORS_forcevariable = "git://.*/.* http://downloads.yoctoproject.org/mirror/so
self.write_config(features)
oe.path.remove(dldir, recurse=True)
bitbake("dbus-wait -c fetch -f")
+
+
+class Dependencies(OESelftestTestCase):
+ def write_recipe(self, content):
+ f = tempfile.NamedTemporaryFile(mode="wt", suffix=".bb")
+ f.write(content)
+ f.flush()
+ return f
+
+ def test_dependencies(self):
+ """
+ Verify that the correct dependencies are generated for specific SRC_URI entries.
+ """
+ with bb.tinfoil.Tinfoil() as tinfoil:
+ tinfoil.prepare(config_only=False, quiet=2)
+
+ r = """
+ LICENSE="CLOSED"
+ SRC_URI="http://example.com/tarball.zip"
+ """
+ f = self.write_recipe(textwrap.dedent(r))
+ d = tinfoil.parse_recipe_file(f.name)
+ self.assertIn("wget-native", d.getVarFlag("do_fetch", "depends"))
+ self.assertIn("unzip-native", d.getVarFlag("do_unpack", "depends"))
+
+ # Verify that the downloadfilename overrides the URI
+ r = """
+ LICENSE="CLOSED"
+ SRC_URI="https://example.com/tarball;downloadfilename=something.zip"
+ """
+ f = self.write_recipe(textwrap.dedent(r))
+ d = tinfoil.parse_recipe_file(f.name)
+ self.assertIn("wget-native", d.getVarFlag("do_fetch", "depends"))
+ self.assertIn("unzip-native", d.getVarFlag("do_unpack", "depends") or "")
+
+ r = """
+ LICENSE="CLOSED"
+ SRC_URI="ftp://example.com/tarball.lz"
+ """
+ f = self.write_recipe(textwrap.dedent(r))
+ d = tinfoil.parse_recipe_file(f.name)
+ self.assertIn("wget-native", d.getVarFlag("do_fetch", "depends"))
+ self.assertIn("lzip-native", d.getVarFlag("do_unpack", "depends"))
+
+ r = """
+ LICENSE="CLOSED"
+ SRC_URI="git://example.com/repo"
+ """
+ f = self.write_recipe(textwrap.dedent(r))
+ d = tinfoil.parse_recipe_file(f.name)
+ self.assertIn("git-native", d.getVarFlag("do_fetch", "depends"))