Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/portupgrade
Path: blob/master/tests/test_pkgdb.rb
102 views
1
#!/usr/bin/env ruby
2
#
3
$:.push("..")
4
5
require 'find'
6
7
require 'test/unit'
8
9
require 'pkgtools'
10
require 'pkgtools/pkgdb'
11
12
init_pkgtools_global
13
14
class TestPkgDB < Test::Unit::TestCase
15
def test_strip
16
pwd = Dir.pwd
17
18
pkgdb = PkgDB.instance.setup('/var/db/pkg')
19
test_pkgname = ''
20
21
# Find any installed package
22
if `env TMPDIR=/dev/null ASSUME_ALWAYS_YES=1 \
23
PACKAGESITE=file:///nonexistent \
24
pkg info -x 'pkg(-devel)?$' >/dev/null 2>&1 && echo yes`.chomp != ""
25
test_pkgname = `pkg query '%n-%v'|head -n 1`.chomp
26
else
27
Find.find('/var/db/pkg') do |path|
28
if FileTest.directory?(path)
29
test_pkgname = File.basename(path)
30
end
31
end
32
end
33
34
assert_equal('foo1', pkgdb.strip('foo1'))
35
assert_equal('foo2', pkgdb.strip('foo2/'))
36
37
assert_equal('bar/foo', pkgdb.strip('bar/foo'))
38
assert_equal(nil, pkgdb.strip('baz/bar/foo'))
39
assert_equal(nil, pkgdb.strip('/baz/bar/foo'))
40
41
assert_equal(test_pkgname, pkgdb.strip(test_pkgname, true))
42
43
assert_equal(nil, pkgdb.strip('./' + test_pkgname, true))
44
45
Dir.chdir(pkgdb.db_dir)
46
47
assert_equal('foo3', pkgdb.strip('/var/db/pkg/foo3'))
48
assert_equal('foo4', pkgdb.strip('/var/db/pkg/foo4/'))
49
assert_equal('foo5', pkgdb.strip('foo5'))
50
assert_equal('foo6', pkgdb.strip('foo6/'))
51
52
assert_equal(nil, pkgdb.strip('/var/db/pkg/foo/bar', true))
53
assert_equal(nil, pkgdb.strip('/var/db/pkg/', true))
54
assert_equal(nil, pkgdb.strip('/var/db/pkg/.', true))
55
assert_equal(nil, pkgdb.strip('/foo', true))
56
assert_equal(nil, pkgdb.strip('/foo/bar', true))
57
58
assert_equal(test_pkgname, pkgdb.strip(test_pkgname, true))
59
assert_equal(test_pkgname, pkgdb.strip('/var/db/pkg/' + test_pkgname, true))
60
61
assert_equal(nil, pkgdb.strip('../' + test_pkgname, true))
62
ensure
63
Dir.chdir(pwd)
64
end
65
end
66
67