diff options
author | Peter Kjellerstedt <peter.kjellerstedt@axis.com> | 2022-01-29 03:29:35 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-02-05 17:46:44 +0000 |
commit | d40357665fd4c795080c794cbf4866ac305adff4 (patch) | |
tree | f61ad387af9d338416698c9c44d4192403c155a8 /bitbake | |
parent | c1117a8eaa60a995968bb32ef0964c07e44524c7 (diff) | |
download | poky-d40357665fd4c795080c794cbf4866ac305adff4.tar.gz |
bitbake: tests/fetch: Unify how git commands are run
This unifies the three separate implementations of git() from
GitMakeShallowTest, GitShallowTest and GitLfsTest into one
implementation in FetcherTest. It also makes use of this in
FetcherLocalTest and FetcherNetworkTest.
(Bitbake rev: 8c8b418c3e6f8ab2535ad405e8006ee1012f3484)
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/tests/fetch.py | 73 |
1 files changed, 27 insertions, 46 deletions
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py index 5cccdf6ef4..b1ff2c005f 100644 --- a/bitbake/lib/bb/tests/fetch.py +++ b/bitbake/lib/bb/tests/fetch.py | |||
@@ -393,6 +393,15 @@ class FetcherTest(unittest.TestCase): | |||
393 | bb.process.run('chmod u+rw -R %s' % self.tempdir) | 393 | bb.process.run('chmod u+rw -R %s' % self.tempdir) |
394 | bb.utils.prunedir(self.tempdir) | 394 | bb.utils.prunedir(self.tempdir) |
395 | 395 | ||
396 | def git(self, cmd, cwd=None): | ||
397 | if isinstance(cmd, str): | ||
398 | cmd = 'git ' + cmd | ||
399 | else: | ||
400 | cmd = ['git'] + cmd | ||
401 | if cwd is None: | ||
402 | cwd = self.gitdir | ||
403 | return bb.process.run(cmd, cwd=cwd)[0] | ||
404 | |||
396 | class MirrorUriTest(FetcherTest): | 405 | class MirrorUriTest(FetcherTest): |
397 | 406 | ||
398 | replaceuris = { | 407 | replaceuris = { |
@@ -699,28 +708,24 @@ class FetcherLocalTest(FetcherTest): | |||
699 | # Create dummy local Git repo | 708 | # Create dummy local Git repo |
700 | src_dir = tempfile.mkdtemp(dir=self.tempdir, | 709 | src_dir = tempfile.mkdtemp(dir=self.tempdir, |
701 | prefix='gitfetch_localusehead_') | 710 | prefix='gitfetch_localusehead_') |
702 | src_dir = os.path.abspath(src_dir) | 711 | self.gitdir = os.path.abspath(src_dir) |
703 | bb.process.run("git init", cwd=src_dir) | 712 | self.git('init') |
704 | bb.process.run("git config user.email 'you@example.com'", cwd=src_dir) | 713 | self.git('config user.email "you@example.com"') |
705 | bb.process.run("git config user.name 'Your Name'", cwd=src_dir) | 714 | self.git('config user.name "Your Name"') |
706 | bb.process.run("git commit --allow-empty -m'Dummy commit'", | 715 | self.git(['commit', '--allow-empty', '-m', 'Dummy commit']) |
707 | cwd=src_dir) | ||
708 | # Use other branch than master | 716 | # Use other branch than master |
709 | bb.process.run("git checkout -b my-devel", cwd=src_dir) | 717 | self.git(['checkout', '-b', 'my-devel']) |
710 | bb.process.run("git commit --allow-empty -m'Dummy commit 2'", | 718 | self.git(['commit', '--allow-empty', '-m', 'Dummy commit 2']) |
711 | cwd=src_dir) | 719 | orig_rev = self.git(['rev-parse', 'HEAD']).strip() |
712 | stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir) | ||
713 | orig_rev = stdout[0].strip() | ||
714 | 720 | ||
715 | # Fetch and check revision | 721 | # Fetch and check revision |
716 | self.d.setVar("SRCREV", "AUTOINC") | 722 | self.d.setVar("SRCREV", "AUTOINC") |
717 | url = "git://" + src_dir + ";protocol=file;" + suffix | 723 | url = "git://" + self.gitdir + ";protocol=file;" + suffix |
718 | fetcher = bb.fetch.Fetch([url], self.d) | 724 | fetcher = bb.fetch.Fetch([url], self.d) |
719 | fetcher.download() | 725 | fetcher.download() |
720 | fetcher.unpack(self.unpackdir) | 726 | fetcher.unpack(self.unpackdir) |
721 | stdout = bb.process.run("git rev-parse HEAD", | 727 | unpack_rev = self.git(['rev-parse', 'HEAD'], |
722 | cwd=os.path.join(self.unpackdir, 'git')) | 728 | cwd=os.path.join(self.unpackdir, 'git')).strip() |
723 | unpack_rev = stdout[0].strip() | ||
724 | self.assertEqual(orig_rev, unpack_rev) | 729 | self.assertEqual(orig_rev, unpack_rev) |
725 | 730 | ||
726 | def test_local_gitfetch_usehead(self): | 731 | def test_local_gitfetch_usehead(self): |
@@ -920,7 +925,8 @@ class FetcherNetworkTest(FetcherTest): | |||
920 | def gitfetcher(self, url1, url2): | 925 | def gitfetcher(self, url1, url2): |
921 | def checkrevision(self, fetcher): | 926 | def checkrevision(self, fetcher): |
922 | fetcher.unpack(self.unpackdir) | 927 | fetcher.unpack(self.unpackdir) |
923 | revision = bb.process.run("git rev-parse HEAD", shell=True, cwd=self.unpackdir + "/git")[0].strip() | 928 | revision = self.git(['rev-parse', 'HEAD'], |
929 | cwd=os.path.join(self.unpackdir, 'git')).strip() | ||
924 | self.assertEqual(revision, "270a05b0b4ba0959fe0624d2a4885d7b70426da5") | 930 | self.assertEqual(revision, "270a05b0b4ba0959fe0624d2a4885d7b70426da5") |
925 | 931 | ||
926 | self.d.setVar("BB_GENERATE_MIRROR_TARBALLS", "1") | 932 | self.d.setVar("BB_GENERATE_MIRROR_TARBALLS", "1") |
@@ -996,7 +1002,7 @@ class FetcherNetworkTest(FetcherTest): | |||
996 | recipeurl = "git://someserver.org/bitbake" | 1002 | recipeurl = "git://someserver.org/bitbake" |
997 | self.sourcedir = self.unpackdir.replace("unpacked", "sourcemirror.git") | 1003 | self.sourcedir = self.unpackdir.replace("unpacked", "sourcemirror.git") |
998 | os.chdir(self.tempdir) | 1004 | os.chdir(self.tempdir) |
999 | bb.process.run("git clone %s %s 2> /dev/null" % (realurl, self.sourcedir), shell=True) | 1005 | self.git(['clone', realurl, self.sourcedir], cwd=self.tempdir) |
1000 | self.d.setVar("PREMIRRORS", "%s git://%s;protocol=file" % (recipeurl, self.sourcedir)) | 1006 | self.d.setVar("PREMIRRORS", "%s git://%s;protocol=file" % (recipeurl, self.sourcedir)) |
1001 | self.gitfetcher(recipeurl, recipeurl) | 1007 | self.gitfetcher(recipeurl, recipeurl) |
1002 | 1008 | ||
@@ -1437,9 +1443,9 @@ class GitMakeShallowTest(FetcherTest): | |||
1437 | FetcherTest.setUp(self) | 1443 | FetcherTest.setUp(self) |
1438 | self.gitdir = os.path.join(self.tempdir, 'gitshallow') | 1444 | self.gitdir = os.path.join(self.tempdir, 'gitshallow') |
1439 | bb.utils.mkdirhier(self.gitdir) | 1445 | bb.utils.mkdirhier(self.gitdir) |
1440 | bb.process.run('git init', cwd=self.gitdir) | 1446 | self.git('init') |
1441 | bb.process.run('git config user.email "you@example.com"', cwd=self.gitdir) | 1447 | self.git('config user.email "you@example.com"') |
1442 | bb.process.run('git config user.name "Your Name"', cwd=self.gitdir) | 1448 | self.git('config user.name "Your Name"') |
1443 | 1449 | ||
1444 | def assertRefs(self, expected_refs): | 1450 | def assertRefs(self, expected_refs): |
1445 | actual_refs = self.git(['for-each-ref', '--format=%(refname)']).splitlines() | 1451 | actual_refs = self.git(['for-each-ref', '--format=%(refname)']).splitlines() |
@@ -1453,13 +1459,6 @@ class GitMakeShallowTest(FetcherTest): | |||
1453 | actual_count = len(revs.splitlines()) | 1459 | actual_count = len(revs.splitlines()) |
1454 | self.assertEqual(expected_count, actual_count, msg='Object count `%d` is not the expected `%d`' % (actual_count, expected_count)) | 1460 | self.assertEqual(expected_count, actual_count, msg='Object count `%d` is not the expected `%d`' % (actual_count, expected_count)) |
1455 | 1461 | ||
1456 | def git(self, cmd): | ||
1457 | if isinstance(cmd, str): | ||
1458 | cmd = 'git ' + cmd | ||
1459 | else: | ||
1460 | cmd = ['git'] + cmd | ||
1461 | return bb.process.run(cmd, cwd=self.gitdir)[0] | ||
1462 | |||
1463 | def make_shallow(self, args=None): | 1462 | def make_shallow(self, args=None): |
1464 | if args is None: | 1463 | if args is None: |
1465 | args = ['HEAD'] | 1464 | args = ['HEAD'] |
@@ -1595,15 +1594,6 @@ class GitShallowTest(FetcherTest): | |||
1595 | actual_count = len(revs.splitlines()) | 1594 | actual_count = len(revs.splitlines()) |
1596 | self.assertEqual(expected_count, actual_count, msg='Object count `%d` is not the expected `%d`' % (actual_count, expected_count)) | 1595 | self.assertEqual(expected_count, actual_count, msg='Object count `%d` is not the expected `%d`' % (actual_count, expected_count)) |
1597 | 1596 | ||
1598 | def git(self, cmd, cwd=None): | ||
1599 | if isinstance(cmd, str): | ||
1600 | cmd = 'git ' + cmd | ||
1601 | else: | ||
1602 | cmd = ['git'] + cmd | ||
1603 | if cwd is None: | ||
1604 | cwd = self.gitdir | ||
1605 | return bb.process.run(cmd, cwd=cwd)[0] | ||
1606 | |||
1607 | def add_empty_file(self, path, cwd=None, msg=None): | 1597 | def add_empty_file(self, path, cwd=None, msg=None): |
1608 | if msg is None: | 1598 | if msg is None: |
1609 | msg = path | 1599 | msg = path |
@@ -2140,7 +2130,7 @@ class GitLfsTest(FetcherTest): | |||
2140 | 2130 | ||
2141 | self.gitdir = os.path.join(self.tempdir, 'git') | 2131 | self.gitdir = os.path.join(self.tempdir, 'git') |
2142 | self.srcdir = os.path.join(self.tempdir, 'gitsource') | 2132 | self.srcdir = os.path.join(self.tempdir, 'gitsource') |
2143 | 2133 | ||
2144 | self.d.setVar('WORKDIR', self.tempdir) | 2134 | self.d.setVar('WORKDIR', self.tempdir) |
2145 | self.d.setVar('S', self.gitdir) | 2135 | self.d.setVar('S', self.gitdir) |
2146 | self.d.delVar('PREMIRRORS') | 2136 | self.d.delVar('PREMIRRORS') |
@@ -2158,15 +2148,6 @@ class GitLfsTest(FetcherTest): | |||
2158 | self.git(['add', '.gitattributes'], cwd=self.srcdir) | 2148 | self.git(['add', '.gitattributes'], cwd=self.srcdir) |
2159 | self.git(['commit', '-m', "attributes", '.gitattributes'], cwd=self.srcdir) | 2149 | self.git(['commit', '-m', "attributes", '.gitattributes'], cwd=self.srcdir) |
2160 | 2150 | ||
2161 | def git(self, cmd, cwd=None): | ||
2162 | if isinstance(cmd, str): | ||
2163 | cmd = 'git ' + cmd | ||
2164 | else: | ||
2165 | cmd = ['git'] + cmd | ||
2166 | if cwd is None: | ||
2167 | cwd = self.gitdir | ||
2168 | return bb.process.run(cmd, cwd=cwd)[0] | ||
2169 | |||
2170 | def fetch(self, uri=None, download=True): | 2151 | def fetch(self, uri=None, download=True): |
2171 | uris = self.d.getVar('SRC_URI').split() | 2152 | uris = self.d.getVar('SRC_URI').split() |
2172 | uri = uris[0] | 2153 | uri = uris[0] |