Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/portupgrade
Path: blob/master/tests/test_pkgversion.rb
102 views
1
#!/usr/bin/env ruby
2
#
3
$:.push("..")
4
5
require 'test/unit'
6
7
require 'pkgtools/pkgversion'
8
9
class TestPkgVersion < Test::Unit::TestCase
10
def test_s_new
11
ver = PkgVersion.new('2.3.10a')
12
assert_equal(['2.3.10a', 0, 0], [ver.version, ver.revision, ver.epoch])
13
14
ver = PkgVersion.new('2.3.10a_1')
15
assert_equal(['2.3.10a', 1, 0], [ver.version, ver.revision, ver.epoch])
16
17
ver = PkgVersion.new('2.3.10a_1,2')
18
assert_equal(['2.3.10a', 1, 2], [ver.version, ver.revision, ver.epoch])
19
20
assert_raises(ArgumentError) { PkgVersion.new(nil) }
21
assert_raises(ArgumentError) { PkgVersion.new('') }
22
assert_raises(ArgumentError) { PkgVersion.new('1 2') }
23
assert_raises(ArgumentError) { PkgVersion.new('_5') }
24
assert_raises(ArgumentError) { PkgVersion.new(',2') }
25
assert_raises(ArgumentError) { PkgVersion.new('_5,2') }
26
assert_raises(ArgumentError) { PkgVersion.new('1.3_2_5') }
27
assert_raises(ArgumentError) { PkgVersion.new('1.3_a') }
28
assert_raises(ArgumentError) { PkgVersion.new('1.3_2,a') }
29
assert_raises(ArgumentError) { PkgVersion.new('1.3,a') }
30
end
31
32
def test_to_s
33
assert_equal('2.3.10a', PkgVersion.new('2.3.10a').to_s)
34
assert_equal('2.3.10a_1', PkgVersion.new('2.3.10a_1').to_s)
35
assert_equal('2.3.10a,2', PkgVersion.new('2.3.10a,2').to_s)
36
assert_equal('2.3.10a_1,2', PkgVersion.new('2.3.10a_1,2').to_s)
37
end
38
39
def test_coerce
40
ver = PkgVersion.new('1')
41
42
assert_raises(TypeError) { ver.coerce(0.10) }
43
assert_equal(PkgVersion.new('0.10'), ver.coerce('0.10')[0])
44
assert_equal(PkgVersion.new('0.10'), ver.coerce(PkgVersion.new('0.10'))[0])
45
end
46
47
def test_compare
48
assert_equal(PkgVersion.new('1.0'), PkgVersion.new('1.0'))
49
assert_equal(PkgVersion.new('2.15a'), PkgVersion.new('2.15a'))
50
assert_operator(PkgVersion.new('0.10'), :>, PkgVersion.new('0.9'))
51
assert_raises(ArgumentError) { '0.10' > PkgVersion.new('0.9') }
52
assert_operator(PkgVersion.new('0.9'), :<, '0.10')
53
assert_raises(TypeError) { PkgVersion.new('0.9') > 0.8 }
54
assert_raises(ArgumentError) { 0.8 < PkgVersion.new('0.9') }
55
assert_operator(PkgVersion.new('2.3p10'), :>, PkgVersion.new('2.3p9'))
56
assert_operator(PkgVersion.new('1.6.0'), :>, PkgVersion.new('1.6.0.p3'))
57
assert_operator(PkgVersion.new('1.0.b'), :>, PkgVersion.new('1.0.a3'))
58
assert_operator(PkgVersion.new('1.0a'), :>, PkgVersion.new('1.0'))
59
assert_operator(PkgVersion.new('1.0a'), :<, PkgVersion.new('1.0b'))
60
assert_operator(PkgVersion.new('5.0a'), :>, PkgVersion.new('5.0.b'))
61
62
assert_operator(PkgVersion.new('1.5_1'), :>, PkgVersion.new('1.5'))
63
assert_operator(PkgVersion.new('1.5_2'), :>, PkgVersion.new('1.5_1'))
64
assert_operator(PkgVersion.new('1.5_1'), :<, PkgVersion.new('1.5.0.1'))
65
assert_operator(PkgVersion.new('00.01.01,1'), :>, PkgVersion.new('99.12.31'))
66
assert_operator(PkgVersion.new('0.0.1,2'), :>, PkgVersion.new('00.01.01,1'))
67
68
assert_operator(PkgVersion.new('0.0.1_1,2'), :>, PkgVersion.new('0.0.1,2'))
69
assert_operator(PkgVersion.new('0.0.1_1,3'), :>, PkgVersion.new('0.0.1_2,2'))
70
71
assert_operator(PkgVersion.new('2.0.2'), :>, PkgVersion.new('2.00'))
72
assert_equal(PkgVersion.new('3'), PkgVersion.new('3.0'))
73
assert_operator(PkgVersion.new('4a'), :<, PkgVersion.new('4a0'))
74
assert_equal(PkgVersion.new('10a1b2'), PkgVersion.new('10a1.b2'))
75
76
assert_equal(PkgVersion.new('7pl'), PkgVersion.new('7.pl'))
77
assert_equal(PkgVersion.new('8.0.a'), PkgVersion.new('8.0alpha'))
78
assert_equal(PkgVersion.new('9.b3.0'), PkgVersion.new('9beta3'))
79
assert_equal(PkgVersion.new('10.pre7'), PkgVersion.new('10.pre7.0'))
80
assert_equal(PkgVersion.new('11.r'), PkgVersion.new('11.rc'))
81
82
assert_operator(PkgVersion.new('12pl'), :<, PkgVersion.new('12alpha'))
83
assert_operator(PkgVersion.new('13pl3'), :<, PkgVersion.new('13alpha'))
84
85
assert_equal(PkgVersion.new('1.0.0+2003.09.06'), PkgVersion.new('1.0+2003.09.06'))
86
assert_operator(PkgVersion.new('1.0.1+2003.09.06'), :>, PkgVersion.new('1.0+2003.09.06'))
87
assert_operator(PkgVersion.new('1.0.0+2003.09.06'), :<, PkgVersion.new('1.0+2003.09.06_1'))
88
assert_operator(PkgVersion.new('1.0.1+2003.09.06'), :>, PkgVersion.new('1.0+2003.09.06_1'))
89
assert_operator(PkgVersion.new('1.0.1+2003.09.06'), :<, PkgVersion.new('1.0.1+2003.09.07'))
90
assert_operator(PkgVersion.new('1.0.1+2003.09.07'), :>, PkgVersion.new('1.0.1+2003.09.06'))
91
end
92
93
def test_s_compare_versions
94
assert_equal(0, PkgVersion.compare_numbers('2.15a', '2.15a'))
95
assert_operator(PkgVersion.compare_numbers('0.10', '0.9'), :>, 0)
96
assert_operator(PkgVersion.compare_numbers('2.3p10', '2.3p9'), :>, 0)
97
assert_operator(PkgVersion.compare_numbers('1.6.0', '1.6.0.p3'), :>, 0)
98
assert_operator(PkgVersion.compare_numbers('1.0.b', '1.0.a3'), :>, 0)
99
assert_operator(PkgVersion.compare_numbers('1.0a', '1.0'), :>, 0)
100
assert_operator(PkgVersion.compare_numbers('5.0a', '5.0.b'), :>, 0)
101
end
102
end
103
104