ruby-debian 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/Makefile +47 -0
  2. data/README +55 -0
  3. data/TODO +29 -0
  4. data/bin/dpkg-checkdeps +163 -0
  5. data/bin/dpkg-ruby +148 -0
  6. data/debian/changelog +310 -0
  7. data/debian/compat +1 -0
  8. data/debian/control +56 -0
  9. data/debian/copyright +26 -0
  10. data/debian/dirs +2 -0
  11. data/debian/manpages +0 -0
  12. data/debian/ruby-debian.docs +3 -0
  13. data/debian/ruby-debian.examples +1 -0
  14. data/debian/ruby-debian.manpages +2 -0
  15. data/debian/rules +15 -0
  16. data/debian/source/format +1 -0
  17. data/examples/ONE_LINER +39 -0
  18. data/examples/dpkg.rb +95 -0
  19. data/examples/list_packages.rb +38 -0
  20. data/examples/unmet_packages.rb +39 -0
  21. data/ext/debian_version/Version.cpp +43 -0
  22. data/ext/debian_version/extconf.rb +7 -0
  23. data/lib/debian.rb +1063 -0
  24. data/lib/debian/ar.rb +159 -0
  25. data/lib/debian/utils.rb +111 -0
  26. data/man/dpkg-checkdeps.1 +102 -0
  27. data/man/dpkg-ruby.1 +99 -0
  28. data/t/d/available +492 -0
  29. data/t/d/non-US_sid_Sources +32 -0
  30. data/t/d/non-US_sid_i386_Packages +50 -0
  31. data/t/d/sid_Sources +287 -0
  32. data/t/d/sid_i386_Packages +456 -0
  33. data/t/d/status +324 -0
  34. data/t/d/w3m-ssl_0.2.1-1.f +24 -0
  35. data/t/d/w3m-ssl_0.2.1-2.dsc +12 -0
  36. data/t/d/w3m-ssl_0.2.1-2.f +24 -0
  37. data/t/d/w3m_0.2.1-1.dsc +12 -0
  38. data/t/d/w3m_0.2.1-1.f +21 -0
  39. data/t/d/w3m_0.2.1-2.dsc +12 -0
  40. data/t/d/w3m_0.2.1-2.f +21 -0
  41. data/t/d/w3m_met_list +83 -0
  42. data/t/testall.rb +50 -0
  43. data/t/testar.rb +59 -0
  44. data/t/testarchives.rb +277 -0
  45. data/t/testdeb.rb +239 -0
  46. data/t/testdep.rb +70 -0
  47. data/t/testdepterm.rb +140 -0
  48. data/t/testdepunmet.rb +71 -0
  49. data/t/testdpkg.rb +197 -0
  50. data/t/testdpkgdeb.rb +83 -0
  51. data/t/testdsc.rb +49 -0
  52. data/t/testfield.rb +155 -0
  53. data/t/testpackages.rb +138 -0
  54. data/t/testsources.rb +44 -0
  55. data/t/teststatus.rb +38 -0
  56. metadata +133 -0
@@ -0,0 +1,239 @@
1
+ require 'runit/testcase'
2
+ require 'runit/cui/testrunner'
3
+
4
+ $:.unshift("../lib")
5
+ require '../lib/debian.rb'
6
+
7
+ class TestDebian__Deb < RUNIT::TestCase
8
+
9
+ def setup
10
+ @deb = [Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join("")),
11
+ Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")),
12
+ Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join("")),
13
+ Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))]
14
+ end
15
+
16
+ def test_package
17
+ assert_equals("w3m", @deb[0].package)
18
+ assert_equals("w3m", @deb[1].package)
19
+ assert_equals("w3m-ssl", @deb[2].package)
20
+ assert_equals("w3m-ssl", @deb[3].package)
21
+ end
22
+
23
+ def test_provides
24
+ assert_equals(['www-browser'], @deb[0].provides)
25
+ assert_equals(['www-browser'], @deb[1].provides)
26
+ assert_equals(['www-browser'], @deb[2].provides)
27
+ assert_equals(['www-browser'], @deb[3].provides)
28
+ end
29
+
30
+ def test_source
31
+ assert_equals("w3m", @deb[0].package)
32
+ assert_equals("w3m", @deb[1].package)
33
+ assert_equals("w3m-ssl", @deb[2].package)
34
+ assert_equals("w3m-ssl", @deb[3].package)
35
+ end
36
+
37
+ def test_unmet
38
+ p = Debian::Packages.new("d/w3m_met_list")
39
+ puts @deb[0].unmet(p)
40
+ assert_equals([], @deb[0].unmet(p))
41
+ end
42
+
43
+ def test_version
44
+ assert_equals("0.2.1-1", @deb[0].version)
45
+ assert_equals("0.2.1-2", @deb[1].version)
46
+ assert_equals("0.2.1-1", @deb[2].version)
47
+ assert_equals("0.2.1-2", @deb[3].version)
48
+ end
49
+
50
+ def test_status
51
+ assert_equals("not-installed", @deb[0].status)
52
+ end
53
+
54
+ def test_selection
55
+ assert_equals("unknown", @deb[0].selection)
56
+ end
57
+
58
+ def test_description
59
+ assert_equals("WWW browsable pager with excellent tables/frames support",
60
+ @deb[0].description)
61
+ end
62
+
63
+ def test_unknown?
64
+ assert(@deb[0].unknown?)
65
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
66
+ "Status: unknown ok not-installed\n"].join(""))
67
+ assert(d.unknown?)
68
+ end
69
+ def test_install?
70
+ assert(! @deb[0].installed?)
71
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
72
+ "Status: install ok installed\n"].join(""))
73
+ assert(d.install?)
74
+ end
75
+ def test_hold?
76
+ assert(! @deb[0].hold?)
77
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
78
+ "Status: hold ok installed\n"].join(""))
79
+ assert(d.hold?)
80
+ end
81
+ def test_deinstall?
82
+ assert(! @deb[0].deinstall?)
83
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
84
+ "Status: deinstall ok not-installed\n"].join(""))
85
+ assert(d.deinstall?)
86
+ end
87
+ def test_remove?
88
+ assert(! @deb[0].remove?)
89
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
90
+ "Status: deinstall ok not-installed\n"].join(""))
91
+ assert(d.remove?)
92
+ end
93
+ def test_purge?
94
+ assert(! @deb[0].purge?)
95
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
96
+ "Status: purge ok not-installed\n"].join(""))
97
+ assert(d.purge?)
98
+ end
99
+ def test_not_installed?
100
+ assert(@deb[0].not_installed?)
101
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
102
+ "Status: unknown ok not-installed\n"].join(""))
103
+ assert(d.not_installed?)
104
+ end
105
+ def test_purged?
106
+ assert(@deb[0].purged?)
107
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
108
+ "Status: unknown ok not-installed\n"].join(""))
109
+ assert(d.purged?)
110
+ end
111
+ def test_unpacked?
112
+ assert(! @deb[0].unpacked?)
113
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
114
+ "Status: install ok unpacked\n"].join(""))
115
+ assert(d.unpacked?)
116
+ end
117
+ def test_half_configured?
118
+ assert(! @deb[0].half_configured?)
119
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
120
+ "Status: install reinstreq half-configured\n"].join(""))
121
+ assert(d.half_configured?)
122
+ end
123
+ def test_intalled?
124
+ assert(! @deb[0].installed?)
125
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
126
+ "Status: install ok installed\n"].join(""))
127
+ assert(d.installed?)
128
+ end
129
+ def test_half_installed?
130
+ assert(! @deb[0].half_installed?)
131
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
132
+ "Status: install reinstreq half-installed\n"].join(""))
133
+ assert(d.half_installed?)
134
+ end
135
+ def test_config_files?
136
+ assert(! @deb[0].config_files?)
137
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
138
+ "Status: install ok config-files\n"].join(""))
139
+ assert(d.config_files?)
140
+ end
141
+ def test_config_only?
142
+ assert(! @deb[0].config_only?)
143
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
144
+ "Status: install ok config-files\n"].join(""))
145
+ assert(d.config_only?)
146
+ end
147
+ def test_removed?
148
+ assert(@deb[0].removed?)
149
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
150
+ "Status: install ok config-files\n"].join(""))
151
+ assert(d.removed?)
152
+ end
153
+ def test_need_fix?
154
+ assert(! @deb[0].need_fix?)
155
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
156
+ "Status: install reinstreq half-installed\n"].join(""))
157
+ assert(d.need_fix?)
158
+ end
159
+ def test_need_action?
160
+ assert(! @deb[0].need_action?)
161
+ d = Debian::Deb.new([IO.readlines("d/w3m_0.2.1-1.f"),
162
+ "Status: install ok not-installed\n"].join(""))
163
+ assert(d.need_action?)
164
+ end
165
+
166
+ def test_ok?
167
+ assert(@deb[0].ok?)
168
+ end
169
+
170
+ def check_apt_cache
171
+ @ruby = Dir["/var/cache/apt/archives/ruby_1.6*.deb"]
172
+ if @ruby.empty?
173
+ assert_fail("no ruby package in /var/cache/apt/archives")
174
+ end
175
+ end
176
+ def test_filename=()
177
+ check_apt_cache
178
+ @ruby.each {|df|
179
+ d = Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join(""))
180
+ d.filename = df
181
+ assert_equals(df, d.filename)
182
+ }
183
+ end
184
+
185
+ def test_controlFile
186
+ # tested by controlData?
187
+ end
188
+ def test_controlData
189
+ check_apt_cache
190
+ @ruby.each {|df|
191
+ deb = Debian::DpkgDeb.load(df)
192
+ oc = IO.popen("dpkg -f #{df}") {|fp| fp.readlines.join("")}
193
+ assert_equals(oc, deb.controlData)
194
+ om = IO.popen("dpkg -I #{df} md5sums") {|fp| fp.readlines.join("") }
195
+ assert_equals(om, deb.controlData("md5sums"))
196
+ }
197
+ end
198
+ def test_dataFile
199
+ # tested by dataData?
200
+ end
201
+ def test_dataData
202
+ check_apt_cache
203
+ @ruby.each {|df|
204
+ deb = Debian::DpkgDeb.load(df)
205
+ oc = IO.popen("dpkg --fsys-tarfile #{df}|tar xfO - '*/copyright'") {|fp|
206
+ fp.readlines.join("")
207
+ }
208
+ assert_equals(oc, deb.dataData('copyright'))
209
+ }
210
+ end
211
+ def test_sys_tarfile
212
+ check_apt_cache
213
+ @ruby.each {|df|
214
+ deb = Debian::DpkgDeb.load(df)
215
+ os = IO.popen("dpkg --fsys-tarfile #{df}") {|fp|
216
+ fp.readlines.join("")
217
+ }
218
+ ts = deb.sys_tarfile {|fp| fp.readlines.join("") }
219
+ assert_equals(os, ts)
220
+ }
221
+ end
222
+
223
+ # def test_s_new
224
+ #
225
+ # end
226
+
227
+ end
228
+
229
+ if $0 == __FILE__
230
+ if ARGV.size == 0
231
+ suite = TestDebian__Deb.suite
232
+ else
233
+ suite = RUNIT::TestSuite.new
234
+ ARGV.each do |testmethod|
235
+ suite.add_test(TestDebian__Deb.new(testmethod))
236
+ end
237
+ end
238
+ RUNIT::CUI::TestRunner.run(suite)
239
+ end
@@ -0,0 +1,70 @@
1
+ require 'runit/testcase'
2
+ require 'runit/cui/testrunner'
3
+
4
+ $:.unshift("../lib")
5
+ require '../lib/debian.rb'
6
+
7
+ class TestDebian__Dep < RUNIT::TestCase
8
+
9
+ def setup
10
+ @dep = [Debian::Dep.new("w3m", 'Depends'),
11
+ Debian::Dep.new("w3m | w3m-ssl", 'Depends'),
12
+ Debian::Dep.new("w3m (>= 0.2.1-2) | w3m-ssl (>= 0.2.1-2)",
13
+ 'Recommends'),
14
+ Debian::Dep.new("www-browser", "Suggests")]
15
+ end
16
+
17
+ def test_satisfy?
18
+ deb = [Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join("")),
19
+ Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")),
20
+ Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join("")),
21
+ Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))]
22
+ assert(@dep[0].satisfy?(deb[0]))
23
+ assert(@dep[0].satisfy?(deb[1]))
24
+ assert(!(@dep[0].satisfy?(deb[2])))
25
+ assert(!(@dep[0].satisfy?(deb[3])))
26
+
27
+ assert(@dep[1].satisfy?(deb[0]))
28
+ assert(@dep[1].satisfy?(deb[1]))
29
+ assert(@dep[1].satisfy?(deb[2]))
30
+ assert(@dep[1].satisfy?(deb[3]))
31
+
32
+ assert(!(@dep[2].satisfy?(deb[0])))
33
+ assert(@dep[2].satisfy?(deb[1]))
34
+ assert(!(@dep[2].satisfy?(deb[2])))
35
+ assert(@dep[2].satisfy?(deb[3]))
36
+ end
37
+
38
+ def test_to_s
39
+ assert_equals("Depends w3m", @dep[0].to_s)
40
+ assert_equals("Depends w3m | w3m-ssl", @dep[1].to_s)
41
+ assert_equals("Recommends w3m (>= 0.2.1-2) | w3m-ssl (>= 0.2.1-2)",
42
+ @dep[2].to_s)
43
+ end
44
+
45
+ def test_unmet
46
+ p = Debian::Packages.new("d/w3m_met_list")
47
+ assert_equals([], @dep[0].unmet(p)) # w3m
48
+ assert_equals([], @dep[1].unmet(p)) # w3m | w3m-ssl
49
+ assert_equals([], @dep[2].unmet(p))
50
+ # w3m (>= 0.2.1-2) | w3m-ssl (>= 0.2.1-2)
51
+ assert_equals([], @dep[3].unmet(p)) # www-browser
52
+ end
53
+
54
+ # def test_s_new
55
+ #
56
+ # end
57
+
58
+ end
59
+
60
+ if $0 == __FILE__
61
+ if ARGV.size == 0
62
+ suite = TestDebian__Dep.suite
63
+ else
64
+ suite = RUNIT::TestSuite.new
65
+ ARGV.each do |testmethod|
66
+ suite.add_test(TestDebian__Dep.new(testmethod))
67
+ end
68
+ end
69
+ RUNIT::CUI::TestRunner.run(suite)
70
+ end
@@ -0,0 +1,140 @@
1
+ require 'runit/testcase'
2
+ require 'runit/cui/testrunner'
3
+
4
+ $:.unshift("../lib")
5
+ require '../lib/debian.rb'
6
+
7
+ class TestDebian__Dep__Term < RUNIT::TestCase
8
+
9
+ def setup
10
+ @dep = [Debian::Dep::Term.new('w3m'),
11
+ Debian::Dep::Term.new('w3m', '<<', '0.2.1-2'),
12
+ Debian::Dep::Term.new('w3m', '<=', '0.2.1-2'),
13
+ Debian::Dep::Term.new('w3m', '=', '0.2.1-2'),
14
+ Debian::Dep::Term.new('w3m', '>=', '0.2.1-2'),
15
+ Debian::Dep::Term.new('w3m', '>>', '0.2.1-2'),
16
+ Debian::Dep::Term.new('w3m', '==', '0.2.1-2'),
17
+ Debian::Dep::Term.new('www-browser')]
18
+ end
19
+ def test_EQUAL # '=='
20
+ assert_equals(Debian::Dep::Term.new('w3m'), @dep[0])
21
+ assert_equals(Debian::Dep::Term.new('w3m', '<<', '0.2.1-2'), @dep[1])
22
+ end
23
+
24
+ def test_op
25
+ assert_equals("", @dep[0].op)
26
+ assert_equals("<<", @dep[1].op)
27
+ assert_equals("<=", @dep[2].op)
28
+ assert_equals("=", @dep[3].op)
29
+ assert_equals(">=", @dep[4].op)
30
+ assert_equals(">>", @dep[5].op)
31
+ end
32
+
33
+ def test_package
34
+ assert_equals("w3m", @dep[0].package)
35
+ assert_equals("w3m", @dep[1].package)
36
+ end
37
+
38
+ def test_satisfy?
39
+ @deb = [Debian::Deb.new(IO.readlines("d/w3m_0.2.1-1.f").join("")),
40
+ Debian::Deb.new(IO.readlines("d/w3m_0.2.1-2.f").join("")),
41
+ Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-1.f").join("")),
42
+ Debian::Deb.new(IO.readlines("d/w3m-ssl_0.2.1-2.f").join(""))]
43
+ # w3m
44
+ assert(@dep[0].satisfy?(@deb[0]))
45
+ assert(@dep[0].satisfy?(@deb[1]))
46
+ assert(!(@dep[0].satisfy?(@deb[2])))
47
+ assert(!(@dep[0].satisfy?(@deb[3])))
48
+
49
+ # w3m << 0.2.1-2
50
+ assert(@dep[1].satisfy?(@deb[0]))
51
+ assert(!(@dep[1].satisfy?(@deb[1])))
52
+ assert(!(@dep[1].satisfy?(@deb[2])))
53
+ assert(!(@dep[1].satisfy?(@deb[3])))
54
+
55
+ # w3m <= 0.2.1-2
56
+ assert(@dep[2].satisfy?(@deb[0]))
57
+ assert(@dep[2].satisfy?(@deb[1]))
58
+ assert(!(@dep[2].satisfy?(@deb[2])))
59
+ assert(!(@dep[2].satisfy?(@deb[3])))
60
+
61
+ # w3m = 0.2.1-2
62
+ assert(!(@dep[3].satisfy?(@deb[0])))
63
+ assert(@dep[3].satisfy?(@deb[1]))
64
+ assert(!(@dep[3].satisfy?(@deb[2])))
65
+ assert(!(@dep[3].satisfy?(@deb[3])))
66
+
67
+ # w3m >= 0.2.1-2
68
+ assert(!(@dep[4].satisfy?(@deb[0])))
69
+ assert(@dep[4].satisfy?(@deb[1]))
70
+ assert(!(@dep[4].satisfy?(@deb[2])))
71
+ assert(!(@dep[4].satisfy?(@deb[3])))
72
+
73
+ # w3m >> 0.2.1-2
74
+ assert(!(@dep[5].satisfy?(@deb[0])))
75
+ assert(!(@dep[5].satisfy?(@deb[1])))
76
+ assert(!(@dep[5].satisfy?(@deb[2])))
77
+ assert(!(@dep[5].satisfy?(@deb[3])))
78
+
79
+ # w3m == 0.2.1-2
80
+ assert_exception(Debian::DepError) { @dep[6].satisfy?(@deb[0])}
81
+ assert_exception(Debian::DepError) { @dep[6].satisfy?(@deb[1])}
82
+ assert_exception(Debian::DepError) { @dep[6].satisfy?(@deb[2])}
83
+ assert_exception(Debian::DepError) { @dep[6].satisfy?(@deb[3])}
84
+
85
+ # www-browser (provides test)
86
+ assert(@dep[7].satisfy?(@deb[0]))
87
+ assert(@dep[7].satisfy?(@deb[1]))
88
+ assert(@dep[7].satisfy?(@deb[2]))
89
+ assert(@dep[7].satisfy?(@deb[3]))
90
+ end
91
+
92
+ def test_to_s
93
+ assert_equals("w3m", @dep[0].to_s)
94
+ assert_equals("w3m (<< 0.2.1-2)", @dep[1].to_s)
95
+ assert_equals("w3m (<= 0.2.1-2)", @dep[2].to_s)
96
+ assert_equals("w3m (= 0.2.1-2)", @dep[3].to_s)
97
+ assert_equals("w3m (>= 0.2.1-2)", @dep[4].to_s)
98
+ assert_equals("w3m (>> 0.2.1-2)", @dep[5].to_s)
99
+ end
100
+
101
+ def test_unmet
102
+ p = Debian::Packages.new("d/w3m_met_list")
103
+ assert_equals([], @dep[0].unmet(p)) # w3m
104
+ assert_equals([Debian::Dep::Unmet.new(@dep[1], p['w3m'])],
105
+ @dep[1].unmet(p)) # w3m << 0.2.1-2
106
+ assert_equals([], @dep[2].unmet(p)) # w3m <= 0.2.1-2
107
+ assert_equals([], @dep[3].unmet(p)) # w3m = 0.2.1-2
108
+ assert_equals([], @dep[4].unmet(p)) # w3m >= 0.2.1-2
109
+ assert_equals([Debian::Dep::Unmet.new(@dep[5], p['w3m'])],
110
+ @dep[5].unmet(p)) # w3m >> 0.2.1-2
111
+ assert_equals([], @dep[7].unmet(p)) # www-browser
112
+ end
113
+
114
+ def test_version
115
+ assert_equals("", @dep[0].version)
116
+ assert_equals("0.2.1-2", @dep[1].version)
117
+ assert_equals("0.2.1-2", @dep[2].version)
118
+ assert_equals("0.2.1-2", @dep[3].version)
119
+ assert_equals("0.2.1-2", @dep[4].version)
120
+ assert_equals("0.2.1-2", @dep[5].version)
121
+ assert_equals("0.2.1-2", @dep[6].version)
122
+ end
123
+
124
+ # def test_s_new
125
+ #
126
+ # end
127
+
128
+ end
129
+
130
+ if $0 == __FILE__
131
+ if ARGV.size == 0
132
+ suite = TestDebian__Dep__Term.suite
133
+ else
134
+ suite = RUNIT::TestSuite.new
135
+ ARGV.each do |testmethod|
136
+ suite.add_test(TestDebian__Dep__Term.new(testmethod))
137
+ end
138
+ end
139
+ RUNIT::CUI::TestRunner.run(suite)
140
+ end