aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2019-04-23 10:41:43 -0700
committerDylan Baker <dylan@pnwbakers.com>2019-04-25 12:28:51 -0700
commit914b591692c66cd9516da70930f4c6768ea93302 (patch)
treefef9c07757d15b0192799778d29054ddb23589e0
parent397ac5921aa09fc0330513721acd43297cec376b (diff)
downloadmeson-914b591692c66cd9516da70930f4c6768ea93302.zip
meson-914b591692c66cd9516da70930f4c6768ea93302.tar.gz
meson-914b591692c66cd9516da70930f4c6768ea93302.tar.bz2
run_unittets: extend version tests to cover other cases
Before this we only covered >, <, and ==, but we an apply some basic logic to know that a > b == !(a <= b), or that if a > b then a != b. This uncovered some bugs I wrote while working on this code.
-rwxr-xr-xrun_unittests.py22
1 files changed, 10 insertions, 12 deletions
diff --git a/run_unittests.py b/run_unittests.py
index 45d8538..2457a50 100755
--- a/run_unittests.py
+++ b/run_unittests.py
@@ -957,20 +957,18 @@ class InternalTests(unittest.TestCase):
ver_a = Version(a)
ver_b = Version(b)
if op is operator.eq:
- inverse = None
- name = 'eq'
+ for o, name in [(op, 'eq'), (operator.ge, 'ge'), (operator.le, 'le')]:
+ self.assertTrue(o(ver_a, ver_b), '{} {} {}'.format(ver_a, name, ver_b))
if op is operator.lt:
- inverse = operator.ge
- inv_name = 'ge'
- name = 'lt'
+ for o, name in [(op, 'lt'), (operator.le, 'le'), (operator.ne, 'ne')]:
+ self.assertTrue(o(ver_a, ver_b), '{} {} {}'.format(ver_a, name, ver_b))
+ for o, name in [(operator.gt, 'gt'), (operator.ge, 'ge'), (operator.eq, 'eq')]:
+ self.assertFalse(o(ver_a, ver_b), '{} {} {}'.format(ver_a, name, ver_b))
if op is operator.gt:
- inverse = operator.le
- inv_name = 'le'
- name = 'gt'
-
- self.assertTrue(op(ver_a, ver_b), '{} {} {}'.format(ver_a, name, ver_b))
- if inverse is not None:
- self.assertTrue(inverse(ver_b, ver_a), '{} {} {}'.format(ver_a, inv_name, ver_b))
+ for o, name in [(op, 'gt'), (operator.ge, 'ge'), (operator.ne, 'ne')]:
+ self.assertTrue(o(ver_a, ver_b), '{} {} {}'.format(ver_a, name, ver_b))
+ for o, name in [(operator.lt, 'lt'), (operator.le, 'le'), (operator.eq, 'eq')]:
+ self.assertFalse(o(ver_a, ver_b), '{} {} {}'.format(ver_a, name, ver_b))
def test_msvc_toolset_version(self):
'''