summaryrefslogtreecommitdiffstats
path: root/doc/examples/versiontest.py
blob: fcc4c25dbf8a63581cefcc2ceb7c11fc7942c35b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/python3

# This is a simple clone of tests/versiontest.cc
import re
import sys

import apt_pkg

apt_pkg.init_config()
apt_pkg.init_system()

TestFile = apt_pkg.parse_commandline(apt_pkg.config, [], sys.argv)
if len(TestFile) != 1:
    print("Must have exactly 1 file name")
    sys.exit(0)

# Go over the file..
list = open(TestFile[0])
CurLine = 0
while True:
    Line = list.readline()
    CurLine = CurLine + 1
    if Line == "":
        break
    Line = Line.strip()
    if len(Line) == 0 or Line[0] == "#":
        continue

    Split = re.split("[ \n]", Line)

    # Check forward
    if apt_pkg.version_compare(Split[0], Split[1]) != int(Split[2]):
        print(
            "Comparision failed on line %u. '%s' ? '%s' %i != %i"
            % (
                CurLine,
                Split[0],
                Split[1],
                apt_pkg.version_compare(Split[0], Split[1]),
                int(Split[2]),
            )
        )
    # Check reverse
    if apt_pkg.version_compare(Split[1], Split[0]) != -1 * int(Split[2]):
        print(
            "Comparision failed on line %u. '%s' ? '%s' %i != %i"
            % (
                CurLine,
                Split[1],
                Split[0],
                apt_pkg.version_compare(Split[1], Split[0]),
                -1 * int(Split[2]),
            )
        )