]> git.proxmox.com Git - mirror_frr.git/blame - tests/topotests/lib/test/test_version.py
Merge pull request #12798 from donaldsharp/rib_match_multicast
[mirror_frr.git] / tests / topotests / lib / test / test_version.py
CommitLineData
4190fe1e 1#!/usr/bin/env python
acddc0ed 2# SPDX-License-Identifier: ISC
4190fe1e
RZ
3
4#
5# test_version.py
6# Tests for library function: version_cmp().
7#
8# Copyright (c) 2017 by
9# Network Device Education Foundation, Inc. ("NetDEF")
10#
4190fe1e
RZ
11
12"""
13Tests for the version_cmp() function.
14"""
15
16import os
17import sys
18import pytest
19
20# Save the Current Working Directory to find lib files.
21CWD = os.path.dirname(os.path.realpath(__file__))
787e7624 22sys.path.append(os.path.join(CWD, "../../"))
4190fe1e
RZ
23
24# pylint: disable=C0413
25from lib.topotest import version_cmp
26
787e7624 27
4190fe1e
RZ
28def test_valid_versions():
29 "Test valid version compare results"
30
787e7624 31 curver = "3.0"
32 samever = "3"
33 oldver = "2.0"
34 newver = "3.0.1"
35 newerver = "3.0.11"
36 vercustom = "3.0-dev"
37 verysmallinc = "3.0.0.0.0.0.0.1"
4190fe1e
RZ
38
39 assert version_cmp(curver, oldver) == 1
40 assert version_cmp(curver, newver) == -1
41 assert version_cmp(curver, curver) == 0
42 assert version_cmp(curver, newerver) == -1
43 assert version_cmp(newver, newerver) == -1
44 assert version_cmp(curver, samever) == 0
45 assert version_cmp(curver, vercustom) == 0
46 assert version_cmp(vercustom, vercustom) == 0
47 assert version_cmp(vercustom, oldver) == 1
48 assert version_cmp(vercustom, newver) == -1
49 assert version_cmp(vercustom, samever) == 0
50 assert version_cmp(curver, verysmallinc) == -1
51 assert version_cmp(newver, verysmallinc) == 1
52 assert version_cmp(verysmallinc, verysmallinc) == 0
53 assert version_cmp(vercustom, verysmallinc) == -1
54
787e7624 55
4190fe1e
RZ
56def test_invalid_versions():
57 "Test invalid version strings"
58
787e7624 59 curver = "3.0"
60 badver1 = ".1"
61 badver2 = "-1.0"
62 badver3 = "."
63 badver4 = "3.-0.3"
4190fe1e
RZ
64
65 with pytest.raises(ValueError):
66 assert version_cmp(curver, badver1)
67 assert version_cmp(curver, badver2)
68 assert version_cmp(curver, badver3)
69 assert version_cmp(curver, badver4)
034237db 70
787e7624 71
034237db
RZ
72def test_regression_1():
73 """
74 Test regression on the following type of comparison: '3.0.2' > '3'
75 Expected result is 1.
76 """
787e7624 77 assert version_cmp("3.0.2", "3") == 1