1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-03 13:49:49 +00:00

bitbake: tests/utils.py: add one more test cases for bb.utils.vercmp_string

* this is just another test case for issue already fixed in:
    commit fef56d28c3efec4876c379898cbc4d4c65303aee
    Author: Alexander Kanavin <alex.kanavin@gmail.com>
    Date:   Sun Feb 24 21:07:28 2019 +0100
    Subject: bitbake: fix version comparison when one of the versions ends in .

* The TypeError is triggered not by '.' at the end, but from the extra
  numberic component in one of the versions.

* When one version has fewer elements, it's extended by another (0, None)
  element where 0 means numeric component. Then the result cannot be
  decided by comparing the types (oa < ob, ob > oa) and it continues
  to compare values (ca < cb) which fails when one of them is the None
  from (0, None) appended before.

  ======================================================================
  ERROR: test_vercmpstring (bb.tests.utils.VerCmpString)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
    File "lib/bb/tests/utils.py", line 32, in test_vercmpstring
      result = bb.utils.vercmp_string('1a', '1a1')
    File "lib/bb/utils.py", line 131, in vercmp_string
      return vercmp(ta, tb)
    File "lib/bb/utils.py", line 123, in vercmp
      r = vercmp_part(va, vb)
    File "lib/bb/utils.py", line 112, in vercmp_part
      elif ca < cb:
  TypeError: '<' not supported between instances of 'NoneType' and 'int'

  ----------------------------------------------------------------------
  Ran 3 tests in 0.002s

(Bitbake rev: 9767fffe3115a1f1afa3c6a2b39720fefb8dc4d5)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Martin Jansa
2019-06-18 16:46:28 +00:00
committed by Richard Purdie
parent 9d91ba408e
commit 50d272863d
+4
View File
@@ -29,6 +29,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('1a', '1a1')
self.assertTrue(result < 0)
result = bb.utils.vercmp_string('1a1', '1a')
self.assertTrue(result > 0)
result = bb.utils.vercmp_string('1.', '1.1')
self.assertTrue(result < 0)
result = bb.utils.vercmp_string('1.1', '1.')