diff options
author | Dylan Baker <dylan@pnwbakers.com> | 2019-04-23 10:41:43 -0700 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2019-04-25 12:28:51 -0700 |
commit | 914b591692c66cd9516da70930f4c6768ea93302 (patch) | |
tree | fef9c07757d15b0192799778d29054ddb23589e0 | |
parent | 397ac5921aa09fc0330513721acd43297cec376b (diff) | |
download | meson-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-x | run_unittests.py | 22 |
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): ''' |