rbcdio 0.03 → 0.04

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/test/cdiotest.rb CHANGED
@@ -3,231 +3,229 @@
3
3
 
4
4
  # Unit test for cdio
5
5
  #
6
- require "test/unit"
7
-
8
- unless defined?(Mypath)
9
- Mypath = File.expand_path(File.dirname(__FILE__))
10
- end
11
- old_dir = File.expand_path(Dir.pwd)
12
- if old_dir != Mypath
13
- Dir.chdir(Mypath)
14
- end
15
-
16
- %w(/../ext/cdio /../lib).each do |src_dir|
17
- $: << Mypath + src_dir unless $:.member?(src_dir)
6
+ require 'test/unit'
7
+ mypath = File.expand_path(File.dirname(__FILE__))
8
+ %w(ext/cdio lib).each do |src_dir|
9
+ $: << File.join(mypath, '..', src_dir)
18
10
  end
19
11
 
20
- require "cdio"
12
+ require 'cdio'
21
13
 
22
14
  class CdioTests < Test::Unit::TestCase
15
+
16
+ def setup
17
+ @mypath = File.expand_path(File.dirname(__FILE__))
18
+ end
23
19
 
24
- # Test running miscellaneous operations
25
- # No assumption about the CD-ROM drives is made, so
26
- # we're just going to run operations and see that they
27
- # don't crash.
28
- def test_ops()
29
- device = Cdio::Device.new()
30
- if Rubycdio::VERSION_NUM >= 76
31
- # FIXME: Broken on Darwin?
32
- # device.open()
33
- device.ATAPI?()
34
- # FIXME: Broken on Darwin?
35
- # device.media_changed?
36
- end
37
- assert_equal(true, true, "Test misc operations")
20
+ # Test running miscellaneous operations
21
+ # No assumption about the CD-ROM drives is made, so
22
+ # we're just going to run operations and see that they
23
+ # don't crash.
24
+ def test_ops()
25
+ device = Cdio::Device.new()
26
+ if Rubycdio::VERSION_NUM >= 76
27
+ # FIXME: Broken on Darwin?
28
+ # device.open()
29
+ device.ATAPI?()
30
+ # FIXME: Broken on Darwin?
31
+ # device.media_changed?
38
32
  end
39
-
40
- # Test getting default device
41
- def test_device_default()
42
- result1=Cdio::default_device_driver(Rubycdio::DRIVER_DEVICE)
43
- result2=Cdio::default_device_driver()
33
+ assert_equal(true, true, "Test misc operations")
34
+ end
35
+
36
+ # Test getting default device
37
+ def test_device_default()
38
+ result1=Cdio::default_device_driver(Rubycdio::DRIVER_DEVICE)
39
+ result2=Cdio::default_device_driver()
40
+ assert_equal(result1, result2,
41
+ "default_device with/out parameters")
42
+ device = Cdio::Device.new()
43
+ result2=device.device()
44
+ if result1
45
+ assert_equal(result1[0], result2)
46
+ # Now try getting device using driver that we got back
47
+ begin
48
+ device=Cdio::Device.new(driver_id=result1[1])
49
+ result1 = device.device()
44
50
  assert_equal(result1, result2,
45
- "default_device with/out parameters")
46
- device = Cdio::Device.new()
47
- result2=device.device()
48
- if result1:
49
- assert_equal(result1[0], result2)
50
- # Now try getting device using driver that we got back
51
- begin
52
- device=Cdio::Device.new(driver_id=result1[1])
53
- result1 = device.device()
54
- assert_equal(result1, result2,
55
- "default_device using driver name")
56
- rescue
57
- end
58
- end
59
- end
60
-
61
- # Test that various routines raise proper exceptions
62
- def test_exceptions()
63
- device = Cdio::Device.new()
64
- # No CD or or CD image has been set yet. So these fail
65
- begin
66
- lsn = device.disc_last_lsn()
67
- rescue IOError
68
- assert_equal(true, true, "last_lsn() IO Error")
69
- rescue Cdio::DriverError
70
- assert_equal(true, true, "last_lsn() DriverError")
71
- else
72
- assert(false, "last_lsn() should raise error")
73
- end
74
- assert_equal("Uninitialized Device", device.disc_mode)
75
- begin
76
- track = device.num_tracks()
77
- rescue IOError
78
- assert_equal(true, true, "get_num_tracks() IO Error")
79
- rescue Cdio::DriverError
80
- assert_equal(true, true, "get_num_tracks() DriverError")
81
- rescue Cdio::TrackError
82
- assert_equal(true, true, "get_num_tracks() TrackError")
83
- else
84
- assert(false, "last_lsn() should raise error")
85
- end
86
- ## assert_raise(DriverUninitError, device.driver_name)
87
- ## assert_raise(DriverUninitError,
88
- ## device.media_changed)
89
- ## assert_raise(IOError, device.open, "***Invalid device***")
51
+ "default_device using driver name")
52
+ rescue
53
+ end
90
54
  end
91
-
92
- # Test that we have image drivers
93
- def test_have_image_drivers()
94
- result = Cdio::driver? :"CDRDAO"
95
- assert_equal(true, result, "Have cdrdrao driver via string")
96
- result = Cdio::driver? Rubycdio::DRIVER_CDRDAO
97
- assert_equal(true, result, "Have cdrdrao driver via driver_id")
98
- result = Cdio::driver? :"NRG"
99
- assert_equal(true, result, "Have NRG driver via string")
100
- result = Cdio::driver? Rubycdio::DRIVER_NRG
101
- assert_equal(true, result, "Have NRG driver via driver_id")
102
- result = Cdio::driver? :'BIN/CUE'
103
- assert_equal(true, result, "Have BIN/CUE driver via string")
104
- result = Cdio::driver? Rubycdio::DRIVER_BINCUE
105
- assert_equal(true, result, "Have BIN/CUE driver via driver_id")
106
- end
107
-
108
- # Test functioning of cdrdao image routines
109
- def test_tocfile()
110
- ## TOC reading needs to be done in the directory where the
111
- ## TOC/BIN files reside.
112
- olddir=Dir.pwd()
113
- Dir.chdir(Mypath)
114
- tocfile="cdda.toc"
115
- device = Cdio::Device.new(tocfile, Rubycdio::DRIVER_CDRDAO)
116
- hw = device.hwinfo()
117
- assert_equal(true, hw != nil, "get_hwinfo ok")
118
- assert_equal('libcdio', hw["vendor"], "get_hwinfo vendor")
119
- assert_equal('cdrdao', hw["model"], "get_hwinfo cdrdao")
120
- # Test known values of various access parameters:
121
- # access mode, driver name via string and via driver_id
122
- # and cue name
123
- result = device.arg("access-mode")
124
- assert_equal(result, 'image', 'get_arg("access_mode")')
125
- result = device.driver_name()
126
- assert_equal(result, 'CDRDAO', 'get_driver_name')
127
- result = device.driver_id()
128
- assert_equal(result, Rubycdio::DRIVER_CDRDAO, 'get_driver_id')
129
- result = device.arg("source")
130
- assert_equal(result, tocfile, 'get_arg("source")')
131
- result = device.media_changed?
132
- assert_equal(false, result, "tocfile: media_changed?")
133
- # Test getting is_tocfile
134
- result = tocfile?(tocfile)
135
- assert_equal(true, result, "is_tocfile(tocfile)")
136
- result = nrg? tocfile
137
- assert_equal(false, result, "is_nrgfile(tocfile)")
138
- result = device? tocfile
139
- assert_equal(false, result, "is_device(tocfile)")
140
- ## FIXME
141
- ## assert_raise(DriverUnsupportedError,
142
- ## (deviceblocksize= 2048))
143
- ##assert_raise(DriverUnsupportedError,
144
- ## (device.speed = 5))
145
- device.close()
146
- Dir.chdir(olddir)
55
+ end
56
+
57
+ # Test that various routines raise proper exceptions
58
+ def test_exceptions()
59
+ device = Cdio::Device.new()
60
+ # No CD or or CD image has been set yet. So these fail
61
+ begin
62
+ lsn = device.disc_last_lsn()
63
+ rescue IOError
64
+ assert_equal(true, true, "last_lsn() IO Error")
65
+ rescue Cdio::DriverError
66
+ assert_equal(true, true, "last_lsn() DriverError")
67
+ else
68
+ assert(false, "last_lsn() should raise error")
147
69
  end
148
-
149
- # Test functioning of read routines
150
- def test_read()
151
- cuefile=Mypath + "/../data/isofs-m1.cue"
152
- device = Cdio::Device.new(cuefile)
153
- # Read the ISO Primary Volume descriptor
154
- blocks, data=device.read_sectors(16, Rubycdio::READ_MODE_M1F1)
155
- assert_equal(data[1..5], 'CD001')
156
- assert_equal(blocks, 1)
157
- blocks, data=device.read_data_blocks(26)
158
- assert_equal(data[6..31], 'GNU GENERAL PUBLIC LICENSE')
70
+ assert_equal("Uninitialized Device", device.disc_mode)
71
+ begin
72
+ track = device.num_tracks()
73
+ rescue IOError
74
+ assert_equal(true, true, "get_num_tracks() IO Error")
75
+ rescue Cdio::DriverError
76
+ assert_equal(true, true, "get_num_tracks() DriverError")
77
+ rescue Cdio::TrackError
78
+ assert_equal(true, true, "get_num_tracks() TrackError")
79
+ else
80
+ assert(false, "last_lsn() should raise error")
159
81
  end
82
+ ## assert_raise(DriverUninitError, device.driver_name)
83
+ ## assert_raise(DriverUninitError,
84
+ ## device.media_changed)
85
+ ## assert_raise(IOError, device.open, "***Invalid device***")
86
+ end
160
87
 
161
- # Test functioning of BIN/CUE image routines
162
- def test_bincue()
163
- cuefile= Mypath + "/cdda.cue"
164
- device = Cdio::Device.new(source=cuefile)
165
- # Test known values of various access parameters:
166
- # access mode, driver name via string and via driver_id
167
- # and cue name
168
- result = device.arg("access-mode")
169
- assert_equal(result, 'image', 'get_arg("access_mode")')
170
- result = device.driver_name()
171
- assert_equal(result, 'BIN/CUE', 'get_driver_name')
172
- result = device.driver_id()
173
- assert_equal(result, Rubycdio::DRIVER_BINCUE, 'get_driver_id')
174
- result = device.arg("cue")
175
- assert_equal(result, cuefile, 'get_arg("cue")')
176
- # Test getting binfile? and cuefile?
177
- binfile = cuefile? cuefile
178
- assert_equal(true, binfile != nil, "cuefile? cuefile")
179
- # require "debug"
180
- cuefile2 = binfile? binfile
181
- # Could check that cuefile2 == cuefile, but some OS's may
182
- # change the case of files
183
- assert_equal(true, cuefile2 != nil, "cuefile? binfile")
184
- result = tocfile? cuefile
185
- assert_equal(false, result, "tocfile? tocfile")
186
- hw = device.hwinfo()
187
- assert_equal(true, hw != nil, "get_hwinfo ok")
188
- assert_equal('libcdio', hw["vendor"], "get_hwinfo vendor")
189
- assert_equal('CDRWIN', hw["model"], "get_hwinfo model")
190
- result = device? cuefile
191
- assert_equal(false, result, "device? tocfile")
192
- result = device.media_changed?
193
- assert_equal(false, result, "binfile: media_changed?")
194
- if Rubycdio::VERSION_NUM >= 77:
195
- # There's a bug in libcdio 0.76 that causes these to crash
196
- ### FIXME
197
- ## assert_raise(DriverUnsupportedError,
198
- ## device.blocksize= 2048)
199
- ## assert_raise(DriverUnsupportedError,
200
- ## device.speed = 5)
201
- end
202
- device.close()
203
- end
204
-
205
- # Test functioning CD-DA
206
- def test_cdda()
207
- device = Cdio::Device.new()
208
- cuefile=Mypath + "/cdda.cue"
209
- device.open(cuefile)
210
- result = device.disc_mode()
211
- assert_equal(result, 'CD-DA', 'get_disc_mode')
212
- assert_equal(device.mcn(), '0000010271955', 'get_mcn')
213
- ## FIXME
214
- ## assert_raise(DriverUnsupportedError,
215
- ## device.last_session)
216
- # assert_raise(IOError, device.joliet_level)
217
- result = device.num_tracks()
218
- assert_equal(result, 1, 'get_num_tracks')
219
- disc_last_lsn = device.disc_last_lsn()
220
- assert_equal(disc_last_lsn, 302, 'get_disc_last_lsn')
221
- t=device.last_track()
222
- assert_equal(t.track, 1, 'last_track')
223
- assert_equal(t.last_lsn(), 301, '(track) last_lsn')
224
- assert_equal(device.track_for_lsn(t.last_lsn()).track,
225
- t.track)
226
- t=device.first_track()
227
- assert_equal(t.track, 1, 'get_first_track')
228
- assert_equal(t.format(), 'audio', 'get_track_format')
229
- assert_equal(t.msf(), "00:02:00", "get_msf")
230
- device.close()
231
- end
88
+ # Test that we have image drivers
89
+ def test_have_image_drivers()
90
+ result = Cdio::driver? :"CDRDAO"
91
+ assert_equal(true, result, "Have cdrdrao driver via string")
92
+ result = Cdio::driver? Rubycdio::DRIVER_CDRDAO
93
+ assert_equal(true, result, "Have cdrdrao driver via driver_id")
94
+ result = Cdio::driver? :"NRG"
95
+ assert_equal(true, result, "Have NRG driver via string")
96
+ result = Cdio::driver? Rubycdio::DRIVER_NRG
97
+ assert_equal(true, result, "Have NRG driver via driver_id")
98
+ result = Cdio::driver? :'BIN/CUE'
99
+ assert_equal(true, result, "Have BIN/CUE driver via string")
100
+ result = Cdio::driver? Rubycdio::DRIVER_BINCUE
101
+ assert_equal(true, result, "Have BIN/CUE driver via driver_id")
102
+ end
103
+
104
+ # Test functioning of cdrdao image routines
105
+ def test_tocfile()
106
+ ## TOC reading needs to be done in the directory where the
107
+ ## TOC/BIN files reside.
108
+ Dir.chdir(File.expand_path(File.dirname(__FILE__))) {
109
+ tocfile="cdda.toc"
110
+ device = Cdio::Device.new(tocfile, Rubycdio::DRIVER_CDRDAO)
111
+ hw = device.hwinfo()
112
+ assert_equal(true, hw != nil, "get_hwinfo ok")
113
+ assert_equal('libcdio', hw["vendor"], "get_hwinfo vendor")
114
+ assert_equal('cdrdao', hw["model"], "get_hwinfo cdrdao")
115
+ # Test known values of various access parameters:
116
+ # access mode, driver name via string and via driver_id
117
+ # and cue name
118
+ result = device.arg("access-mode")
119
+ assert_equal(result, 'image', 'get_arg("access_mode")')
120
+ result = device.driver_name()
121
+ assert_equal(result, 'CDRDAO', 'get_driver_name')
122
+ result = device.driver_id()
123
+ assert_equal(result, Rubycdio::DRIVER_CDRDAO, 'get_driver_id')
124
+ result = device.arg("source")
125
+ assert_equal(result, tocfile, 'get_arg("source")')
126
+ result = device.media_changed?
127
+ assert_equal(false, result, "tocfile: media_changed?")
128
+ # Test getting is_tocfile
129
+ result = tocfile?(tocfile)
130
+ assert_equal(true, result, "is_tocfile(tocfile)")
131
+ result = nrg? tocfile
132
+ assert_equal(false, result, "is_nrgfile(tocfile)")
133
+ result = device? tocfile
134
+ assert_equal(false, result, "is_device(tocfile)")
135
+ ## FIXME
136
+ ## assert_raise(DriverUnsupportedError,
137
+ ## (deviceblocksize= 2048))
138
+ ##assert_raise(DriverUnsupportedError,
139
+ ## (device.speed = 5))
140
+ device.close()
141
+ }
142
+ end
143
+
144
+ # Test functioning of read routines
145
+ def test_read()
146
+ cuefile = File.join(@mypath, '..', 'data', 'isofs-m1.cue')
147
+ Dir.chdir(@mypath) {
148
+ device = Cdio::Device.new(cuefile)
149
+ # Read the ISO Primary Volume descriptor
150
+ blocks, data=device.read_sectors(16, Rubycdio::READ_MODE_M1F1)
151
+ assert_equal(data[1..5], 'CD001')
152
+ assert_equal(blocks, 1)
153
+ blocks, data=device.read_data_blocks(26)
154
+ assert_equal(data[6..31], 'GNU GENERAL PUBLIC LICENSE')
155
+ }
156
+ end
157
+
158
+ # Test functioning of BIN/CUE image routines
159
+ def test_bincue()
160
+ cuefile = File.join(@mypath, 'cdda.cue')
161
+ Dir.chdir(@mypath) {
162
+ device = Cdio::Device.new(source=cuefile)
163
+ # Test known values of various access parameters:
164
+ # access mode, driver name via string and via driver_id
165
+ # and cue name
166
+ result = device.arg("access-mode")
167
+ assert_equal(result, 'image', 'get_arg("access_mode")')
168
+ result = device.driver_name()
169
+ assert_equal(result, 'BIN/CUE', 'get_driver_name')
170
+ result = device.driver_id()
171
+ assert_equal(result, Rubycdio::DRIVER_BINCUE, 'get_driver_id')
172
+ result = device.arg("cue")
173
+ assert_equal(result, cuefile, 'get_arg("cue")')
174
+ # Test getting binfile? and cuefile?
175
+ binfile = cuefile? cuefile
176
+ assert_equal(true, binfile != nil, "cuefile? cuefile")
177
+ # require "debug"
178
+ cuefile2 = binfile? binfile
179
+ # Could check that cuefile2 == cuefile, but some OS's may
180
+ # change the case of files
181
+ assert_equal(true, cuefile2 != nil, "cuefile? binfile")
182
+ result = tocfile? cuefile
183
+ assert_equal(false, result, "tocfile? tocfile")
184
+ hw = device.hwinfo()
185
+ assert_equal(true, hw != nil, "get_hwinfo ok")
186
+ assert_equal('libcdio', hw["vendor"], "get_hwinfo vendor")
187
+ assert_equal('CDRWIN', hw["model"], "get_hwinfo model")
188
+ result = device? cuefile
189
+ assert_equal(false, result, "device? tocfile")
190
+ result = device.media_changed?
191
+ assert_equal(false, result, "binfile: media_changed?")
192
+ if Rubycdio::VERSION_NUM >= 77
193
+ # There's a bug in libcdio 0.76 that causes these to crash
194
+ ### FIXME
195
+ # assert_raise(DriverUnsupportedError,
196
+ # device.blocksize= 2048)
197
+ # assert_raise(DriverUnsupportedError,
198
+ # device.speed = 5)
199
+ end
200
+ device.close()
201
+ }
202
+ end
203
+
204
+ # Test functioning CD-DA
205
+ def test_cdda()
206
+ device = Cdio::Device.new()
207
+ cuefile = File.join(@mypath, 'cdda.cue')
208
+ device.open(cuefile)
209
+ result = device.disc_mode()
210
+ assert_equal(result, 'CD-DA', 'get_disc_mode')
211
+ assert_equal(device.mcn(), '0000010271955', 'get_mcn')
212
+ ## FIXME
213
+ ## assert_raise(DriverUnsupportedError,
214
+ ## device.last_session)
215
+ # assert_raise(IOError, device.joliet_level)
216
+ result = device.num_tracks()
217
+ assert_equal(result, 1, 'get_num_tracks')
218
+ disc_last_lsn = device.disc_last_lsn()
219
+ assert_equal(disc_last_lsn, 302, 'get_disc_last_lsn')
220
+ t=device.last_track()
221
+ assert_equal(t.track, 1, 'last_track')
222
+ assert_equal(t.last_lsn(), 301, '(track) last_lsn')
223
+ assert_equal(device.track_for_lsn(t.last_lsn()).track,
224
+ t.track)
225
+ t=device.first_track()
226
+ assert_equal(t.track, 1, 'get_first_track')
227
+ assert_equal(t.format(), 'audio', 'get_track_format')
228
+ assert_equal(t.msf(), "00:02:00", "get_msf")
229
+ device.close()
230
+ end
232
231
  end
233
- Dir.chdir(old_dir)
data/test/cdtext.rb ADDED
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Unit test for cdtext.
4
+
5
+ require 'test/unit'
6
+ mypath = File.expand_path(File.dirname(__FILE__))
7
+
8
+ %w(lib ext/cdio ext/iso9660).each do |d|
9
+ $: << File.join(mypath, '..', d)
10
+ end
11
+ %w(cdio iso9660).each {|f| require f}
12
+
13
+ class CDTextTests < Test::Unit::TestCase
14
+
15
+ # Test keywords
16
+ def test_keyword
17
+ assert_equal(Rubycdio.cdtext_is_keyword('PERFORMER'),
18
+ Rubycdio::CDTEXT_PERFORMER)
19
+ assert_equal(Rubycdio.cdtext_is_keyword('IDONOTEXIST'),
20
+ Rubycdio::MAX_CDTEXT_FIELDS)
21
+
22
+ assert_equal(Rubycdio.cdtext_field2str(Rubycdio::CDTEXT_PERFORMER),
23
+ "PERFORMER")
24
+ end
25
+
26
+ # Test getting and setting CDText
27
+ def test_get_set
28
+ tocpath = File.join(File.dirname(__FILE__), 'cdtext.toc')
29
+ device = Cdio::Device.new(tocpath, Rubycdio::DRIVER_CDRDAO)
30
+
31
+ disctext = device.track(0).cdtext()
32
+ assert_equal(disctext.get(Rubycdio::CDTEXT_PERFORMER), 'Performer')
33
+ assert_equal(disctext.get(Rubycdio::CDTEXT_TITLE), 'CD Title')
34
+ assert_equal(disctext.get(Rubycdio::CDTEXT_DISCID), 'XY12345')
35
+
36
+ track1text = device.track(1).cdtext()
37
+ assert_equal(track1text.get(Rubycdio::CDTEXT_PERFORMER), 'Performer')
38
+ assert_equal(track1text.get(Rubycdio::CDTEXT_TITLE), 'Track Title')
39
+
40
+ track1text.set(Rubycdio::CDTEXT_PERFORMER, 'Someone')
41
+ assert_equal(track1text.get(Rubycdio::CDTEXT_PERFORMER), 'Someone')
42
+ end
43
+ end
44
+
data/test/isocopy.rb CHANGED
@@ -1,26 +1,25 @@
1
1
  #!/usr/bin/env ruby
2
- # $Id: isocopy.rb,v 1.4 2006/12/09 09:59:49 rocky Exp $
3
2
 
4
3
  # Unit test of ISO 9660 file extraction.
5
4
 
6
- require "test/unit"
5
+ require 'test/unit'
7
6
  mypath = File.expand_path(File.dirname(__FILE__))
8
- $: << mypath + '/../lib'
9
- $: << mypath + '/../ext/cdio'
10
- $: << mypath + '/../ext/iso9660'
11
7
 
12
- require "cdio"
13
- require "iso9660"
8
+ %w(lib ext/cdio ext/iso9660).each do |d|
9
+ $: << File.join(mypath, '..', d)
10
+ end
11
+ %w(cdio iso9660).each {|f| require f}
12
+
14
13
 
15
14
  # The test CD image
16
- CD_IMAGE_PATH = mypath + "/../data"
15
+ CD_IMAGE_PATH = File.join(mypath, '..', 'data')
17
16
 
18
17
  class ISO9660Tests < Test::Unit::TestCase
19
18
 
20
19
  def test_fs()
21
20
 
22
21
  local_filename="COPYING"
23
- cd_image_fname = CD_IMAGE_PATH + "/isofs-m1.cue"
22
+ cd_image_fname = File.join(CD_IMAGE_PATH, 'isofs-m1.cue')
24
23
  cd = ISO9660::FS::new(cd_image_fname)
25
24
  assert(cd != nil, "Open CD image %s" % cd_image_fname)
26
25
  statbuf = cd.stat("/" + local_filename)