ruby-debian 0.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|