diff mbox series

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

Message ID 20250514074839.2171099-1-Qi.Chen@windriver.com
State New
Headers show
Series [bitbake-devel] lib/bb/tests/fetch: add a test case to ensure git shallow fetch works for tag containing slash | expand

Commit Message

ChenQi May 14, 2025, 7:48 a.m. UTC
From: Chen Qi <Qi.Chen@windriver.com>

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}"

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
 bitbake/lib/bb/tests/fetch.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

Comments

Richard Purdie May 14, 2025, 10:14 a.m. UTC | #1
On Wed, 2025-05-14 at 15:48 +0800, Chen Qi via lists.openembedded.org wrote:
> From: Chen Qi <Qi.Chen@windriver.com>
> 
> 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}"
> 
> Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
> ---
>  bitbake/lib/bb/tests/fetch.py | 13 +++++++++++++
>  1 file changed, 13 insertions(+)

Thanks, this really helps us ensure these kinds of issues don't come back!

Cheers,

Richard
diff mbox series

Patch

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'):