From fef56d28c3efec4876c379898cbc4d4c65303aee Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Sun, 24 Feb 2019 21:07:28 +0100 Subject: bitbake: fix version comparison when one of the versions ends in . Previously, this would happen: ====================================================================== ERROR: test_vercmpstring (bb.tests.utils.VerCmpString) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/alexander/development/poky/bitbake/lib/bb/tests/utils.py", line 45, in test_vercmpstring result = bb.utils.vercmp_string('1.', '1.1') File "/home/alexander/development/poky/bitbake/lib/bb/utils.py", line 143, in vercmp_string return vercmp(ta, tb) File "/home/alexander/development/poky/bitbake/lib/bb/utils.py", line 135, in vercmp r = vercmp_part(va, vb) File "/home/alexander/development/poky/bitbake/lib/bb/utils.py", line 124, in vercmp_part elif ca < cb: TypeError: '<' not supported between instances of 'NoneType' and 'int' ---------------------------------------------------------------------- Signed-off-by: Alexander Kanavin Signed-off-by: Richard Purdie --- lib/bb/tests/utils.py | 4 ++++ lib/bb/utils.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/lib/bb/tests/utils.py b/lib/bb/tests/utils.py index 2f4ccf3c6..f1cd83a41 100644 --- a/lib/bb/tests/utils.py +++ b/lib/bb/tests/utils.py @@ -42,6 +42,10 @@ class VerCmpString(unittest.TestCase): self.assertTrue(result < 0) result = bb.utils.vercmp_string('1.1', '1.0+1.1-beta1') self.assertTrue(result > 0) + result = bb.utils.vercmp_string('1.', '1.1') + self.assertTrue(result < 0) + result = bb.utils.vercmp_string('1.1', '1.') + self.assertTrue(result > 0) def test_explode_dep_versions(self): correctresult = {"foo" : ["= 1.10"]} diff --git a/lib/bb/utils.py b/lib/bb/utils.py index 9cb702dbb..b652a6838 100644 --- a/lib/bb/utils.py +++ b/lib/bb/utils.py @@ -121,6 +121,10 @@ def vercmp_part(a, b): return -1 elif oa > ob: return 1 + elif ca is None: + return -1 + elif cb is None: + return 1 elif ca < cb: return -1 elif ca > cb: -- cgit 1.2.3-korg