242 lines
9.5 KiB
Plaintext
242 lines
9.5 KiB
Plaintext
|
|
AT_BANNER([RPM dependency matching])
|
|
|
|
RPMPY_CHECK([provide - require pairs],[
|
|
# ((provides), (requires), match) expected values
|
|
tests = [
|
|
# Different names never match
|
|
(('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),
|
|
|
|
# Unversioned provide matches all versions
|
|
(('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),
|
|
|
|
# Unversioned require matches all versions
|
|
(('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),
|
|
|
|
# Simple, obvious version comparisons
|
|
(('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),
|
|
|
|
# Simple, obvious version-release comparisons
|
|
(('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),
|
|
|
|
# Zero epoch is same as no epoch
|
|
(('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),
|
|
|
|
# Non-zero epochs
|
|
(('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),
|
|
|
|
# Simple, obvious version comparisons with provide ranges
|
|
(('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),
|
|
|
|
# Missing release should be considered "any release will do"
|
|
# but this is not always so (the cases with "???")
|
|
(('a', '=', '1.2-1'), ('a', '=', '1.2'), 1),
|
|
(('a', '=', '1.2-1'), ('a', '>=', '1.2'), 1),
|
|
(('a', '=', '1.2-1'), ('a', '<=', '1.2'), 1),
|
|
(('a', '=', '1.2-1'), ('a', '<', '1.2'), 0),
|
|
(('a', '=', '1.2-1'), ('a', '>', '1.2'), 0),
|
|
(('a', '=', '1.2-1'), ('a', '<>', '1.2'), 0),
|
|
|
|
(('a', '>', '1.2-1'), ('a', '=', '1.2'), 1),
|
|
(('a', '>', '1.2-1'), ('a', '>=', '1.2'), 1),
|
|
(('a', '>', '1.2-1'), ('a', '<=', '1.2'), 1),
|
|
(('a', '>', '1.2-1'), ('a', '<', '1.2'), 0),
|
|
(('a', '>', '1.2-1'), ('a', '>', '1.2'), 1),
|
|
(('a', '>', '1.2-1'), ('a', '<>', '1.2'), 1),
|
|
|
|
(('a', '<', '1.2-1'), ('a', '=', '1.2'), 1),
|
|
(('a', '<', '1.2-1'), ('a', '>=', '1.2'), 1),
|
|
(('a', '<', '1.2-1'), ('a', '<=', '1.2'), 1),
|
|
(('a', '<', '1.2-1'), ('a', '<', '1.2'), 1),
|
|
(('a', '<', '1.2-1'), ('a', '>', '1.2'), 0),
|
|
(('a', '<', '1.2-1'), ('a', '<>', '1.2'), 1),
|
|
|
|
(('a', '>=', '1.2-1'), ('a', '=', '1.2'), 1),
|
|
(('a', '>=', '1.2-1'), ('a', '>=', '1.2'), 1),
|
|
(('a', '>=', '1.2-1'), ('a', '<=', '1.2'), 1),
|
|
(('a', '>=', '1.2-1'), ('a', '<', '1.2'), 0),
|
|
(('a', '>=', '1.2-1'), ('a', '>', '1.2'), 1),
|
|
(('a', '>=', '1.2-1'), ('a', '<>', '1.2'), 1),
|
|
|
|
(('a', '<=', '1.2-1'), ('a', '=', '1.2'), 1),
|
|
(('a', '<=', '1.2-1'), ('a', '>=', '1.2'), 1),
|
|
(('a', '<=', '1.2-1'), ('a', '<=', '1.2'), 1),
|
|
(('a', '<=', '1.2-1'), ('a', '<', '1.2'), 1),
|
|
(('a', '<=', '1.2-1'), ('a', '>', '1.2'), 0),
|
|
(('a', '<=', '1.2-1'), ('a', '<>', '1.2'), 1),
|
|
|
|
(('a', '<>', '1.2-1'), ('a', '=', '1.2'), 1),
|
|
(('a', '<>', '1.2-1'), ('a', '>=', '1.2'), 1),
|
|
(('a', '<>', '1.2-1'), ('a', '<=', '1.2'), 1),
|
|
(('a', '<>', '1.2-1'), ('a', '<', '1.2'), 1),
|
|
(('a', '<>', '1.2-1'), ('a', '>', '1.2'), 1),
|
|
(('a', '<>', '1.2-1'), ('a', '<>', '1.2'), 1),
|
|
|
|
(('a', '=', '1.2'), ('a', '=', '1.2-1'), 1),
|
|
(('a', '=', '1.2'), ('a', '>=', '1.2-1'), 1),
|
|
(('a', '=', '1.2'), ('a', '<=', '1.2-1'), 1),
|
|
(('a', '=', '1.2'), ('a', '<', '1.2-1'), 1),
|
|
(('a', '=', '1.2'), ('a', '>', '1.2-1'), 1),
|
|
(('a', '=', '1.2'), ('a', '<>', '1.2-1'), 1),
|
|
|
|
(('a', '>', '1.2'), ('a', '=', '1.2-1'), 0),
|
|
(('a', '>', '1.2'), ('a', '>=', '1.2-1'), 1),
|
|
(('a', '>', '1.2'), ('a', '<=', '1.2-1'), 0),
|
|
(('a', '>', '1.2'), ('a', '<', '1.2-1'), 0),
|
|
(('a', '>', '1.2'), ('a', '>', '1.2-1'), 1),
|
|
(('a', '>', '1.2'), ('a', '<>', '1.2-1'), 1),
|
|
|
|
(('a', '<', '1.2'), ('a', '=', '1.2-1'), 0),
|
|
(('a', '<', '1.2'), ('a', '>=', '1.2-1'), 0),
|
|
(('a', '<', '1.2'), ('a', '<=', '1.2-1'), 1),
|
|
(('a', '<', '1.2'), ('a', '<', '1.2-1'), 1),
|
|
(('a', '<', '1.2'), ('a', '>', '1.2-1'), 0),
|
|
(('a', '<', '1.2'), ('a', '<>', '1.2-1'), 1),
|
|
|
|
(('a', '>=', '1.2'), ('a', '=', '1.2-1'), 1),
|
|
(('a', '>=', '1.2'), ('a', '>=', '1.2-1'), 1),
|
|
(('a', '>=', '1.2'), ('a', '<=', '1.2-1'), 1),
|
|
(('a', '>=', '1.2'), ('a', '<', '1.2-1'), 1),
|
|
(('a', '>=', '1.2'), ('a', '>', '1.2-1'), 1),
|
|
(('a', '>=', '1.2'), ('a', '<>', '1.2-1'), 1),
|
|
|
|
(('a', '<=', '1.2'), ('a', '=', '1.2-1'), 1),
|
|
(('a', '<=', '1.2'), ('a', '>=', '1.2-1'), 1),
|
|
(('a', '<=', '1.2'), ('a', '<=', '1.2-1'), 1),
|
|
(('a', '<=', '1.2'), ('a', '<', '1.2-1'), 1),
|
|
(('a', '<=', '1.2'), ('a', '>', '1.2-1'), 1),
|
|
(('a', '<=', '1.2'), ('a', '<>', '1.2-1'), 1),
|
|
|
|
(('a', '<>', '1.2'), ('a', '=', '1.2-1'), 0),
|
|
(('a', '<>', '1.2'), ('a', '>=', '1.2-1'), 1),
|
|
(('a', '<>', '1.2'), ('a', '<=', '1.2-1'), 1),
|
|
(('a', '<>', '1.2'), ('a', '<', '1.2-1'), 1),
|
|
(('a', '<>', '1.2'), ('a', '>', '1.2-1'), 1),
|
|
(('a', '<>', '1.2'), ('a', '<>', '1.2-1'), 1),
|
|
]
|
|
|
|
ms = ['no match', 'match']
|
|
|
|
myprint() # dumb kludge to fixup expected output
|
|
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]))
|
|
],
|
|
[]
|
|
)
|