Files
poky/meta/lib/oeqa/selftest/cases/externalsrc.py
Richard Purdie 0549c498bd selftest/scripts: Update old git protocol references
git protocol accesses to our infrastructure are currently struggling and this
has highlighted a number of places we're making those obsolete access forms.

Update them to use https instead of the git protocol since it is preferred
and more reliable.

The devtool test needed quoting to handle the ';' in the url. The -f option
to devtool also shows a deprecation warning so remove that.

There were internal references to git protocol urls inside the nested git
submodules test report, which means those repos need updating to use
new git revisions.

(From OE-Core rev: cbb3e323b74d4351c772a9bcd553008c31a220f0)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 1ceba42623c5187d2f5a100d6a523abcdc75d34e)
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Paul Barker <paul@pbarker.dev>
2026-05-04 13:57:32 +01:00

45 lines
1.7 KiB
Python

#
# Copyright OpenEmbedded Contributors
#
# SPDX-License-Identifier: MIT
#
import os
import shutil
import tempfile
from oeqa.selftest.case import OESelftestTestCase
from oeqa.utils.commands import get_bb_var, runCmd
class ExternalSrc(OESelftestTestCase):
# test that srctree_hash_files does not crash
# we should be actually checking do_compile[file-checksums] but oeqa currently does not support it
# so we check only that a recipe with externalsrc can be parsed
def test_externalsrc_srctree_hash_files(self):
test_recipe = "git-submodule-test"
git_url = "https://git.yoctoproject.org/git-submodule-test"
externalsrc_dir = tempfile.TemporaryDirectory(prefix="externalsrc").name
self.write_config(
"""
INHERIT += "externalsrc"
EXTERNALSRC:pn-%s = "%s"
""" % (test_recipe, externalsrc_dir)
)
# test with git without submodules
runCmd('git clone %s %s' % (git_url, externalsrc_dir))
os.unlink(externalsrc_dir + "/.gitmodules")
open(".gitmodules", 'w').close() # local file .gitmodules in cwd should not affect externalsrc parsing
self.assertEqual(get_bb_var("S", test_recipe), externalsrc_dir, msg = "S does not equal to EXTERNALSRC")
os.unlink(".gitmodules")
# test with git with submodules
runCmd('git checkout .gitmodules', cwd=externalsrc_dir)
runCmd('git submodule update --init --recursive', cwd=externalsrc_dir)
self.assertEqual(get_bb_var("S", test_recipe), externalsrc_dir, msg = "S does not equal to EXTERNALSRC")
# test without git
shutil.rmtree(os.path.join(externalsrc_dir, ".git"))
self.assertEqual(get_bb_var("S", test_recipe), externalsrc_dir, msg = "S does not equal to EXTERNALSRC")