summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/bb/tests/fetch.py
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2025-03-18 22:17:17 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-03-20 13:50:40 +0000
commitbdd2b0fee18c43597efc3493b9ac9ace9ccf7959 (patch)
tree622c16d7352f4b5b5207f12b0fc25bd4f1638c0f /bitbake/lib/bb/tests/fetch.py
parent67566c7410e1a3ec7ed4686b45908f25209494ec (diff)
downloadpoky-bdd2b0fee18c43597efc3493b9ac9ace9ccf7959.tar.gz
bitbake: fetch: Drop multiple branch/revision support for single git urls
We used to use this for bare clones where a single git url could handle multiple revisions (which implied multiple branches). We don't use this any more and I doubt we'd want to go back to it. If we remove it, we can simplfy the looping in the code which seems desireable. This patch does change the warning for missing branch parameters to a error. The message has hinted about that for long enough. Some test cases are removed since they are no longer needed. (Bitbake rev: 2515fbd10824005fa7f34e87706000c079920366) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/tests/fetch.py')
-rw-r--r--bitbake/lib/bb/tests/fetch.py116
1 files changed, 5 insertions, 111 deletions
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py
index 8fa870c8a1..486c10cd08 100644
--- a/bitbake/lib/bb/tests/fetch.py
+++ b/bitbake/lib/bb/tests/fetch.py
@@ -2060,60 +2060,6 @@ class GitShallowTest(FetcherTest):
2060 assert './.git/annex/' in bb.process.run('tar -tzf %s' % os.path.join(self.dldir, ud.mirrortarballs[0]))[0] 2060 assert './.git/annex/' in bb.process.run('tar -tzf %s' % os.path.join(self.dldir, ud.mirrortarballs[0]))[0]
2061 assert os.path.exists(os.path.join(self.gitdir, 'c')) 2061 assert os.path.exists(os.path.join(self.gitdir, 'c'))
2062 2062
2063 def test_shallow_multi_one_uri(self):
2064 # Create initial git repo
2065 self.add_empty_file('a')
2066 self.add_empty_file('b')
2067 self.git('checkout -b a_branch', cwd=self.srcdir)
2068 self.add_empty_file('c')
2069 self.git('tag v0.0 HEAD', cwd=self.srcdir)
2070 self.add_empty_file('d')
2071 self.git('checkout master', cwd=self.srcdir)
2072 self.add_empty_file('e')
2073 self.git('merge --no-ff --no-edit a_branch', cwd=self.srcdir)
2074 self.add_empty_file('f')
2075 self.assertRevCount(7, cwd=self.srcdir)
2076
2077 uri = self.d.getVar('SRC_URI').split()[0]
2078 uri = '%s;branch=master,a_branch;name=master,a_branch' % uri
2079
2080 self.d.setVar('BB_GIT_SHALLOW_DEPTH', '0')
2081 self.d.setVar('BB_GIT_SHALLOW_REVS', 'v0.0')
2082 self.d.setVar('SRCREV_master', '${AUTOREV}')
2083 self.d.setVar('SRCREV_a_branch', '${AUTOREV}')
2084
2085 self.fetch_shallow(uri)
2086
2087 self.assertRevCount(4)
2088 self.assertRefs(['master', 'origin/master', 'origin/a_branch'])
2089
2090 def test_shallow_multi_one_uri_depths(self):
2091 # Create initial git repo
2092 self.add_empty_file('a')
2093 self.add_empty_file('b')
2094 self.git('checkout -b a_branch', cwd=self.srcdir)
2095 self.add_empty_file('c')
2096 self.add_empty_file('d')
2097 self.git('checkout master', cwd=self.srcdir)
2098 self.add_empty_file('e')
2099 self.git('merge --no-ff --no-edit a_branch', cwd=self.srcdir)
2100 self.add_empty_file('f')
2101 self.assertRevCount(7, cwd=self.srcdir)
2102
2103 uri = self.d.getVar('SRC_URI').split()[0]
2104 uri = '%s;branch=master,a_branch;name=master,a_branch' % uri
2105
2106 self.d.setVar('BB_GIT_SHALLOW_DEPTH', '0')
2107 self.d.setVar('BB_GIT_SHALLOW_DEPTH_master', '3')
2108 self.d.setVar('BB_GIT_SHALLOW_DEPTH_a_branch', '1')
2109 self.d.setVar('SRCREV_master', '${AUTOREV}')
2110 self.d.setVar('SRCREV_a_branch', '${AUTOREV}')
2111
2112 self.fetch_shallow(uri)
2113
2114 self.assertRevCount(4, ['--all'])
2115 self.assertRefs(['master', 'origin/master', 'origin/a_branch'])
2116
2117 def test_shallow_clone_preferred_over_shallow(self): 2063 def test_shallow_clone_preferred_over_shallow(self):
2118 self.add_empty_file('a') 2064 self.add_empty_file('a')
2119 self.add_empty_file('b') 2065 self.add_empty_file('b')
@@ -3313,58 +3259,6 @@ class FetchPremirroronlyLocalTest(FetcherTest):
3313 with self.assertRaises(bb.fetch2.NetworkAccess): 3259 with self.assertRaises(bb.fetch2.NetworkAccess):
3314 fetcher.download() 3260 fetcher.download()
3315 3261
3316 def test_mirror_tarball_multiple_branches(self):
3317 """
3318 test if PREMIRRORS can handle multiple name/branches correctly
3319 both branches have required revisions
3320 """
3321 self.make_git_repo()
3322 branch1rev = self.git_new_branch("testbranch1")
3323 branch2rev = self.git_new_branch("testbranch2")
3324 self.recipe_url = "git://git.fake.repo/bitbake;branch=testbranch1,testbranch2;protocol=https;name=branch1,branch2"
3325 self.d.setVar("SRCREV_branch1", branch1rev)
3326 self.d.setVar("SRCREV_branch2", branch2rev)
3327 fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
3328 self.assertTrue(os.path.exists(self.mirrorfile), "Mirror file doesn't exist")
3329 fetcher.download()
3330 fetcher.unpack(os.path.join(self.tempdir, "unpacked"))
3331 unpacked = os.path.join(self.tempdir, "unpacked", "git", self.testfilename)
3332 self.assertTrue(os.path.exists(unpacked), "Repo has not been unpackaged properly!")
3333 with open(unpacked, 'r') as f:
3334 content = f.read()
3335 ## We expect to see testbranch1 in the file, not master, not testbranch2
3336 self.assertTrue(content.find("testbranch1") != -1, "Wrong branch has been checked out!")
3337
3338 def test_mirror_tarball_multiple_branches_nobranch(self):
3339 """
3340 test if PREMIRRORS can handle multiple name/branches correctly
3341 Unbalanced name/branches raises ParameterError
3342 """
3343 self.make_git_repo()
3344 branch1rev = self.git_new_branch("testbranch1")
3345 branch2rev = self.git_new_branch("testbranch2")
3346 self.recipe_url = "git://git.fake.repo/bitbake;branch=testbranch1;protocol=https;name=branch1,branch2"
3347 self.d.setVar("SRCREV_branch1", branch1rev)
3348 self.d.setVar("SRCREV_branch2", branch2rev)
3349 with self.assertRaises(bb.fetch2.ParameterError):
3350 fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
3351
3352 def test_mirror_tarball_multiple_branches_norev(self):
3353 """
3354 test if PREMIRRORS can handle multiple name/branches correctly
3355 one of the branches specifies non existing SRCREV
3356 """
3357 self.make_git_repo()
3358 branch1rev = self.git_new_branch("testbranch1")
3359 branch2rev = self.git_new_branch("testbranch2")
3360 self.recipe_url = "git://git.fake.repo/bitbake;branch=testbranch1,testbranch2;protocol=https;name=branch1,branch2"
3361 self.d.setVar("SRCREV_branch1", branch1rev)
3362 self.d.setVar("SRCREV_branch2", "0"*40)
3363 fetcher = bb.fetch.Fetch([self.recipe_url], self.d)
3364 self.assertTrue(os.path.exists(self.mirrorfile), "Mirror file doesn't exist")
3365 with self.assertRaises(bb.fetch2.NetworkAccess):
3366 fetcher.download()
3367
3368 3262
3369class FetchPremirroronlyNetworkTest(FetcherTest): 3263class FetchPremirroronlyNetworkTest(FetcherTest):
3370 3264
@@ -3571,7 +3465,7 @@ class GoModGitTest(FetcherTest):
3571 ud = fetcher.ud[urls[0]] 3465 ud = fetcher.ud[urls[0]]
3572 self.assertEqual(ud.host, 'go.googlesource.com') 3466 self.assertEqual(ud.host, 'go.googlesource.com')
3573 self.assertEqual(ud.path, '/net') 3467 self.assertEqual(ud.path, '/net')
3574 self.assertEqual(ud.names, ['golang.org/x/net@v0.9.0']) 3468 self.assertEqual(ud.name, 'golang.org/x/net@v0.9.0')
3575 self.assertEqual(self.d.getVar('SRCREV_golang.org/x/net@v0.9.0'), '694cff8668bac64e0864b552bffc280cd27f21b1') 3469 self.assertEqual(self.d.getVar('SRCREV_golang.org/x/net@v0.9.0'), '694cff8668bac64e0864b552bffc280cd27f21b1')
3576 3470
3577 fetcher.download() 3471 fetcher.download()
@@ -3597,7 +3491,7 @@ class GoModGitTest(FetcherTest):
3597 self.assertEqual(ud.host, 'github.com') 3491 self.assertEqual(ud.host, 'github.com')
3598 self.assertEqual(ud.path, '/Azure/azure-sdk-for-go') 3492 self.assertEqual(ud.path, '/Azure/azure-sdk-for-go')
3599 self.assertEqual(ud.parm['subpath'], 'sdk/storage/azblob') 3493 self.assertEqual(ud.parm['subpath'], 'sdk/storage/azblob')
3600 self.assertEqual(ud.names, ['github.com/Azure/azure-sdk-for-go/sdk/storage/azblob@v1.0.0']) 3494 self.assertEqual(ud.name, 'github.com/Azure/azure-sdk-for-go/sdk/storage/azblob@v1.0.0')
3601 self.assertEqual(self.d.getVar('SRCREV_github.com/Azure/azure-sdk-for-go/sdk/storage/azblob@v1.0.0'), 'ec928e0ed34db682b3f783d3739d1c538142e0c3') 3495 self.assertEqual(self.d.getVar('SRCREV_github.com/Azure/azure-sdk-for-go/sdk/storage/azblob@v1.0.0'), 'ec928e0ed34db682b3f783d3739d1c538142e0c3')
3602 3496
3603 fetcher.download() 3497 fetcher.download()
@@ -3621,7 +3515,7 @@ class GoModGitTest(FetcherTest):
3621 ud = fetcher.ud[urls[0]] 3515 ud = fetcher.ud[urls[0]]
3622 self.assertEqual(ud.host, 'gopkg.in') 3516 self.assertEqual(ud.host, 'gopkg.in')
3623 self.assertEqual(ud.path, '/ini.v1') 3517 self.assertEqual(ud.path, '/ini.v1')
3624 self.assertEqual(ud.names, ['gopkg.in/ini.v1@v1.67.0']) 3518 self.assertEqual(ud.name, 'gopkg.in/ini.v1@v1.67.0')
3625 self.assertEqual(ud.parm['srcrev'], 'b2f570e5b5b844226bbefe6fb521d891f529a951') 3519 self.assertEqual(ud.parm['srcrev'], 'b2f570e5b5b844226bbefe6fb521d891f529a951')
3626 3520
3627 fetcher.download() 3521 fetcher.download()
@@ -3643,7 +3537,7 @@ class GoModGitTest(FetcherTest):
3643 ud = fetcher.ud[urls[0]] 3537 ud = fetcher.ud[urls[0]]
3644 self.assertEqual(ud.host, 'gopkg.in') 3538 self.assertEqual(ud.host, 'gopkg.in')
3645 self.assertEqual(ud.path, '/ini.v1') 3539 self.assertEqual(ud.path, '/ini.v1')
3646 self.assertEqual(ud.names, ['gopkg.in/ini.v1@v1.67.0']) 3540 self.assertEqual(ud.name, 'gopkg.in/ini.v1@v1.67.0')
3647 self.assertEqual(self.d.getVar('SRCREV_gopkg.in/ini.v1@v1.67.0'), 'b2f570e5b5b844226bbefe6fb521d891f529a951') 3541 self.assertEqual(self.d.getVar('SRCREV_gopkg.in/ini.v1@v1.67.0'), 'b2f570e5b5b844226bbefe6fb521d891f529a951')
3648 3542
3649 fetcher.download() 3543 fetcher.download()
@@ -3666,7 +3560,7 @@ class GoModGitTest(FetcherTest):
3666 ud = fetcher.ud[urls[0]] 3560 ud = fetcher.ud[urls[0]]
3667 self.assertEqual(ud.host, 'github.com') 3561 self.assertEqual(ud.host, 'github.com')
3668 self.assertEqual(ud.path, '/census-instrumentation/opencensus-go') 3562 self.assertEqual(ud.path, '/census-instrumentation/opencensus-go')
3669 self.assertEqual(ud.names, ['go.opencensus.io@v0.24.0']) 3563 self.assertEqual(ud.name, 'go.opencensus.io@v0.24.0')
3670 self.assertEqual(self.d.getVar('SRCREV_go.opencensus.io@v0.24.0'), 'b1a01ee95db0e690d91d7193d037447816fae4c5') 3564 self.assertEqual(self.d.getVar('SRCREV_go.opencensus.io@v0.24.0'), 'b1a01ee95db0e690d91d7193d037447816fae4c5')
3671 3565
3672 fetcher.download() 3566 fetcher.download()