diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-03-18 22:17:17 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-03-20 13:50:40 +0000 |
commit | bdd2b0fee18c43597efc3493b9ac9ace9ccf7959 (patch) | |
tree | 622c16d7352f4b5b5207f12b0fc25bd4f1638c0f /bitbake/lib/bb/tests/fetch.py | |
parent | 67566c7410e1a3ec7ed4686b45908f25209494ec (diff) | |
download | poky-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.py | 116 |
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 | ||
3369 | class FetchPremirroronlyNetworkTest(FetcherTest): | 3263 | class 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() |