diff options
author | Aníbal Limón <anibal.limon@linux.intel.com> | 2014-11-05 12:10:28 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-11-12 15:25:17 +0000 |
commit | 7587877e5d683a30c2bd5e1ac1c4e327fac1ee1c (patch) | |
tree | 46be36149f9f63ce1a0a47268c8bcdaba318f65d /bitbake/lib/bb/tests | |
parent | 95c7b399518d102cd748c19017c564a53375c58c (diff) | |
download | poky-7587877e5d683a30c2bd5e1ac1c4e327fac1ee1c.tar.gz |
bitbake: fetch/git: Add latest_versionstring method
Being able to generate a version string representing the most recent git commit
given git is useful, not least for the package reporting system.
This adds in a latest_versionstring method to the git fetcher
which allows users to query the latest version using ls-remote
and filtering the responses.
The patch also adds unittests for this function so that if
improvements are made, the original test urls can be used
to evaulate the those changes.
This is based on code from Irina Patru <irina.patru@intel.com>.
(Bitbake rev: f71c8c0354e87fed80bc845db6728e6e18ce9c4d)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/bb/tests')
-rw-r--r-- | bitbake/lib/bb/tests/fetch.py | 44 |
1 files changed, 43 insertions, 1 deletions
diff --git a/bitbake/lib/bb/tests/fetch.py b/bitbake/lib/bb/tests/fetch.py index d95b43a5e3..aa9b222612 100644 --- a/bitbake/lib/bb/tests/fetch.py +++ b/bitbake/lib/bb/tests/fetch.py | |||
@@ -24,6 +24,7 @@ import tempfile | |||
24 | import subprocess | 24 | import subprocess |
25 | import os | 25 | import os |
26 | from bb.fetch2 import URI | 26 | from bb.fetch2 import URI |
27 | from bb.fetch2 import FetchMethod | ||
27 | import bb | 28 | import bb |
28 | 29 | ||
29 | class URITest(unittest.TestCase): | 30 | class URITest(unittest.TestCase): |
@@ -565,5 +566,46 @@ class URLHandle(unittest.TestCase): | |||
565 | result = bb.fetch.encodeurl(v) | 566 | result = bb.fetch.encodeurl(v) |
566 | self.assertEqual(result, k) | 567 | self.assertEqual(result, k) |
567 | 568 | ||
569 | class FetchMethodTest(FetcherTest): | ||
570 | |||
571 | test_git_uris = { | ||
572 | # version pattern "X.Y.Z" | ||
573 | ("mx-1.0", "git://github.com/clutter-project/mx.git;branch=mx-1.4", "9b1db6b8060bd00b121a692f942404a24ae2960f", "") | ||
574 | : "1.99.4", | ||
575 | # version pattern "vX.Y" | ||
576 | ("mtd-utils", "git://git.infradead.org/mtd-utils.git", "ca39eb1d98e736109c64ff9c1aa2a6ecca222d8f", "") | ||
577 | : "1.5.0", | ||
578 | # version pattern "pkg_name-X.Y" | ||
579 | ("presentproto", "git://anongit.freedesktop.org/git/xorg/proto/presentproto", "24f3a56e541b0a9e6c6ee76081f441221a120ef9", "") | ||
580 | : "1.0", | ||
581 | # version pattern "pkg_name-vX.Y.Z" | ||
582 | ("dtc", "git://git.qemu.org/dtc.git", "65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf", "") | ||
583 | : "1.4.0", | ||
584 | # combination version pattern | ||
585 | ("sysprof", "git://git.gnome.org/sysprof", "cd44ee6644c3641507fb53b8a2a69137f2971219", "") | ||
586 | : "1.2.0", | ||
587 | ("u-boot-mkimage", "git://git.denx.de/u-boot.git;branch=master;protocol=git", "62c175fbb8a0f9a926c88294ea9f7e88eb898f6c", "") | ||
588 | : "2014.01", | ||
589 | # version pattern "yyyymmdd" | ||
590 | ("mobile-broadband-provider-info", "git://git.gnome.org/mobile-broadband-provider-info", "4ed19e11c2975105b71b956440acdb25d46a347d", "") | ||
591 | : "20120614", | ||
592 | # packages with a valid GITTAGREGEX | ||
593 | ("xf86-video-omap", "git://anongit.freedesktop.org/xorg/driver/xf86-video-omap", "ae0394e687f1a77e966cf72f895da91840dffb8f", "(?P<pver>(\d+\.(\d\.?)*))") | ||
594 | : "0.4.3", | ||
595 | ("build-appliance-image", "git://git.yoctoproject.org/poky", "b37dd451a52622d5b570183a81583cc34c2ff555", "(?P<pver>(([0-9][\.|_]?)+[0-9]))") | ||
596 | : "11.0.0", | ||
597 | ("chkconfig-alternatives-native", "git://github.com/kergoth/chkconfig;branch=sysroot", "cd437ecbd8986c894442f8fce1e0061e20f04dee", "chkconfig\-(?P<pver>((\d+[\.\-_]*)+))") | ||
598 | : "1.3.59", | ||
599 | ("remake", "git://github.com/rocky/remake.git", "f05508e521987c8494c92d9c2871aec46307d51d", "(?P<pver>(\d+\.(\d+\.)*\d*(\+dbg\d+(\.\d+)*)*))") | ||
600 | : "3.82+dbg0.9", | ||
601 | } | ||
568 | 602 | ||
569 | 603 | def test_git_latest_versionstring(self): | |
604 | for k, v in self.test_git_uris.items(): | ||
605 | self.d.setVar("SRCREV", k[2]) | ||
606 | self.d.setVar("GITTAGREGEX", k[3]) | ||
607 | ud = bb.fetch2.FetchData(k[1], self.d) | ||
608 | verstring = ud.method.latest_versionstring(ud, self.d) | ||
609 | print("Package %s, version: %s <= %s" % (k[0], v, verstring)) | ||
610 | r = bb.utils.vercmp_string(v, verstring) | ||
611 | self.assertTrue(r == -1 or r == 0) | ||