Add pile of further dependency match testcases
authorPanu Matilainen <pmatilai@redhat.com>
Fri, 17 Dec 2010 07:19:48 +0000 (09:19 +0200)
committerPanu Matilainen <pmatilai@redhat.com>
Fri, 17 Dec 2010 07:19:48 +0000 (09:19 +0200)
- Test for provide ranges, versionless dependencies and different names
- Tabify the test-table for readability + editability

tests/rpmdepmatch.at

index a7843b4..80a9a28 100644 (file)
@@ -4,83 +4,141 @@ AT_BANNER([RPM dependency matching])
 RPMPY_CHECK([provide - require pairs],[
 # ((provides), (requires), match) expected values
 tests = [
-    (('=', '1.2'),     ('=', '1.2'),    1),
-    (('=', '1.2'),     ('>=', '1.2'),   1),
-    (('=', '1.2'),     ('<=', '1.2'),   1),
-    (('=', '1.2'),     ('<', '1.2'),    0),
-    (('=', '1.2'),     ('>', '1.2'),    0),
-    (('=', '1.2'),     ('<>', '1.2'),   0),
-
-    (('=', '1.2'),     ('=', '1.3'),    0),
-    (('=', '1.2'),     ('>=', '1.3'),   0),
-    (('=', '1.2'),     ('<=', '1.3'),   1),
-    (('=', '1.2'),     ('<', '1.3'),    1),
-    (('=', '1.2'),     ('>', '1.3'),    0),
-    (('=', '1.2'),     ('<>', '1.3'),   1),
-
-    (('=', '1.2-1'),   ('=', '1.2-1'),  1),
-    (('=', '1.2-1'),   ('>=', '1.2-1'), 1),
-    (('=', '1.2-1'),   ('<=', '1.2-1'), 1),
-    (('=', '1.2-1'),   ('<', '1.2-1'),  0),
-    (('=', '1.2-1'),   ('>', '1.2-1'),  0),
-    (('=', '1.2-1'),   ('<>', '1.2-1'), 0),
-
-    (('=', '1.2-1'),   ('=', '1.2-2'),  0),
-    (('=', '1.2-1'),   ('>=', '1.2-2'), 0),
-    (('=', '1.2-1'),   ('<=', '1.2-2'), 1),
-    (('=', '1.2-1'),   ('<', '1.2-2'),  1),
-    (('=', '1.2-1'),   ('>', '1.2-2'),  0),
-    (('=', '1.2-1'),   ('<>', '1.2-2'), 1),
-
-    (('=', '1.3-1'),   ('=', '1.2-2'),  0),
-    (('=', '1.3-1'),   ('>=', '1.2-2'), 1),
-    (('=', '1.3-1'),   ('<=', '1.2-2'), 0),
-    (('=', '1.3-1'),   ('<', '1.2-2'),  0),
-    (('=', '1.3-1'),   ('>', '1.2-2'),  1),
-    (('=', '1.3-1'),   ('<>', '1.2-2'), 1),
-
-    (('=', '0:1.2'),   ('=', '1.2'),    1),
-    (('=', '0:1.2'),   ('>=', '1.2'),   1),
-    (('=', '0:1.2'),   ('<=', '1.2'),   1),
-    (('=', '0:1.2'),   ('<', '1.2'),    0),
-    (('=', '0:1.2'),   ('>', '1.2'),    0),
-    (('=', '0:1.2'),   ('<>', '1.2'),   0),
-
-    (('=', '1.2'),     ('=', '0:1.2'),  1),
-    (('=', '1.2'),     ('>=', '0:1.2'), 1),
-    (('=', '1.2'),     ('<=', '0:1.2'), 1),
-    (('=', '1.2'),     ('<', '0:1.2'),  0),
-    (('=', '1.2'),     ('>', '0:1.2'),  0),
-    (('=', '1.2'),     ('<>', '0:1.2'), 0),
-
-    (('=', '1:1.2'),   ('=', '1.2'),    0),
-    (('=', '1:1.2'),   ('>=', '1.2'),   1),
-    (('=', '1:1.2'),   ('<=', '1.2'),   0),
-    (('=', '1:1.2'),   ('<', '1.2'),    0),
-    (('=', '1:1.2'),   ('>', '1.2'),    1),
-    (('=', '1:1.2'),   ('<>', '1.2'),   1),
-
-    (('=', '1.2'),   ('=', '1:1.2'),    0),
-    (('=', '1.2'),   ('>=', '1:1.2'),   0),
-    (('=', '1.2'),   ('<=', '1:1.2'),   1),
-    (('=', '1.2'),   ('<', '1:1.2'),    1),
-    (('=', '1.2'),   ('>', '1:1.2'),    0),
-    (('=', '1.2'),   ('<>', '1:1.2'),   1),
-
-    (('=', '2:1.2'),   ('=', '2:1.2'),  1),
-    (('=', '2:1.2'),   ('>=', '2:1.2'), 1),
-    (('=', '2:1.2'),   ('<=', '2:1.2'), 1),
-    (('=', '2:1.2'),   ('<', '2:1.2'),  0),
-    (('=', '2:1.2'),   ('>', '2:1.2'),  0),
-    (('=', '2:1.2'),   ('<>', '2:1.2'), 0),
+    (('b',),                   ('a',),                 0),
+    (('b',),                   ('a', '=', '1.2'),      0),
+    (('b',),                   ('a', '>=', '1.2'),     0),
+    (('b',),                   ('a', '<=', '1.2'),     0),
+    (('b',),                   ('a', '<', '1.2'),      0),
+    (('b',),                   ('a', '>', '1.2'),      0),
+    (('b',),                   ('a', '<>', '1.2'),     0),
+
+    (('a',),                   ('a',),                 1),
+    (('a',),                   ('a', '=', '1.2'),      1),
+    (('a',),                   ('a', '>=', '1.2'),     1),
+    (('a',),                   ('a', '<=', '1.2'),     1),
+    (('a',),                   ('a', '<', '1.2'),      1),
+    (('a',),                   ('a', '>', '1.2'),      1),
+    (('a',),                   ('a', '<>', '1.2'),     1),
+
+    (('a', '=', '1.2'),                ('a',),                 1),
+    (('a', '<', '1.2'),                ('a',),                 1),
+    (('a', '>', '1.2'),                ('a',),                 1),
+    (('a', '<=', '1.2'),       ('a',),                 1),
+    (('a', '>=', '1.2'),       ('a',),                 1),
+    (('a', '<>', '1.2'),       ('a',),                 1),
+
+    (('a', '=', '1.2'),                ('a', '=', '1.2'),      1),
+    (('a', '=', '1.2'),                ('a', '>=', '1.2'),     1),
+    (('a', '=', '1.2'),                ('a', '<=', '1.2'),     1),
+    (('a', '=', '1.2'),                ('a', '<', '1.2'),      0),
+    (('a', '=', '1.2'),                ('a', '>', '1.2'),      0),
+    (('a', '=', '1.2'),                ('a', '<>', '1.2'),     0),
+
+    (('a', '=', '1.2'),                ('a', '=', '1.3'),      0),
+    (('a', '=', '1.2'),                ('a', '>=', '1.3'),     0),
+    (('a', '=', '1.2'),                ('a', '<=', '1.3'),     1),
+    (('a', '=', '1.2'),                ('a', '<', '1.3'),      1),
+    (('a', '=', '1.2'),                ('a', '>', '1.3'),      0),
+    (('a', '=', '1.2'),                ('a', '<>', '1.3'),     1),
+    (('a', '=', '1.2-1'),      ('a', '=', '1.2-1'),    1),
+    (('a', '=', '1.2-1'),      ('a', '>=', '1.2-1'),   1),
+    (('a', '=', '1.2-1'),      ('a', '<=', '1.2-1'),   1),
+    (('a', '=', '1.2-1'),      ('a', '<', '1.2-1'),    0),
+    (('a', '=', '1.2-1'),      ('a', '>', '1.2-1'),    0),
+    (('a', '=', '1.2-1'),      ('a', '<>', '1.2-1'),   0),
+
+    (('a', '=', '1.2-1'),      ('a', '=', '1.2-2'),    0),
+    (('a', '=', '1.2-1'),      ('a', '>=', '1.2-2'),   0),
+    (('a', '=', '1.2-1'),      ('a', '<=', '1.2-2'),   1),
+    (('a', '=', '1.2-1'),      ('a', '<', '1.2-2'),    1),
+    (('a', '=', '1.2-1'),      ('a', '>', '1.2-2'),    0),
+    (('a', '=', '1.2-1'),      ('a', '<>', '1.2-2'),   1),
+
+    (('a', '=', '1.3-1'),      ('a', '=', '1.2-2'),    0),
+    (('a', '=', '1.3-1'),      ('a', '>=', '1.2-2'),   1),
+    (('a', '=', '1.3-1'),      ('a', '<=', '1.2-2'),   0),
+    (('a', '=', '1.3-1'),      ('a', '<', '1.2-2'),    0),
+    (('a', '=', '1.3-1'),      ('a', '>', '1.2-2'),    1),
+    (('a', '=', '1.3-1'),      ('a', '<>', '1.2-2'),   1),
+
+    (('a', '=', '0:1.2'),      ('a', '=', '1.2'),      1),
+    (('a', '=', '0:1.2'),      ('a', '>=', '1.2'),     1),
+    (('a', '=', '0:1.2'),      ('a', '<=', '1.2'),     1),
+    (('a', '=', '0:1.2'),      ('a', '<', '1.2'),      0),
+    (('a', '=', '0:1.2'),      ('a', '>', '1.2'),      0),
+    (('a', '=', '0:1.2'),      ('a', '<>', '1.2'),     0),
+
+    (('a', '=', '1.2'),                ('a', '=', '0:1.2'),    1),
+    (('a', '=', '1.2'),                ('a', '>=', '0:1.2'),   1),
+    (('a', '=', '1.2'),                ('a', '<=', '0:1.2'),   1),
+    (('a', '=', '1.2'),                ('a', '<', '0:1.2'),    0),
+    (('a', '=', '1.2'),                ('a', '>', '0:1.2'),    0),
+    (('a', '=', '1.2'),                ('a', '<>', '0:1.2'),   0),
+
+    (('a', '=', '1:1.2'),      ('a', '=', '1.2'),      0),
+    (('a', '=', '1:1.2'),      ('a', '>=', '1.2'),     1),
+    (('a', '=', '1:1.2'),      ('a', '<=', '1.2'),     0),
+    (('a', '=', '1:1.2'),      ('a', '<', '1.2'),      0),
+    (('a', '=', '1:1.2'),      ('a', '>', '1.2'),      1),
+    (('a', '=', '1:1.2'),      ('a', '<>', '1.2'),     1),
+
+    (('a', '=', '1.2'),                ('a', '=', '1:1.2'),    0),
+    (('a', '=', '1.2'),                ('a', '>=', '1:1.2'),   0),
+    (('a', '=', '1.2'),                ('a', '<=', '1:1.2'),   1),
+    (('a', '=', '1.2'),                ('a', '<', '1:1.2'),    1),
+    (('a', '=', '1.2'),                ('a', '>', '1:1.2'),    0),
+    (('a', '=', '1.2'),                ('a', '<>', '1:1.2'),   1),
+
+    (('a', '=', '2:1.2'),      ('a', '=', '2:1.2'),    1),
+    (('a', '=', '2:1.2'),      ('a', '>=', '2:1.2'),   1),
+    (('a', '=', '2:1.2'),      ('a', '<=', '2:1.2'),   1),
+    (('a', '=', '2:1.2'),      ('a', '<', '2:1.2'),    0),
+    (('a', '=', '2:1.2'),      ('a', '>', '2:1.2'),    0),
+    (('a', '=', '2:1.2'),      ('a', '<>', '2:1.2'),   0),
+
+    (('a', '>', '1.2'),                ('a', '=', '1.2'),      0),
+    (('a', '>', '1.2'),                ('a', '>=', '1.2'),     1),
+    (('a', '>', '1.2'),                ('a', '<=', '1.2'),     0),
+    (('a', '>', '1.2'),                ('a', '<', '1.2'),      0),
+    (('a', '>', '1.2'),                ('a', '>', '1.2'),      1),
+    (('a', '>', '1.2'),                ('a', '<>', '1.2'),     1),
+
+    (('a', '<', '1.2'),                ('a', '=', '1.2'),      0),
+    (('a', '<', '1.2'),                ('a', '>=', '1.2'),     0),
+    (('a', '<', '1.2'),                ('a', '<=', '1.2'),     1),
+    (('a', '<', '1.2'),                ('a', '<', '1.2'),      1),
+    (('a', '<', '1.2'),                ('a', '>', '1.2'),      0),
+    (('a', '<', '1.2'),                ('a', '<>', '1.2'),     1),
+
+    (('a', '>=', '1.2'),       ('a', '=', '1.2'),      1),
+    (('a', '>=', '1.2'),       ('a', '>=', '1.2'),     1),
+    (('a', '>=', '1.2'),       ('a', '<=', '1.2'),     1),
+    (('a', '>=', '1.2'),       ('a', '<', '1.2'),      0),
+    (('a', '>=', '1.2'),       ('a', '>', '1.2'),      1),
+    (('a', '>=', '1.2'),       ('a', '<>', '1.2'),     1),
+
+    (('a', '<=', '1.2'),       ('a', '=', '1.2'),      1),
+    (('a', '<=', '1.2'),       ('a', '>=', '1.2'),     1),
+    (('a', '<=', '1.2'),       ('a', '<=', '1.2'),     1),
+    (('a', '<=', '1.2'),       ('a', '<', '1.2'),      1),
+    (('a', '<=', '1.2'),       ('a', '>', '1.2'),      0),
+    (('a', '<=', '1.2'),       ('a', '<>', '1.2'),     1),
+
+    (('a', '<>', '1.2'),       ('a', '=', '1.2'),      0),
+    (('a', '<>', '1.2'),       ('a', '>=', '1.2'),     1),
+    (('a', '<>', '1.2'),       ('a', '<=', '1.2'),     1),
+    (('a', '<>', '1.2'),       ('a', '<', '1.2'),      1),
+    (('a', '<>', '1.2'),       ('a', '>', '1.2'),      1),
+    (('a', '<>', '1.2'),       ('a', '<>', '1.2'),     1),
 ]
 
 ms = ['no match', 'match']
 
 myprint() # dumb kludge to fixup expected output
-for pv, rv, res in tests:
-    d1 = rpm.ds(('A', pv[0], pv[1]), 'provides')
-    d2 = rpm.ds(('A', rv[0], rv[1]), 'requires')
+for p, r, res in tests:
+    d1 = rpm.ds(p, 'provides')
+    d2 = rpm.ds(r, 'requires')
     match = d1.Compare(d2)
     if match != res:
         myprint('FAILED: %s with %s: %s' % (d1.DNEVR(), d2.DNEVR(),ms[res]))