blob: 1d800dc82ca2daf52066edaf67405f3f4a8402f1 [file] [log] [blame]
#
# 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 = "git://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")