Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/portupgrade
Path: blob/master/tests/test_pkginfo.rb
102 views
1
#!/usr/bin/env ruby
2
#
3
$:.push("..")
4
5
require 'test/unit'
6
7
require 'pkgtools/pkginfo'
8
9
class TestPkgInfo < Test::Unit::TestCase
10
def test_s_new
11
assert_raises(ArgumentError) { PkgInfo.new(nil) }
12
assert_raises(ArgumentError) { PkgInfo.new('') }
13
assert_raises(ArgumentError) { PkgInfo.new('foo=1.2') }
14
assert_raises(ArgumentError) { PkgInfo.new('foo bar-1.2') }
15
assert_raises(ArgumentError) { PkgInfo.new('-foo') }
16
assert_raises(ArgumentError) { PkgInfo.new('foo-bar-') }
17
assert_raises(ArgumentError) { PkgInfo.new('foo-1.2_1_1') }
18
19
pkgname = PkgInfo.new('foo-bar-2.3.10a')
20
assert_equal(['foo-bar', '2.3.10a', 0, 0], [pkgname.name, pkgname.version.version, pkgname.version.revision, pkgname.version.epoch])
21
22
pkgname = PkgInfo.new('foo-bar-2.3.10a_1,2')
23
assert_equal(['foo-bar', '2.3.10a', 1, 2], [pkgname.name, pkgname.version.version, pkgname.version.revision, pkgname.version.epoch])
24
end
25
26
def test_to_s
27
assert_equal('foo-bar-2.3.10a', PkgInfo.new('foo-bar-2.3.10a').to_s)
28
assert_equal('foo-bar-2.3.10a_1,2', PkgInfo.new('foo-bar-2.3.10a_1,2').to_s)
29
end
30
31
def test_coerce
32
pkgname = PkgInfo.new('foo-1')
33
34
assert_raises(TypeError) { pkgname.coerce(0.10) }
35
assert_equal([PkgInfo.new('bar-2'), pkgname], pkgname.coerce('bar-2'))
36
assert_equal([PkgInfo.new('bar-2'), pkgname], pkgname.coerce(PkgInfo.new('bar-2')))
37
assert_equal([PkgVersion.new('2'), PkgVersion.new('1')], pkgname.coerce('2'))
38
assert_equal([PkgVersion.new('2'), PkgVersion.new('1')], pkgname.coerce(PkgVersion.new('2')))
39
end
40
41
def test_compare
42
assert_equal(PkgInfo.new('foo-bar-2.3.10a'), PkgInfo.new('foo-bar-2.3.10a'))
43
assert_operator(PkgInfo.new('foo-baz-2.3.10a'), :>, PkgInfo.new('foo-bar-2.3.10a'))
44
assert_operator(PkgInfo.new('foo-bar-2.3.10'), :>, PkgInfo.new('foo-bar-2.3.9'))
45
assert_operator(PkgInfo.new('1foo-2.3.10'), :>, '2.3.9')
46
assert_operator(PkgInfo.new('1foo-2.3.10'), :>, PkgVersion.new('2.3.9'))
47
assert_operator(PkgInfo.new('1foo-2.3.10'), :>, '1foo-2.3.9')
48
end
49
50
def test_s_get_info
51
52
end
53
54
def test_match
55
pkg = PkgInfo.new('foo-bar-1.2')
56
57
assert(pkg.match?('foo-bar-1.2'))
58
assert(!pkg.match?('foo-bar-1'))
59
assert(pkg.match?('foo-bar'))
60
assert(!pkg.match?('foo-bar-'))
61
assert(!pkg.match?('foo'))
62
assert(!pkg.match?('bar'))
63
assert(!pkg.match?('bar-1.2'))
64
assert(pkg.match?(/bar-[^\-]+$/))
65
end
66
end
67
68