From 89d2b3876d515f61c43990ec3e63269dce011f5e Mon Sep 17 00:00:00 2001 From: Chen Qi Date: Thu, 15 May 2025 11:28:33 +0800 Subject: [PATCH] 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 Signed-off-by: Richard Purdie --- bitbake/lib/bb/tests/fetch.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py index 0091723601..3f42332588 100644 --- a/bitbake/lib/bb/tests/fetch.py +++ b/bitbake/lib/bb/tests/fetch.py @@ -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'):