bitbake: lib/bb/tests/fetch: add a test case to ensure git shallow fetch works for tag containing slash

Add a test case to ensure git shallow fetch succeeds for SRC_URI
with tag containing slash.

For example, we want to succeed for SRC_URI like below:
SRC_URI = "git://salsa.debian.org/debian/debianutils.git;protocol=https;branch=master;tag=debian/${PV}"

See the following link for more information:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=15862

(Bitbake rev: 919d4cf6e688e67229c46d30c84d523b21936377)

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Chen Qi 2025-05-15 11:28:33 +08:00 committed by Richard Purdie
parent 07f08063c1
commit 89d2b3876d

View File

@ -2281,6 +2281,19 @@ class GitShallowTest(FetcherTest):
self.assertRevCount(1)
assert os.path.exists(os.path.join(self.gitdir, '.git', 'shallow'))
def test_shallow_succeeds_with_tag_containing_slash(self):
self.add_empty_file('a')
self.add_empty_file('b')
self.git('tag t1/t2/t3', cwd=self.srcdir)
self.assertRevCount(2, cwd=self.srcdir)
srcrev = self.git('rev-parse HEAD', cwd=self.srcdir).strip()
self.d.setVar('SRCREV', srcrev)
uri = self.d.getVar('SRC_URI').split()[0]
uri = '%s;tag=t1/t2/t3' % uri
self.fetch_shallow(uri)
self.assertRevCount(1)
class GitLfsTest(FetcherTest):
def skipIfNoGitLFS():
if not shutil.which('git-lfs'):