ruby-debian 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- data/Makefile +47 -0
- data/README +55 -0
- data/TODO +29 -0
- data/bin/dpkg-checkdeps +163 -0
- data/bin/dpkg-ruby +148 -0
- data/debian/changelog +310 -0
- data/debian/compat +1 -0
- data/debian/control +56 -0
- data/debian/copyright +26 -0
- data/debian/dirs +2 -0
- data/debian/manpages +0 -0
- data/debian/ruby-debian.docs +3 -0
- data/debian/ruby-debian.examples +1 -0
- data/debian/ruby-debian.manpages +2 -0
- data/debian/rules +15 -0
- data/debian/source/format +1 -0
- data/examples/ONE_LINER +39 -0
- data/examples/dpkg.rb +95 -0
- data/examples/list_packages.rb +38 -0
- data/examples/unmet_packages.rb +39 -0
- data/ext/debian_version/Version.cpp +43 -0
- data/ext/debian_version/extconf.rb +7 -0
- data/lib/debian.rb +1063 -0
- data/lib/debian/ar.rb +159 -0
- data/lib/debian/utils.rb +111 -0
- data/man/dpkg-checkdeps.1 +102 -0
- data/man/dpkg-ruby.1 +99 -0
- data/t/d/available +492 -0
- data/t/d/non-US_sid_Sources +32 -0
- data/t/d/non-US_sid_i386_Packages +50 -0
- data/t/d/sid_Sources +287 -0
- data/t/d/sid_i386_Packages +456 -0
- data/t/d/status +324 -0
- data/t/d/w3m-ssl_0.2.1-1.f +24 -0
- data/t/d/w3m-ssl_0.2.1-2.dsc +12 -0
- data/t/d/w3m-ssl_0.2.1-2.f +24 -0
- data/t/d/w3m_0.2.1-1.dsc +12 -0
- data/t/d/w3m_0.2.1-1.f +21 -0
- data/t/d/w3m_0.2.1-2.dsc +12 -0
- data/t/d/w3m_0.2.1-2.f +21 -0
- data/t/d/w3m_met_list +83 -0
- data/t/testall.rb +50 -0
- data/t/testar.rb +59 -0
- data/t/testarchives.rb +277 -0
- data/t/testdeb.rb +239 -0
- data/t/testdep.rb +70 -0
- data/t/testdepterm.rb +140 -0
- data/t/testdepunmet.rb +71 -0
- data/t/testdpkg.rb +197 -0
- data/t/testdpkgdeb.rb +83 -0
- data/t/testdsc.rb +49 -0
- data/t/testfield.rb +155 -0
- data/t/testpackages.rb +138 -0
- data/t/testsources.rb +44 -0
- data/t/teststatus.rb +38 -0
- metadata +133 -0
data/t/testdepunmet.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'runit/testcase'
|
2
|
+
require 'runit/cui/testrunner'
|
3
|
+
|
4
|
+
$:.unshift("../lib")
|
5
|
+
require '../lib/debian.rb'
|
6
|
+
|
7
|
+
class TestDebian__Dep__Unmet < RUNIT::TestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
dep = Debian::Dep::Term.new('w3m')
|
11
|
+
assert_not_nil(dep)
|
12
|
+
deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join(""))
|
13
|
+
assert_not_nil(deb)
|
14
|
+
@unmet = Debian::Dep::Unmet.new(dep, deb)
|
15
|
+
end
|
16
|
+
def test_deb
|
17
|
+
deb = Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join(""))
|
18
|
+
assert_equals(deb, @unmet.deb)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_dep
|
22
|
+
assert_equals(Debian::Dep::Term.new('w3m'), @unmet.dep)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_package
|
26
|
+
assert_nil(@unmet.package)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_package=
|
30
|
+
@unmet.package = 'w3m-el'
|
31
|
+
assert_equals('w3m-el', @unmet.package)
|
32
|
+
assert_exception(Debian::DepError) { @unmet.package = 'w3m' }
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_relation
|
36
|
+
assert_nil(@unmet.relation)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_relation=
|
40
|
+
@unmet.relation = 'depends'
|
41
|
+
assert_equals('depends', @unmet.relation)
|
42
|
+
assert_exception(Debian::DepError) { @unmet.relation = 'recommends' }
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_to_s
|
46
|
+
assert_equals('w3m unmet w3m-ssl 0.2.1-1 (provides w3m)', @unmet.to_s)
|
47
|
+
@unmet.package = 'w3m-ssl'
|
48
|
+
assert_equals('w3m-ssl w3m unmet w3m-ssl 0.2.1-1 (provides w3m)',
|
49
|
+
@unmet.to_s)
|
50
|
+
@unmet.relation = 'depends'
|
51
|
+
assert_equals('w3m-ssl depends w3m unmet w3m-ssl 0.2.1-1 (provides w3m)',
|
52
|
+
@unmet.to_s)
|
53
|
+
end
|
54
|
+
|
55
|
+
# def test_s_new
|
56
|
+
# ???
|
57
|
+
# end
|
58
|
+
|
59
|
+
end
|
60
|
+
|
61
|
+
if $0 == __FILE__
|
62
|
+
if ARGV.size == 0
|
63
|
+
suite = TestDebian__Dep__Unmet.suite
|
64
|
+
else
|
65
|
+
suite = RUNIT::TestSuite.new
|
66
|
+
ARGV.each do |testmethod|
|
67
|
+
suite.add_test(TestDebian__Dep__Unmet.new(testmethod))
|
68
|
+
end
|
69
|
+
end
|
70
|
+
RUNIT::CUI::TestRunner.run(suite)
|
71
|
+
end
|
data/t/testdpkg.rb
ADDED
@@ -0,0 +1,197 @@
|
|
1
|
+
# c2t.rb -na Debian::Dpkg ../lib/debian.rb > testdpkg.rb
|
2
|
+
#
|
3
|
+
require 'runit/testcase'
|
4
|
+
require 'runit/cui/testrunner'
|
5
|
+
|
6
|
+
$:.unshift("../lib")
|
7
|
+
require '../lib/debian.rb'
|
8
|
+
|
9
|
+
class TestDebian__Dpkg < RUNIT::TestCase
|
10
|
+
|
11
|
+
def test_s_architecture
|
12
|
+
arch = %x{dpkg --print-architecture}.chomp!
|
13
|
+
assert_equals(arch, Debian::Dpkg.architecture())
|
14
|
+
end
|
15
|
+
def test_s_gnu_build_architecture
|
16
|
+
arch = %x{dpkg --print-gnu-build-architecture}.chomp!
|
17
|
+
assert_equals(arch, Debian::Dpkg.gnu_build_architecture())
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_s_installation_architecture
|
21
|
+
arch = %x{dpkg --print-installation-architecture}.chomp!
|
22
|
+
assert_equals(arch, Debian::Dpkg.installation_architecture())
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_s_compare_versions
|
26
|
+
assert(Debian::Dpkg.compare_versions('1.0','<','1.1'))
|
27
|
+
assert(Debian::Dpkg.compare_versions('1.0','<=','1.1'))
|
28
|
+
assert(Debian::Dpkg.compare_versions('1.0','<=','1.0'))
|
29
|
+
assert(Debian::Dpkg.compare_versions('1.0','=','1.0'))
|
30
|
+
assert(Debian::Dpkg.compare_versions('1.0','>=','1.0'))
|
31
|
+
assert(Debian::Dpkg.compare_versions('1.1','>','1.0'))
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_s_field
|
35
|
+
ruby = Dir["/var/cache/apt/archives/ruby_1.6*.deb"]
|
36
|
+
if ruby.empty?
|
37
|
+
assert_fail("no ruby package in /var/cache/apt/archives")
|
38
|
+
end
|
39
|
+
ruby.each {|deb|
|
40
|
+
d = Debian::Dpkg.field(deb)
|
41
|
+
assert_equals("ruby", d.package)
|
42
|
+
assert_matches(d.version, /1.6/)
|
43
|
+
assert_equals("akira yamada <akira@debian.org>", d['maintainer'])
|
44
|
+
assert_equals("interpreters", d['section'])
|
45
|
+
assert_equals("optional", d['priority'])
|
46
|
+
# request field only
|
47
|
+
assert_equals(["ruby"], Debian::Dpkg.field(deb, ["package"]))
|
48
|
+
assert_equals(["akira yamada <akira@debian.org>"],
|
49
|
+
Debian::Dpkg.field(deb, ["maintainer"]))
|
50
|
+
assert_equals(["interpreters"], Debian::Dpkg.field(deb, ["section"]))
|
51
|
+
assert_equals(["optional"], Debian::Dpkg.field(deb, ["priority"]))
|
52
|
+
assert_equals(["ruby","interpreters","optional"],
|
53
|
+
Debian::Dpkg.field(deb, ["package","section","priority"]))
|
54
|
+
}
|
55
|
+
end
|
56
|
+
|
57
|
+
LIST_SELECTION = Debian::Deb::SELECTION_ID.invert
|
58
|
+
LIST_STATUS = Debian::Deb::STATUS_ID.invert
|
59
|
+
|
60
|
+
def dpkg_l_parse(line)
|
61
|
+
if /^(.)(.)(.)\s+(\S+)\s+(\S+)\s+(.*)/ =~ line
|
62
|
+
{'selection' => $1,
|
63
|
+
'status' => $2,
|
64
|
+
'err?' => $3,
|
65
|
+
'package' => $4,
|
66
|
+
'version' => $5,
|
67
|
+
'description' => $6
|
68
|
+
}
|
69
|
+
else
|
70
|
+
assert_fail("parse failed dpkg -l #{line}")
|
71
|
+
end
|
72
|
+
end
|
73
|
+
def test_s_status
|
74
|
+
dpkg_l = ''
|
75
|
+
ENV['COLUMNS']="256"
|
76
|
+
IO.popen("dpkg --list dpkg") {|f|
|
77
|
+
f.each {|line|
|
78
|
+
break if /^\+/ =~ line
|
79
|
+
}
|
80
|
+
dpkg_l = dpkg_l_parse(f.readlines[0])
|
81
|
+
}
|
82
|
+
dpkg_tl = Debian::Dpkg.status(['dpkg'])
|
83
|
+
assert_not_nil(dpkg_tl['dpkg'])
|
84
|
+
assert_equals('dpkg', dpkg_tl['dpkg'].package)
|
85
|
+
assert_equals(LIST_SELECTION[dpkg_l['selection']],
|
86
|
+
dpkg_tl['dpkg'].selection)
|
87
|
+
assert_equals(LIST_STATUS[dpkg_l['status']],
|
88
|
+
dpkg_tl['dpkg'].status)
|
89
|
+
assert_equals(dpkg_l['version'],
|
90
|
+
dpkg_tl['dpkg'].version.slice(0,dpkg_l['version'].length))
|
91
|
+
assert_equals('Package maintenance system for Debian',
|
92
|
+
dpkg_tl['dpkg'].description.slice(0,'Package maintenance system for Debian'.length))
|
93
|
+
|
94
|
+
ol = {}
|
95
|
+
IO.popen("dpkg --list") {|f|
|
96
|
+
f.each {|line|
|
97
|
+
break if /^\+/ =~ line
|
98
|
+
|
99
|
+
}
|
100
|
+
f.each {|line|
|
101
|
+
l = dpkg_l_parse(line)
|
102
|
+
next if ol.include?(l['package'])
|
103
|
+
ol[l['package']] = l
|
104
|
+
}
|
105
|
+
}
|
106
|
+
tl = Debian::Dpkg.status
|
107
|
+
ol.each {|op,ol|
|
108
|
+
tp = nil
|
109
|
+
dupped = false
|
110
|
+
tl.each_key {|t|
|
111
|
+
if t == op
|
112
|
+
tp = tl[t]
|
113
|
+
break
|
114
|
+
end
|
115
|
+
if t.slice(0,14) == op
|
116
|
+
if tp
|
117
|
+
dupped = true
|
118
|
+
break
|
119
|
+
end
|
120
|
+
tp = tl[t]
|
121
|
+
end
|
122
|
+
}
|
123
|
+
next if dupped
|
124
|
+
assert_not_nil(tp, "#{op}")
|
125
|
+
assert_equals(op, tp.package.slice(0,op.length),
|
126
|
+
"#{op}/#{tp.package}")
|
127
|
+
assert_equals(ol['package'], tp.package.slice(0,ol['package'].length),
|
128
|
+
"#{ol['pacakge']}/#{tp.package}")
|
129
|
+
assert_equals(LIST_SELECTION[ol['selection']], tp.selection, tp.package)
|
130
|
+
assert_equals(LIST_STATUS[ol['status']], tp.status, tp.package)
|
131
|
+
assert_equals(ol['version'], tp.version.gsub(/^\d+:/,"").slice(0,ol['version'].length), tp.package)
|
132
|
+
assert_equals(ol['description'], tp.description.slice(0,ol['description'].length), tp.package)
|
133
|
+
}
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_s_selections
|
137
|
+
# dpkg --get-selections ...
|
138
|
+
sl = {}
|
139
|
+
IO.popen("dpkg --get-selections") {|f|
|
140
|
+
f.each {|line|
|
141
|
+
p,sel = line.split
|
142
|
+
sl[p] = sel
|
143
|
+
}
|
144
|
+
}
|
145
|
+
tsl = Debian::Dpkg.selections
|
146
|
+
sl.each {|p,sel|
|
147
|
+
assert_equals(sel, tsl[p].selection)
|
148
|
+
}
|
149
|
+
end
|
150
|
+
# def test_s_selections=
|
151
|
+
# # dpkg --set-selections
|
152
|
+
# end
|
153
|
+
def test_s_avail
|
154
|
+
# dpkg --print-avail ...
|
155
|
+
a = IO.popen("dpkg --print-avail w3m") {|f|
|
156
|
+
Debian::Deb.new(f.readlines.join(""))
|
157
|
+
}
|
158
|
+
ta = Debian::Dpkg.avail(['w3m'])
|
159
|
+
assert_equals(a, ta['w3m'])
|
160
|
+
end
|
161
|
+
def test_s_listfiles
|
162
|
+
# dpkg --listfiles ...
|
163
|
+
l = IO.popen("dpkg --listfiles dpkg gzip").readlines("\n\n").collect {|l|
|
164
|
+
l.split("\n")
|
165
|
+
}
|
166
|
+
tl = Debian::Dpkg.listfiles(['dpkg', 'gzip'])
|
167
|
+
assert_equals(l, tl)
|
168
|
+
end
|
169
|
+
def test_s_search
|
170
|
+
# dpkg --search
|
171
|
+
s = IO.popen("dpkg --search dpkg-deb").readlines.collect {|l|
|
172
|
+
l.chomp!
|
173
|
+
/^(\S+):\s*(\S+)/ =~ l
|
174
|
+
[$1, $2]
|
175
|
+
}.sort {|a,b| (a[0] + a[1]) <=> (b[0] + b[1]) }
|
176
|
+
ts = Debian::Dpkg.search(['dpkg-deb']).sort {|a,b|
|
177
|
+
(a[0] + a[1]) <=> (b[0] + b[1])
|
178
|
+
}
|
179
|
+
assert_equals(s, ts)
|
180
|
+
end
|
181
|
+
# def test_s_audit
|
182
|
+
# # dpkg --audit
|
183
|
+
# end
|
184
|
+
|
185
|
+
end
|
186
|
+
|
187
|
+
if $0 == __FILE__
|
188
|
+
if ARGV.size == 0
|
189
|
+
suite = TestDebian__Dpkg.suite
|
190
|
+
else
|
191
|
+
suite = RUNIT::TestSuite.new
|
192
|
+
ARGV.each do |testmethod|
|
193
|
+
suite.add_test(TestDebian__Dpkg.new(testmethod))
|
194
|
+
end
|
195
|
+
end
|
196
|
+
RUNIT::CUI::TestRunner.run(suite)
|
197
|
+
end
|
data/t/testdpkgdeb.rb
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
require 'runit/testcase'
|
2
|
+
require 'runit/cui/testrunner'
|
3
|
+
|
4
|
+
$:.unshift("../lib")
|
5
|
+
require '../lib/debian.rb'
|
6
|
+
|
7
|
+
class TestDebian__DpkgDeb < RUNIT::TestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@ruby = Dir["/var/cache/apt/archives/ruby_1.6*.deb"]
|
11
|
+
if @ruby.empty?
|
12
|
+
assert_fail("no ruby package in /var/cache/apt/archives")
|
13
|
+
end
|
14
|
+
@libs = Dir["/usr/lib/libc.*"]
|
15
|
+
if @libs.empty?
|
16
|
+
assert_fail("no libc in /usr/lib")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
def test_deb?
|
20
|
+
@ruby.each {|deb|
|
21
|
+
assert(Debian::DpkgDeb.deb?(deb))
|
22
|
+
}
|
23
|
+
@libs.each {|lib|
|
24
|
+
assert(! Debian::DpkgDeb.deb?(lib))
|
25
|
+
}
|
26
|
+
end
|
27
|
+
def test_assert_deb?
|
28
|
+
@ruby.each {|deb|
|
29
|
+
assert_no_exception(Debian::Error) {Debian::DpkgDeb.assert_deb?(deb)}
|
30
|
+
}
|
31
|
+
@libs.each {|lib|
|
32
|
+
assert_exception(Debian::Error) {! Debian::DpkgDeb.assert_deb?(lib)}
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_control
|
37
|
+
ENV["LANG"] = 'C'
|
38
|
+
@ruby.each {|deb|
|
39
|
+
c = []
|
40
|
+
IO.popen("dpkg -I #{deb}") {|fp|
|
41
|
+
fp.each {|line|
|
42
|
+
line.chomp!
|
43
|
+
if /^\s+\d+\sbytes,\s+\d+\s+lines\s+\*?\s*(\S+).*/ =~ line
|
44
|
+
c.push($1)
|
45
|
+
end
|
46
|
+
}
|
47
|
+
}
|
48
|
+
assert_equals(c.sort, Debian::DpkgDeb.control(deb).sort)
|
49
|
+
}
|
50
|
+
end
|
51
|
+
def test_data
|
52
|
+
@ruby.each {|deb|
|
53
|
+
d = []
|
54
|
+
IO.popen("dpkg --fsys-tarfile #{deb}|tar tf -") {|fp|
|
55
|
+
fp.each {|line|
|
56
|
+
line.chomp!
|
57
|
+
d.push(line)
|
58
|
+
}
|
59
|
+
}
|
60
|
+
assert_equals(d, Debian::DpkgDeb.data(deb))
|
61
|
+
}
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_load
|
65
|
+
@ruby.each {|deb|
|
66
|
+
de = Debian::DpkgDeb.load(deb)
|
67
|
+
assert_equals(deb, de.filename)
|
68
|
+
}
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
if $0 == __FILE__
|
74
|
+
if ARGV.size == 0
|
75
|
+
suite = TestDebian__DpkgDeb.suite
|
76
|
+
else
|
77
|
+
suite = RUNIT::TestSuite.new
|
78
|
+
ARGV.each do |testmethod|
|
79
|
+
suite.add_test(TestDebian__DpkgDeb.new(testmethod))
|
80
|
+
end
|
81
|
+
end
|
82
|
+
RUNIT::CUI::TestRunner.run(suite)
|
83
|
+
end
|
data/t/testdsc.rb
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'runit/testcase'
|
2
|
+
require 'runit/cui/testrunner'
|
3
|
+
|
4
|
+
$:.unshift("../lib")
|
5
|
+
require '../lib/debian.rb'
|
6
|
+
|
7
|
+
class TestDebian__Dsc < RUNIT::TestCase
|
8
|
+
|
9
|
+
def setup
|
10
|
+
@dsc = [Debian::Dsc.new(IO.readlines("d/w3m_0.2.1-1.dsc").join("")),
|
11
|
+
Debian::Dsc.new(IO.readlines("d/w3m_0.2.1-2.dsc").join("")),
|
12
|
+
Debian::Dsc.new(IO.readlines("d/w3m-ssl_0.2.1-2.dsc").join(""))]
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_binary
|
16
|
+
assert_equals(["w3m"], @dsc[0].binary)
|
17
|
+
assert_equals(["w3m"], @dsc[1].binary)
|
18
|
+
assert_equals(["w3m-ssl"], @dsc[2].binary)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_package
|
22
|
+
assert_equals("w3m", @dsc[0].package)
|
23
|
+
assert_equals("w3m", @dsc[1].package)
|
24
|
+
assert_equals("w3m-ssl", @dsc[2].package)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_version
|
28
|
+
assert_equals("0.2.1-1", @dsc[0].version)
|
29
|
+
assert_equals("0.2.1-2", @dsc[1].version)
|
30
|
+
assert_equals("0.2.1-2", @dsc[2].version)
|
31
|
+
end
|
32
|
+
|
33
|
+
# def test_s_new
|
34
|
+
#
|
35
|
+
# end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
if $0 == __FILE__
|
40
|
+
if ARGV.size == 0
|
41
|
+
suite = TestDebian__Dsc.suite
|
42
|
+
else
|
43
|
+
suite = RUNIT::TestSuite.new
|
44
|
+
ARGV.each do |testmethod|
|
45
|
+
suite.add_test(TestDebian__Dsc.new(testmethod))
|
46
|
+
end
|
47
|
+
end
|
48
|
+
RUNIT::CUI::TestRunner.run(suite)
|
49
|
+
end
|
data/t/testfield.rb
ADDED
@@ -0,0 +1,155 @@
|
|
1
|
+
require 'runit/testcase'
|
2
|
+
require 'runit/cui/testrunner'
|
3
|
+
|
4
|
+
$:.unshift("../lib")
|
5
|
+
require '../lib/debian.rb'
|
6
|
+
|
7
|
+
class ClassDebianField
|
8
|
+
include Debian::Field
|
9
|
+
def initialize(c, rf=[])
|
10
|
+
parseFields(c, rf)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class TestDebian__Field < RUNIT::TestCase
|
15
|
+
|
16
|
+
def setup
|
17
|
+
@ff = {}
|
18
|
+
Dir["d/*.f"].each {|ff|
|
19
|
+
dc = ClassDebianField.new(IO.readlines(ff).join(""), [])
|
20
|
+
@ff["#{dc['package']}_#{dc['version']}"] = dc
|
21
|
+
}
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_AREF # '[]'
|
25
|
+
assert_equals("w3m", @ff['w3m_0.2.1-1']['package'])
|
26
|
+
assert_equals("w3m-ssl", @ff['w3m-ssl_0.2.1-1']['package'])
|
27
|
+
assert_equals("0.2.1-1", @ff['w3m_0.2.1-1']['version'])
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_EQUAL # '=='
|
31
|
+
dc2 = ClassDebianField.new(IO.readlines("d/w3m_0.2.1-1.f").join(""), [])
|
32
|
+
assert(dc2 == @ff['w3m_0.2.1-1'])
|
33
|
+
assert(!(dc2 == @ff['w3m_0.2.1-2']))
|
34
|
+
assert(!(dc2 == @ff['w3m-ssl_0.2.1-1']))
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_GE # '>='
|
38
|
+
assert(@ff['w3m_0.2.1-2'] >= @ff['w3m_0.2.1-1'])
|
39
|
+
assert(@ff['w3m_0.2.1-1'] >= @ff['w3m_0.2.1-1'])
|
40
|
+
assert(!(@ff['w3m_0.2.1-1'] >= @ff['w3m_0.2.1-2']))
|
41
|
+
assert(!(@ff['w3m-ssl_0.2.1-2'] >= @ff['w3m_0.2.1-1']))
|
42
|
+
assert(!(@ff['w3m-ssl_0.2.1-1'] >= @ff['w3m_0.2.1-1']))
|
43
|
+
assert(!(@ff['w3m-ssl_0.2.1-1'] >= @ff['w3m_0.2.1-2']))
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_GT # '>'
|
47
|
+
assert(@ff['w3m_0.2.1-2'] > @ff['w3m_0.2.1-1'])
|
48
|
+
assert(!(@ff['w3m_0.2.1-1'] > @ff['w3m_0.2.1-1']))
|
49
|
+
assert(!(@ff['w3m_0.2.1-1'] > @ff['w3m_0.2.1-2']))
|
50
|
+
assert(!(@ff['w3m-ssl_0.2.1-2'] > @ff['w3m_0.2.1-1']))
|
51
|
+
assert(!(@ff['w3m-ssl_0.2.1-1'] > @ff['w3m_0.2.1-1']))
|
52
|
+
assert(!(@ff['w3m-ssl_0.2.1-1'] > @ff['w3m_0.2.1-2']))
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_LE # '<='
|
56
|
+
assert(@ff['w3m_0.2.1-1'] <= @ff['w3m_0.2.1-1'])
|
57
|
+
assert(@ff['w3m_0.2.1-1'] <= @ff['w3m_0.2.1-2'])
|
58
|
+
assert(!(@ff['w3m_0.2.1-2'] <= @ff['w3m_0.2.1-1']))
|
59
|
+
assert(!(@ff['w3m-ssl_0.2.1-2'] <= @ff['w3m_0.2.1-1']))
|
60
|
+
assert(!(@ff['w3m-ssl_0.2.1-1'] <= @ff['w3m_0.2.1-1']))
|
61
|
+
assert(!(@ff['w3m-ssl_0.2.1-1'] <= @ff['w3m_0.2.1-2']))
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_LT # '<'
|
65
|
+
assert(@ff['w3m_0.2.1-1'] < @ff['w3m_0.2.1-2'])
|
66
|
+
assert(!(@ff['w3m_0.2.1-1'] < @ff['w3m_0.2.1-1']))
|
67
|
+
assert(!(@ff['w3m_0.2.1-2'] < @ff['w3m_0.2.1-1']))
|
68
|
+
assert(!(@ff['w3m-ssl_0.2.1-2'] > @ff['w3m_0.2.1-1']))
|
69
|
+
assert(!(@ff['w3m-ssl_0.2.1-1'] > @ff['w3m_0.2.1-1']))
|
70
|
+
assert(!(@ff['w3m-ssl_0.2.1-1'] > @ff['w3m_0.2.1-2']))
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_VERY_EQUAL # '==='
|
74
|
+
assert(@ff['w3m_0.2.1-1'] === @ff['w3m_0.2.1-1'])
|
75
|
+
assert(@ff['w3m_0.2.1-1'] === @ff['w3m_0.2.1-2'])
|
76
|
+
assert(@ff['w3m_0.2.1-2'] === @ff['w3m_0.2.1-1'])
|
77
|
+
assert(!(@ff['w3m_0.2.1-1'] === @ff['w3m-ssl_0.2.1-1']))
|
78
|
+
assert(!(@ff['w3m_0.2.1-1'] === @ff['w3m-ssl_0.2.1-2']))
|
79
|
+
end
|
80
|
+
|
81
|
+
def test_info_s
|
82
|
+
c = IO.readlines("d/w3m_0.2.1-1.f").join("")
|
83
|
+
assert_equals(c, @ff['w3m_0.2.1-1'].info_s)
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_fields
|
87
|
+
assert_equals(['Package', 'Version', 'Section', 'Priority',
|
88
|
+
'Architecture', 'Depends', 'Suggests',
|
89
|
+
'Provides', 'Installed-size', 'Maintainer',
|
90
|
+
'Description'], @ff['w3m_0.2.1-1'].fields)
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_info
|
94
|
+
assert_equals({'Package' => 'w3m',
|
95
|
+
'Version' => '0.2.1-1',
|
96
|
+
'Section' => 'text',
|
97
|
+
'Priority' => 'optional',
|
98
|
+
'Architecture' => 'i386',
|
99
|
+
'Depends' => 'libc6 (>= 2.2.1-2), libgc5, libgpmg1 (>= 1.14-16), libncurses5 (>= 5.2.20010310-1)',
|
100
|
+
'Suggests' => 'w3m-ssl (>= 0.2.1-1), mime-support, menu (>> 1.5), w3m-el',
|
101
|
+
'Provides' => 'www-browser',
|
102
|
+
'Installed-size' => '1300',
|
103
|
+
'Maintainer' => 'Fumitoshi UKAI <ukai@debian.or.jp>',
|
104
|
+
'Description' => 'WWW browsable pager with excellent tables/frames support
|
105
|
+
w3m is a text-based World Wide Web browser with IPv6 support.
|
106
|
+
It features excellent support for tables and frames. It can be used
|
107
|
+
as a standalone file pager, too.
|
108
|
+
.
|
109
|
+
* You can follow links and/or view images in HTML.
|
110
|
+
* Internet message prewview mode, you can browse HTML mail.
|
111
|
+
* You can follow links in plain text if it includes URL forms.
|
112
|
+
.
|
113
|
+
For more information,
|
114
|
+
see http://ei5nazha.yz.yamagata-u.ac.jp/~aito/w3m/eng/index.html'},
|
115
|
+
@ff['w3m_0.2.1-1'].info)
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_package
|
119
|
+
assert_equals('w3m', @ff['w3m_0.2.1-1'].package)
|
120
|
+
assert_equals('w3m-ssl', @ff['w3m-ssl_0.2.1-2'].package)
|
121
|
+
end
|
122
|
+
|
123
|
+
def test_version
|
124
|
+
assert_equals('0.2.1-1', @ff['w3m_0.2.1-1'].version)
|
125
|
+
assert_equals('0.2.1-2', @ff['w3m-ssl_0.2.1-2'].version)
|
126
|
+
end
|
127
|
+
|
128
|
+
def test_maintainer
|
129
|
+
assert_equals('Fumitoshi UKAI <ukai@debian.or.jp>', @ff['w3m_0.2.1-1'].maintainer)
|
130
|
+
end
|
131
|
+
|
132
|
+
# def test_parseFields
|
133
|
+
# how to test?
|
134
|
+
# end
|
135
|
+
|
136
|
+
def test_to_s
|
137
|
+
assert_equals("w3m 0.2.1-1", @ff['w3m_0.2.1-1'].to_s)
|
138
|
+
assert_equals("w3m 0.2.1-2", @ff['w3m_0.2.1-2'].to_s)
|
139
|
+
assert_equals("w3m-ssl 0.2.1-1", @ff['w3m-ssl_0.2.1-1'].to_s)
|
140
|
+
assert_equals("w3m-ssl 0.2.1-2", @ff['w3m-ssl_0.2.1-2'].to_s)
|
141
|
+
end
|
142
|
+
|
143
|
+
end
|
144
|
+
|
145
|
+
if $0 == __FILE__
|
146
|
+
if ARGV.size == 0
|
147
|
+
suite = TestDebian__Field.suite
|
148
|
+
else
|
149
|
+
suite = RUNIT::TestSuite.new
|
150
|
+
ARGV.each do |testmethod|
|
151
|
+
suite.add_test(TestDebian__Control.new(testmethod))
|
152
|
+
end
|
153
|
+
end
|
154
|
+
RUNIT::CUI::TestRunner.run(suite)
|
155
|
+
end
|