First commit after CVS conversion. Should be just administrative changes.

This commit is contained in:
R. Bernstein
2008-11-29 00:56:26 -05:00
parent 4ea407f746
commit 95f087cdc3
413 changed files with 86786 additions and 86 deletions

12
test/.gitignore vendored Normal file
View File

@@ -0,0 +1,12 @@
/.deps
/Makefile
/Makefile.in
/check_common_fn
/check_cue.sh
/check_iso.sh
/check_nrg.sh
/check_paranoia.sh
/testbincue.c
/testisocd2.c
/testnrg.c
/testpregap.c

113
test/Makefile.am Normal file
View File

@@ -0,0 +1,113 @@
# $Id: Makefile.am,v 1.69 2008/08/31 13:38:22 flameeyes Exp $
#
# Copyright (C) 2003, 2004, 2006, 2008 Rocky Bernstein <rocky@gnu.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
####################################################
# Things for regression testing
####################################################
#
#
# There's a problem with doing make distcheck for testdefault.
# A reminder of why I hate automake.
if BUILD_CD_PARANOIA
testparanoia=testparanoia
testparanoia_LDADD = $(LIBCDIO_PARANOIA_LIBS) $(LIBCDIO_CDDA_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
endif
hack = check_sizeof testassert testbincue testischar \
testisocd testisocd2 testiso9660 \
testnrg $(testparanoia) testtoc testpregap
EXTRA_PROGRAMS = testdefault
INCLUDES = -I$(top_srcdir) $(LIBCDIO_CFLAGS) $(LIBISO9660_CFLAGS)
check_sizeof_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
testassert_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
testdefault_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
testischar_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
testiso9660_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
testisocd_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
testisocd2_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LTLIBICONV)
testtoc_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
testtoc_CFLAGS = -DTEST_DIR=\"$(srcdir)\"
testpregap_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
testpregap_CFLAGS = -DTEST_DIR=\"$(srcdir)\"
testbincue_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
testbincue_CFLAGS = -DTEST_DIR=\"$(srcdir)\"
testnrg_LDADD = $(LIBCDIO_LIBS) $(LTLIBICONV)
testnrg_CFLAGS = -DTEST_DIR=\"$(srcdir)\"
check_SCRIPTS = check_nrg.sh check_cue.sh check_cd_read.sh \
check_iso.sh check_fuzzyiso.sh check_paranoia.sh check_opts.sh
# If we beefed this up so it checked to see if a CD-DA was loaded
# it could be an automatic test. But for now, not so.
# check_paranoia.sh
check_PROGRAMS = $(hack)
check_DATA = vcd_demo.right vcd_demo_vcdinfo.right \
videocd.right videocd.nrg \
cdda.right cdda.toc cdda.cue cdda.bin \
isofs-m1.right isofs-m1-no-rr.right \
isofs-m1.toc isofs-m1.cue isofs-m1.bin \
cd-paranoia-log.right \
check_opts0.right check_opts1.right check_opts2.right \
check_opts3.right check_opts4.right check_opts5.right \
check_opts6.right check_opts7.right \
isofs-m1-read.right cdda-read.right \
t1.toc t2.toc t3.toc t4.toc t5.toc t6.toc t7.toc t8.toc t9.toc \
data1.toc data2.toc data5.toc data6.toc data7.toc \
vcd2.toc cdtext.toc \
bad-mode1.cue bad-msf-1.cue bad-msf-2.cue bad-msf-3.cue \
bad-mode1.toc bad-msf-1.toc bad-msf-2.toc bad-msf-3.toc \
bad-cat1.cue bad-cat2.cue bad-cat3.cue \
bad-cat1.toc bad-cat2.toc bad-cat3.toc bad-file.toc \
copying.iso copying.right copying-rr.iso copying-rr.right \
joliet.iso joliet.right joliet-nojoliet.right \
udf102.iso copying.gpl copying-rr.gpl
EXTRA_DIST = $(check_SCRIPTS) $(check_DATA) \
check_common_fn check_cue.sh.in check_nrg.sh.in \
testbincue.c.in testpregap.c.in testnrg.c.in \
check_iso.sh.in p1.bin p1.cue p1.nrg
TESTS = $(check_PROGRAMS) $(check_SCRIPTS)
XFAIL_TESTS = testassert
MOSTLYCLEANFILES = core core.* *.dump cdda-orig.wav cdda-try.wav *.raw
test: check-am
# This is a really bad hack to make sure check_nrg and check_cue.sh
# are executable. Automake will remake check_nrg.sh and check_cue.sh
# but not run the configure default commands for them to make sure
# they are executable. You know it would be nice one could just set
# permissions and mode when it makes the files. I'm sure there's some
# cleaner a way to do this, but frankly I've wasted far too much of my
# life the crappy automess system that I've really lost interest in
# learning any more of this awful system than I need to.
check-am: make-executable
make-executable: check_nrg.sh check_cue.sh check_paranoia.sh
chmod +x *.sh
if test ! -f cdda.bin ; then $(LN_S) $(srcdir)/cdda.bin cdda.bin ; fi
if test ! -f isofs-m1.bin ; then $(LN_S) $(srcdir)/isofs-m1.bin isofs-m1.bin ; fi

9
test/bad-cat1.cue Normal file
View File

@@ -0,0 +1,9 @@
REM $Id: bad-cat1.cue,v 1.1 2004/07/12 03:59:59 rocky Exp $
REM test catalog number - no catalog after word CATALOG
CATALOG
FILE "cdda.bin" BINARY
TRACK 01 AUDIO
INDEX 01 00:00:00

8
test/bad-cat1.toc Normal file
View File

@@ -0,0 +1,8 @@
// $Id: bad-cat1.toc,v 1.1 2004/05/08 20:36:02 rocky Exp $
// test catalog number - no catalog after word CATALOG
CATALOG
TRACK AUDIO
NO COPY
FILE "cdda.bin" 1:0:0

9
test/bad-cat2.cue Normal file
View File

@@ -0,0 +1,9 @@
REM $Id: bad-cat2.cue,v 1.1 2004/07/09 20:47:08 rocky Exp $
REM test catalog number. -- not enough digits
CATALOG "167890123"
FILE "cdda.bin" BINARY
TRACK 01 AUDIO
INDEX 01 00:00:00

8
test/bad-cat2.toc Normal file
View File

@@ -0,0 +1,8 @@
// $Id: bad-cat2.toc,v 1.2 2004/07/09 20:47:08 rocky Exp $
// test catalog number. -- not enough digits
CATALOG 167890123 // Should be 13 digits
TRACK AUDIO
NO COPY
FILE "cdda.bin" 1:0:0

9
test/bad-cat3.cue Normal file
View File

@@ -0,0 +1,9 @@
REM $Id: bad-cat3.cue,v 1.2 2004/07/10 01:18:02 rocky Exp $
REM test catalog number. -- invalid decimal digit
CATALOG 123456789b123
FILE "cdda.bin" BINARY
TRACK 01 AUDIO
INDEX 01 00:00:00

8
test/bad-cat3.toc Normal file
View File

@@ -0,0 +1,8 @@
// $Id: bad-cat3.toc,v 1.1 2004/05/08 20:36:02 rocky Exp $
// test catalog number - non-digit catalog name
CATALOG "123456789A123"
TRACK AUDIO
NO COPY
FILE "cdda.bin" 1:0:0

13
test/bad-file.toc Normal file
View File

@@ -0,0 +1,13 @@
// $Id: bad-file.toc,v 1.1 2005/01/23 00:45:57 rocky Exp $
// XA disk
//
CD_ROM_XA
TRACK MODE2_FORM2
FILE "foo.bin" 00:00:00 00:13:57
TRACK MODE2_FORM1
PREGAP 0:2:0
FILE "foo.bin" 00:20:71 00:00:00

7
test/bad-mode1.cue Normal file
View File

@@ -0,0 +1,7 @@
REM $Id: bad-mode1.cue,v 1.1 2004/07/10 01:18:02 rocky Exp $
REM "MODE1_FORM45" is not a valid mode.
FILE "cdda.bin" BINARY
TRACK 01 MODE3_FORM1
INDEX 01 00:00:00

5
test/bad-mode1.toc Normal file
View File

@@ -0,0 +1,5 @@
// $Id: bad-mode1.toc,v 1.1 2004/05/07 10:57:50 rocky Exp $
CD_DA
TRACK MODE1_FORM45 // "MODE1_FORM45" is not a valid mode.
SILENCE 10:0:0

7
test/bad-msf-1.cue Normal file
View File

@@ -0,0 +1,7 @@
REM $Id: bad-msf-1.cue,v 1.1 2004/07/12 03:57:28 rocky Exp $
REM bad MSF in second field - frame should be less than 75
FILE "cdda.bin" BINARY
TRACK 01 AUDIO
INDEX 01 00:00:100

6
test/bad-msf-1.toc Normal file
View File

@@ -0,0 +1,6 @@
// $Id: bad-msf-1.toc,v 1.1 2004/05/07 10:57:50 rocky Exp $
// bad MSF in second field
TRACK AUDIO
NO COPY // so that all CTL flags are 0
FILE "cdda.bin" 0:0:75 // frame should be less than 75

7
test/bad-msf-2.cue Normal file
View File

@@ -0,0 +1,7 @@
REM $Id: bad-msf-2.cue,v 1.1 2004/07/10 01:18:02 rocky Exp $
REM bad MSF in second field - seconds should be less than 60
FILE "cdda.bin" BINARY
TRACK 01 AUDIO
INDEX 01 00:90:00

6
test/bad-msf-2.toc Normal file
View File

@@ -0,0 +1,6 @@
// $Id: bad-msf-2.toc,v 1.1 2004/05/07 10:57:50 rocky Exp $
// bad MSF in second field
TRACK AUDIO
NO COPY // so that all CTL flags are 0
FILE "cdda.bin" 0:60:0 // seconds should be less than 60

7
test/bad-msf-3.cue Normal file
View File

@@ -0,0 +1,7 @@
REM $Id: bad-msf-3.cue,v 1.1 2004/07/12 03:58:55 rocky Exp $
REM bad MSF in second field
FILE "cdda.bin" BINARY
TRACK 01 AUDIO
INDEX 01 xx:yy:0

6
test/bad-msf-3.toc Normal file
View File

@@ -0,0 +1,6 @@
// $Id: bad-msf-3.toc,v 1.1 2004/07/10 01:18:02 rocky Exp $
// bad MSF in second field
TRACK AUDIO
NO COPY // so that all CTL flags are 0
FILE "cdda.bin" xx:yy:zz // Should be digits

View File

@@ -0,0 +1,3 @@
outputting to cdda.raw
(== PROGRESS == [] == :^D * ==)

18
test/cdda-mcn.right Normal file
View File

@@ -0,0 +1,18 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD-DA
CD-ROM Track List (1 - 1)
#: MSF LSN Type Green? Copy? Channels Premphasis?
1: 00:02:00 000000 audio false yes 0 no
170: 00:09:64 000589 leadout (1 MB raw, 1 MB formatted)
Media Catalog Number (MCN): 123456789ABCD
Last CD Session LSN: not supported by drive/driver
audio status: not implemented
__________________________________
CD Analysis Report
CD-TEXT for Disc:
CD-TEXT for Track 1:

151
test/cdda-read.right Normal file
View File

@@ -0,0 +1,151 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
0x0000: 0000 0000 0000 0000 0000 0000 0000 0000
0x0010: 0000 0000 0000 0000 0000 0000 0000 0000
0x0020: 0000 0000 0000 0000 0000 0000 0000 0000
0x0030: 0000 0000 0000 0000 0000 0000 0000 0000
0x0040: 0000 0000 0000 0000 0000 0000 0000 0000
0x0050: 0000 0000 0000 0000 0000 0000 0000 0000
0x0060: 0000 0000 0000 0000 0000 0000 0000 0000
0x0070: 0000 0000 0000 0000 0000 0000 0000 0000
0x0080: 0000 0000 0000 0000 0000 0000 0000 0000
0x0090: 0000 0000 0000 0000 0000 0000 0000 0000
0x00a0: 0000 0000 0000 0000 0000 0000 0000 0000
0x00b0: 0000 0000 0000 0000 0000 0000 0000 0000
0x00c0: 0000 0000 0000 0000 0000 0000 0000 0000
0x00d0: 0000 0000 0000 0000 0000 0000 0000 0000
0x00e0: 0000 0000 0000 0000 0000 0000 0000 0000
0x00f0: 0000 0000 0000 0000 0000 0000 0000 0000
0x0100: 0000 0000 0000 0000 0000 0000 0000 0000
0x0110: 0000 0000 0000 0000 0000 0000 0000 0000
0x0120: 0000 0000 0000 0000 0000 0000 0000 0000
0x0130: 0000 0000 0000 0000 0000 0000 0000 0000
0x0140: 0000 0000 0000 0000 0000 0000 0000 0000
0x0150: 0000 0000 0000 0000 0000 0000 0000 0000
0x0160: 0000 0000 0000 0000 0000 0000 0000 0000
0x0170: 0000 0000 0000 0000 0000 0000 0000 0000
0x0180: 0000 0000 0000 0000 0000 0000 0000 0000
0x0190: 0000 0000 0000 0000 0000 0000 0000 0000
0x01a0: 0000 0000 0000 0000 0000 0000 0000 0000
0x01b0: 0000 0000 0000 0000 0000 0000 0000 0000
0x01c0: 0000 0000 0000 0000 0000 0000 0000 0000
0x01d0: 0000 0000 0000 0000 0000 0000 0000 0000
0x01e0: 0000 0000 0000 0000 0000 0000 0000 0000
0x01f0: 0000 0000 0000 0000 0000 0000 0000 0000
0x0200: 0000 0000 0000 0000 0000 0000 0000 0000
0x0210: 0000 0000 0000 0000 0000 0000 0000 0000
0x0220: 0000 0000 0000 0000 0000 0000 0000 0000
0x0230: 0000 0000 0000 0000 0000 0000 0000 0000
0x0240: 0000 0000 0000 0000 0000 0000 0000 0000
0x0250: 0000 0000 0000 0000 0000 0000 0000 0000
0x0260: 0000 0000 0000 0000 0000 0000 0000 0000
0x0270: 0000 0000 0000 0000 0000 0000 0000 0000
0x0280: 0000 0000 0000 0000 0000 0000 0000 0000
0x0290: 0000 0000 0000 0000 0000 0000 0000 0000
0x02a0: 0000 0000 0000 0000 0000 0000 0000 0000
0x02b0: 0000 0000 0000 0000 0000 0000 0000 0000
0x02c0: 0000 0000 0000 0000 0000 0000 0000 0000
0x02d0: 0000 0000 0000 0000 0000 0000 0000 0000
0x02e0: 0000 0000 0000 0000 0000 0000 0000 0000
0x02f0: 0000 0000 0000 0000 0000 0000 0000 0000
0x0300: 0000 0000 0000 0000 0000 0000 0000 0000
0x0310: 0000 0000 0000 0000 0000 0000 0000 0000
0x0320: 0000 0000 0000 0000 0000 0000 0000 0000
0x0330: 0000 0000 0000 0000 0000 0000 0000 0000
0x0340: 0000 0000 0000 0000 0000 0000 0000 0000
0x0350: 0000 0000 0000 0000 0000 0000 0000 0000
0x0360: 0000 0000 0000 0000 0000 0000 0000 0000
0x0370: 0000 0000 0000 0000 0000 0000 0000 0000
0x0380: 0000 0000 0000 0000 0000 0000 0000 0000
0x0390: 0000 0000 0000 0000 0000 0000 0000 0000
0x03a0: 0000 0000 0000 0000 0000 0000 0000 0000
0x03b0: 0000 0000 0000 0000 0000 0000 0000 0000
0x03c0: 0000 0000 0000 0000 0000 0000 0000 0000
0x03d0: 0000 0000 0000 0000 0000 0000 0000 0000
0x03e0: 0000 0000 0000 0000 0000 0000 0000 0000
0x03f0: 0000 0000 0000 0000 0000 0000 0000 0000
0x0400: 0000 0000 0000 0000 0000 0000 0000 0000
0x0410: 0000 0000 0000 0000 0000 0000 0000 0000
0x0420: 0000 0000 0000 0000 0000 0000 0000 0000
0x0430: 0000 0000 0000 0000 0000 0000 0000 0000
0x0440: 0000 0000 0000 0000 0000 0000 0000 0000
0x0450: 0000 0000 0000 0000 0000 0000 0000 0000
0x0460: 0000 0000 0000 0000 0000 0000 0000 0000
0x0470: 0000 0000 0000 0000 0000 0000 0000 0000
0x0480: 0000 0000 0000 0000 f0ff 0000 f0ff 0000
0x0490: e3ff f0ff e3ff f0ff d8ff e3ff d8ff e3ff
0x04a0: dfff e8ff dfff e8ff f5ff fcff f5ff fcff
0x04b0: 0700 0c00 0700 0c00 1500 1800 1500 1800
0x04c0: 2000 1100 2000 1100 2800 0b00 2800 0b00
0x04d0: 1d00 0500 1d00 0500 1300 0000 1300 0000
0x04e0: 0a00 0b00 0a00 0b00 1200 1300 1200 1300
0x04f0: 1800 1900 1800 1900 0c00 0d00 0c00 0d00
0x0500: 0200 0300 0200 0300 e9ff faff e9ff faff
0x0510: d5ff f2ff d5ff f2ff b5ff dbff b5ff dbff
0x0520: 9cff c8ff 9cff c8ff a9ff c9ff a9ff c9ff
0x0530: c4ff daff c4ff daff eaff f8ff eaff f8ff
0x0540: 1900 1000 1900 1000 3e00 2300 3e00 2300
0x0550: 6b00 3100 6b00 3100 8d00 3b00 8d00 3b00
0x0560: 7600 4200 7600 4200 6100 3600 6100 3600
0x0570: 3e00 2b00 3e00 2b00 1000 1100 1000 1100
0x0580: eaff fbff eaff fbff cbff e9ff cbff e9ff
0x0590: b2ff daff b2ff daff ceff deff ceff deff
0x05a0: e5ff f1ff e5ff f1ff f8ff 0000 f8ff 0000
0x05b0: 0700 0c00 0700 0c00 1300 1500 1300 1500
0x05c0: 0c00 0b00 0c00 0b00 e6ff f2ff e6ff f2ff
0x05d0: c7ff ddff c7ff ddff aeff ccff aeff ccff
0x05e0: 8aff bfff 8aff bfff 6eff b5ff 6eff b5ff
0x05f0: 99ff ceff 99ff ceff d0ff e3ff d0ff e3ff
0x0600: 0e00 0400 0e00 0400 8000 3e00 8000 3e00
0x0610: da00 6c00 da00 6c00 1f01 8f00 1f01 8f00
0x0620: 4201 a900 4201 a900 2901 9b00 2901 9b00
0x0630: d000 6d00 d000 6d00 7100 3500 7100 3500
0x0640: 0000 0600 0000 0600 64ff bfff 64ff bfff
0x0650: e7fe 86ff e7fe 86ff a7fe 59ff a7fe 59ff
0x0660: 98fe 47ff 98fe 47ff b1fe 4bff b1fe 4bff
0x0670: eafe 71ff eafe 71ff 5cff a2ff 5cff a2ff
0x0680: ceff ebff ceff ebff 3c00 2600 3c00 2600
0x0690: 9400 5500 9400 5500 d900 7900 d900 7900
0x06a0: bd00 6400 bd00 6400 a300 5100 a300 5100
0x06b0: 5f00 3000 5f00 3000 1300 1400 1300 1400
0x06c0: 0700 fcff 0700 fcff 0d00 f8ff 0d00 f8ff
0x06d0: 1100 0400 1100 0400 4300 1d00 4300 1d00
0x06e0: 6a00 3000 6a00 3000 8800 3e00 8800 3e00
0x06f0: 8e00 4800 8e00 4800 6000 2f00 6000 2f00
0x0700: e9ff f9ff e9ff f9ff 88ff cdff 88ff cdff
0x0710: 3bff 9aff 3bff 9aff ecfe 72ff ecfe 72ff
0x0720: d2fe 63ff d2fe 63ff 01ff 79ff 01ff 79ff
0x0730: 2bff 8cff 2bff 8cff 83ff bdff 83ff bdff
0x0740: fcff f5ff fcff f5ff 5e00 3200 5e00 3200
0x0750: ac00 6200 ac00 6200 e800 8700 e800 8700
0x0760: 0501 8200 0501 8200 d800 6b00 d800 6b00
0x0770: 9d00 5600 9d00 5600 6a00 4300 6a00 4300
0x0780: 3e00 2200 3e00 2200 1900 0600 1900 0600
0x0790: eaff efff eaff efff e4ff ecff e4ff ecff
0x07a0: dfff e9ff dfff e9ff bbff e6ff bbff e6ff
0x07b0: 9eff d3ff 9eff d3ff 77ff c4ff 77ff c4ff
0x07c0: 39ff a8ff 39ff a8ff 19ff 92ff 19ff 92ff
0x07d0: 22ff 91ff 22ff 91ff 5cff b1ff 5cff b1ff
0x07e0: cdff ecff cdff ecff 7500 3c00 7500 3c00
0x07f0: 1101 8c00 1101 8c00 8b01 ca00 8b01 ca00
0x0800: e701 f900 e701 f900 da01 fb00 da01 fb00
0x0810: 6401 b800 6401 b800 8a00 4500 8a00 4500
0x0820: 92ff c4ff 92ff c4ff 8efe 4cff 8efe 4cff
0x0830: a6fd cdfe a6fd cdfe 09fd 7afe 09fd 7afe
0x0840: 21fd 8cfe 21fd 8cfe 9dfd d2fe 9dfd d2fe
0x0850: b3fe 67ff b3fe 67ff 3000 1600 3000 1600
0x0860: e801 e800 e801 e800 4503 8f01 4503 8f01
0x0870: 3004 2102 3004 2102 2404 1f02 2404 1f02
0x0880: 4f03 a201 4f03 a201 b801 cf00 b801 cf00
0x0890: e4ff e4ff e4ff e4ff bafd d7fe bafd d7fe
0x08a0: 00fc 01fe 00fc 01fe 60fb abfd 60fb abfd
0x08b0: 5efb 9cfd 5efb 9cfd 32fc 11fe 32fc 11fe
0x08c0: d5fd c7fe d5fd c7fe 0100 0e00 0100 0e00
0x08d0: 0102 1701 0102 1701 9803 e901 9803 e901
0x08e0: d404 8b02 d404 8b02 ea04 8f02 ea04 8f02
0x08f0: d803 fc01 d803 fc01 4802 2a01 4802 2a01
0x0900: 2100 0e00 2100 0e00 20fe 07ff 20fe 07ff
0x0910: 86fc 35fe 86fc 35fe acfb c3fd acfb c3fd
0x0920: c0fb ddfd c0fb ddfd b5fc 40fe b5fc 40fe

20
test/cdda.right Normal file
View File

@@ -0,0 +1,20 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD-DA
CD-ROM Track List (1 - 1)
#: MSF LSN Type Green? Copy? Channels Premphasis?
1: 00:02:00 000000 audio false yes 2 no
170: 00:06:02 000302 leadout (693 KB raw, 693 KB formatted)
Media Catalog Number (MCN): 0000010271955
Last CD Session LSN: not supported by drive/driver
audio status: not implemented
__________________________________
CD Analysis Report
CD-TEXT for Disc:
PERFORMER: Richard Stallman
TITLE: Join us now we have the software
CD-TEXT for Track 1:

48
test/cdtext.toc Normal file
View File

@@ -0,0 +1,48 @@
CD_DA
// global CD-TEXT data
CD_TEXT {
// Mapping from language number (0..7) used in 'LANGUAGE' statements
// to language code.
/// LANGUAGE_MAP {
/// 0 : EN // 9 is the code for ENGLISH,
/// // I don't know any other language code, yet
/// }
// Language number should always start with 0
LANGUAGE 0 {
// Required fields - at least all CD-TEXT CDs I've seen so far have them.
TITLE "CD Title"
PERFORMER "Performer"
DISC_ID "XY12345"
UPC_EAN "" // usually empty
// Further possible items, all of them are optional
ARRANGER ""
SONGWRITER ""
MESSAGE ""
GENRE "" // I'm not sure if this should be really ascii data
}
}
TRACK AUDIO
// track specific CD-TEXT data
CD_TEXT {
LANGUAGE 0 {
// if an item is defined for one track it should be defined for all tracks
TITLE "Track Title"
PERFORMER "Performer"
ISRC "US-XX1-98-01234"
ARRANGER ""
SONGWRITER ""
MESSAGE ""
}
}
SILENCE 1:0:0

56
test/check_cd_read.sh Executable file
View File

@@ -0,0 +1,56 @@
#!/bin/sh
# $Id: check_cd_read.sh,v 1.12 2008/03/22 18:08:25 karl Exp $
#
# Copyright (C) 2003, 2005, 2008 Rocky Bernstein <rocky@gnu.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Tests to see that CD reading is correct (via cd-read).
if test -z $srcdir ; then
srcdir=`pwd`
fi
if test "X$top_builddir" = "X" ; then
top_builddir=`pwd`/..
fi
. ${top_builddir}/test/check_common_fn
if test ! -x ../src/cd-read ; then
exit 77
fi
BASE=`basename $0 .sh`
fname=cdda
testnum=CD-DA
opts="-c ${srcdir}/${fname}.cue --mode=red --just-hex --start=0"
test_cd_read "$opts" ${fname}-read.dump ${srcdir}/${fname}-read.right
RC=$?
check_result $RC "cd-read CUE test $testnum" "cd-read $opts"
fname=isofs-m1
testnum=MODE1
opts="-i ${srcdir}/${fname}.cue --mode m1f1 -s 26 -n 2"
test_cd_read "$opts" ${fname}-read.dump ${srcdir}/${fname}-read.right
RC=$?
check_result $RC "cd-read CUE test $testnum" "$CD_READ $opts"
exit $RC
#;;; Local Variables: ***
#;;; mode:shell-script ***
#;;; eval: (sh-set-shell "bash") ***
#;;; End: ***

185
test/check_common_fn.in Executable file
View File

@@ -0,0 +1,185 @@
# $Id: check_common_fn.in,v 1.14 2008/10/17 01:51:43 rocky Exp $
#
# Copyright (C) 2003, 2004, 2005, 2006, 2008 Rocky Bernstein <rocky@gnu.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# Common routines and setup for regression testing.
SKIP_TEST_EXITCODE=77
# Some output changes depending on TZ and locale. Set this so we get known
# results
TZ=CUT
LC_TIME='en_US'
export TZ LC_TIME
check_result() {
RC=$1
shift
msg=$1
shift
cmdline=$*
if test $RC -ne 0 ; then
if test $RC -ne $SKIP_TEST_EXITCODE ; then
echo "$0: $msg failed in comparing output."
if test -n "$cmdline" ; then
echo "$0: failed command:"
echo " $cmdline"
fi
exit $RC
else
echo "$0: $msg skipped."
fi
else
echo "$0: $msg ok."
fi
}
test_cdinfo() {
opts="$1"
outfile="$2"
rightfile="$3"
CD_INFO="../src/cd-info@EXEEXT@"
if [ ! -x ${CD_INFO} ]; then
echo "$0: No ${CD_INFO}"
return 1
fi
if ${CD_INFO} --no-header ${opts} >${outfile} 2>&1 ; then
if test "@DIFF@" != no; then
if @DIFF@ @DIFF_OPTS@ ${outfile} ${rightfile} ; then
rm -f $outfile
return 0
else
return 3
fi
else
echo "$0: No diff(1) or cmp(1) found - cannot test ${CD_INFO}"
rm -f $outfile
return 77
fi
else
echo "$0 failed running: ${CD_INFO} ${opts}"
return 2
fi
}
test_iso_info() {
opts="$1"
outfile="$2"
rightfile="$3"
ISO_INFO="../src/iso-info@EXEEXT@"
if [ ! -x ${ISO_INFO} ]; then
echo "$0: No ${ISO_INFO}"
return 1
fi
cmdline="${ISO_INFO} --no-header ${opts}"
if $cmdline >${outfile} 2>&1 ; then
if test "/usr/bin/diff" != no; then
if @DIFF@ @DIFF_OPTS@ ${outfile} ${rightfile} ; then
rm -f $outfile
return 0
else
return 3
fi
else
echo "$0: No diff(1) or cmp(1 found - cannot test ${ISO_INFO}"
rm -f $outfile
return 77
fi
else
echo "$0 failed running: $cmdline"
return 2
fi
}
test_iso_read() {
opts="$1"
outfile="$2"
rightfile="$3"
ISO_READ="../src/iso-read@EXEEXT@"
if [ ! -x ${ISO_READ} ]; then
echo "$0: No ${ISO_READ}"
return 1
fi
if ${ISO_READ} ${opts} -o ${outfile} 2>&1 ; then
if test "@DIFF@" != no; then
if @DIFF@ @DIFF_OPTS@ ${outfile} ${rightfile} ; then
rm -f $outfile
return 0
else
return 3
fi
else
echo "$0: No diff(1) or cmp(1 found - cannot test ${ISO_READ}"
rm -f $outfile
return 77
fi
else
echo "$0 failed running: ${ISO_READ} ${opts} -o ${outfile}"
return 2
fi
}
test_cd_read() {
opts="$1"
outfile="$2"
rightfile="$3"
CD_READ="../src/cd-read@EXEEXT@"
if [ ! -x ${CD_READ} ]; then
echo "$0: No ${CD_READ}"
return 1
fi
if ${CD_READ} --no-header ${opts} >${outfile} 2>&1 ; then
if test "@DIFF@" != no; then
if @DIFF@ @DIFF_OPTS@ ${outfile} ${rightfile} ; then
rm -f $outfile
return 0
else
return 3
fi
else
echo "$0: No diff(1) or cmp(1 found - cannot test ${CD_READ}"
rm -f $outfile
return 77
fi
else
echo "$0 failed running: ${CD_READ} ${opts}"
return 2
fi
}
#;;; Local Variables: ***
#;;; mode:shell-script ***
#;;; eval: (sh-set-shell "bash") ***
#;;; End: ***

125
test/check_cue.sh.in Normal file
View File

@@ -0,0 +1,125 @@
#!/bin/sh
#$Id: check_cue.sh.in,v 1.31 2007/12/28 02:11:01 rocky Exp $
# Tests to see that BIN/CUE and cdrdao TOC file iamge reading is correct
# (via cd-info).
if test "@VCDINFO_LIBS@X" != "X" ; then
vcd_opt='--no-vcd'
fi
if test "X$srcdir" = "X" ; then
srcdir=`pwd`
fi
if test "X$top_srcdir" = "X" ; then
top_srcdir=`pwd`/..
fi
if test "X$top_builddir" = "X" ; then
top_builddir=`pwd`/..
fi
. ${top_builddir}/test/check_common_fn
if test ! -x $top_srcdir/src/cd-info ; then
exit 77
fi
BASE=`basename $0 .sh`
fname=cdda
testnum=CD-DA
opts="--quiet --no-device-info --cue-file ${srcdir}/${fname}.cue --no-cddb"
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
RC=$?
check_result $RC "cd-info CUE test $testnum" "${CD_INFO} $opts"
opts="--quiet --no-device-info --bin-file ${srcdir}/${fname}.bin --no-cddb"
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
RC=$?
check_result $RC "cd-info BIN test $testnum" "${CD_INFO} $opts"
opts="--quiet --no-device-info --toc-file ${srcdir}/${fname}.toc --no-cddb"
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
RC=$?
check_result $RC "cd-info TOC test $testnum" "${CD_INFO} $opts"
fname=isofs-m1
testnum='ISO 9660 mode1 CUE'
if test -f ${srcdir}/${fname}.bin ; then
if test -n "@HAVE_ROCK@"; then
opts="-q --no-device-info --no-disc-mode --cue-file ${srcdir}/${fname}.cue --iso9660"
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
RC=$?
check_result $RC "cd-info Rock-Ridge CUE test $testnum" "${CD_INFO} $opts"
opts="-q --no-device-info --no-disc-mode --no-rock-ridge --cue-file ${srcdir}/${fname}.cue --iso9660"
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}-no-rr.right
RC=$?
check_result $RC "cd-info no Rock-Ridge CUE test $testnum" "${CD_INFO} $opts"
fi
else
echo "Don't see CUE file ${srcdir}/${fname}.bin. Test $testnum skipped."
fi
if test -n "@HAVE_ROCK@"; then
testnum='ISO 9660 mode1 TOC'
if test -f ${srcdir}/${fname}.bin ; then
opts="-q --no-device-info --no-disc-mode --toc-file ${srcdir}/${fname}.toc --iso9660"
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
RC=$?
check_result $RC "cd-info TOC test $testnum" "${CD_INFO} $opts"
else
echo "Don't see TOC file ${srcdir}/${fname}.bin. Test $testnum skipped."
fi
fi
fname=vcd_demo
if test -z "@VCDINFO_LIBS@" ; then
right=${srcdir}/${fname}.right
else
right=${srcdir}/${fname}_vcdinfo.right
fi
testnum='Video CD'
if test -f ${srcdir}/${fname}.bin ; then
opts="-q --no-device-info --no-disc-mode -c ${srcdir}/${fname}.cue --iso9660"
test_cdinfo "$opts" ${fname}.dump $right
RC=$?
check_result $RC "cd-info CUE test $testnum" "${CD_INFO} $opts"
if test -z "@VCDINFO_LIBS@" ; then
right=${srcdir}/${fname}.right
else
right=${srcdir}/${fname}_vcdinfo.right
fi
opts="-q --no-device-info --no-disc-mode -t ${srcdir}/${fname}.toc --iso9660"
if test -f ${srcdir}/${fname}.toc ; then
test_cdinfo "$opts" ${fname}.dump $right
RC=$?
check_result $RC "cd-info TOC test $testnum" "${CD_INFO} $opts"
else
echo "Don't see TOC file ${srcdir}/${fname}.toc. Test $testnum skipped."
fi
else
echo "Don't see CUE file ${srcdir}/${fname}.cue. Test $testnum skipped."
fi
fname=svcd_ogt_test_ntsc
testnum='Super Video CD'
if test -f ${srcdir}/${fname}.bin ; then
opts="-q --no-device-info --no-disc-mode --cue-file ${srcdir}/${fname}.cue $vcd_opt --iso9660"
test_cdinfo "$opts" ${fname}.dump ${srcdir}/${fname}.right
RC=$?
check_result $RC "cd-info CUE test $testnum" "${CD_INFO} $opts"
else
echo "Don't see CUE file ${srcdir}/${fname}.bin. Test $testnum skipped."
fi
exit $RC
#;;; Local Variables: ***
#;;; mode:shell-script ***
#;;; eval: (sh-set-shell "bash") ***
#;;; End: ***

44
test/check_fuzzyiso.sh Executable file
View File

@@ -0,0 +1,44 @@
#!/bin/sh
#$Id: check_fuzzyiso.sh,v 1.6 2008/03/20 03:45:43 edsdead Exp $
if test "X$srcdir" = "X" ; then
srcdir=`pwd`
fi
if test "X$top_srcdir" = "X" ; then
top_srcdir=`pwd`/..
fi
if test "X$top_builddir" = "X" ; then
top_builddir=`pwd`/..
fi
check_program="$top_builddir/example/isofuzzy"
if test ! -x $check_program ; then
exit 77
fi
cd $srcdir; src_dir=`pwd`
for file in $src_dir/*.bin $src_dir/*.iso $src_dir/*.nrg ; do
case "$file" in
$src_dir/p1.nrg | $src_dir/p1.bin | $src_dir/cdda.bin | $src_dir/cdda-mcn.nrg | $src_dir/svcdgs.nrg )
good_rc=1
;;
*)
good_rc=0
;;
esac
$check_program $file
if test $? -ne $good_rc ; then
echo "$0: failed running:"
echo " $check_program $file"
exit 1
fi
done
exit 0
#;;; Local Variables: ***
#;;; mode:shell-script ***
#;;; eval: (sh-set-shell "bash") ***
#;;; End: ***

63
test/check_iso.sh.in Normal file
View File

@@ -0,0 +1,63 @@
#!/bin/sh
#$Id: check_iso.sh.in,v 1.15 2008/10/17 01:51:47 rocky Exp $
if test -z $srcdir ; then
srcdir=`pwd`
fi
if test "X$top_builddir" = "X" ; then
top_builddir=`pwd`/..
fi
. ${top_builddir}/test/check_common_fn
if test ! -x ../src/iso-info@EXEEXT@ ; then
exit 77
fi
BASE=`basename $0 .sh`
fname=copying
opts="--quiet ${srcdir}/${fname}.iso --iso9660 "
test_iso_info "$opts" ${fname}.dump ${srcdir}/${fname}.right
RC=$?
check_result $RC 'iso-info basic test' "$ISO_INFO $opts"
opts="--ignore --image ${srcdir}/${fname}.iso --extract $fname "
test_iso_read "$opts" ${fname} ${srcdir}/copying.gpl
RC=$?
check_result $RC 'iso-read basic test' "$ISO_READ $opts"
if test -n "@HAVE_ROCK@"; then
fname=copying-rr
opts="--quiet ${srcdir}/${fname}.iso --iso9660 "
test_iso_info "$opts" ${fname}.dump ${srcdir}/${fname}.right
RC=$?
check_result $RC 'iso-info Rock Ridge test' "$ISO_INFO $opts"
opts="--image ${srcdir}/${fname}.iso --extract COPYING"
test_iso_read "$opts" ${fname} ${srcdir}/copying-rr.gpl
RC=$?
check_result $RC 'iso-read RR test' "$ISO_READ $opts"
fi
if test -n "@HAVE_JOLIET@" ; then
BASE=`basename $0 .sh`
fname=joliet
opts="--quiet ${srcdir}/${fname}.iso --iso9660 "
test_iso_info "$opts" ${fname}-nojoliet.dump ${srcdir}/${fname}.right
RC=$?
check_result $RC 'iso-info Joliet test' "$cmdline"
opts="--quiet ${srcdir}/${fname}.iso --iso9660 --no-joliet "
test_iso_info "$opts" ${fname}-nojoliet.dump \
${srcdir}/${fname}-nojoliet.right
RC=$?
check_result $RC 'iso-info --no-joliet test' "$cmdline"
fi
exit $RC
#;;; Local Variables: ***
#;;; mode:shell-script ***
#;;; eval: (sh-set-shell "bash") ***
#;;; End: ***

74
test/check_nrg.sh.in Executable file
View File

@@ -0,0 +1,74 @@
#!/bin/sh
#$Id: check_nrg.sh.in,v 1.17 2007/12/28 02:11:01 rocky Exp $
if test "@VCDINFO_LIBS@X" != "X" ; then
vcd_opt='--no-vcd'
fi
if test "X$srcdir" = "X" ; then
srcdir=`pwd`
fi
if test "X$top_srcdir" = "X" ; then
top_srcdir=`pwd`/..
fi
if test "X$top_builddir" = "X" ; then
top_builddir=`pwd`/..
fi
. ${top_builddir}/test/check_common_fn
if test ! -x $top_srcdir/src/cd-info ; then
exit 77
fi
BASE=`basename $0 .sh`
test_name=videocd
opts="--quiet --no-device-info --nrg-file ${srcdir}/${test_name}.nrg $vcd_opt --iso9660"
test_cdinfo "$opts" ${test_name}.dump ${srcdir}/${test_name}.right
RC=$?
check_result $RC 'cd-info NRG test 1' "${CD_INFO} $opts"
BASE=`basename $0 .sh`
nrg_file=${srcdir}/monvoisin.nrg
if test -f $nrg_file ; then
test_cdinfo "-q --no-device-info --nrg-file $nrg_file $vcd_opt --iso9660 " \
monvoisin.dump ${srcdir}/monvoisin.right
RC=$?
check_result $RC 'cd-info NRG test 2'
else
echo "Don't see NRG file ${nrg_file}. Test skipped."
exit 0
fi
test_name='svcdgs'
nrg_file=${srcdir}/${test_name}.nrg
opts="-q --no-device-info --nrg-file $nrg_file $vcd_opt --iso9660"
if test -f $nrg_file ; then
test_cdinfo "$opts" ${test_name}.dump ${srcdir}/${test_name}.right
RC=$?
check_result $RC "cd-info NRG $test_name" "${CD_INFO} $opts"
else
echo "Don't see NRG file ${nrg_file}. Test skipped."
exit $SKIP_TEST_EXITCODE
fi
test_name='cdda-mcn'
nrg_file=${srcdir}/${test_name}.nrg
opts="-q --no-device-info --nrg-file $nrg_file --no-cddb"
if test -f $nrg_file ; then
test_cdinfo "$opts" ${test_name}.dump ${srcdir}/${test_name}.right
RC=$?
check_result $RC "cd-info NRG $test_name" "${CD_INFO} $opts"
exit $RC
else
echo "Don't see NRG file ${nrg_file}. Test skipped."
exit $SKIP_TEST_EXITCODE
fi
#;;; Local Variables: ***
#;;; mode:shell-script ***
#;;; eval: (sh-set-shell "bash") ***
#;;; End: ***

37
test/check_opts.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/bin/sh
#$Id: check_opts.sh,v 1.10 2007/12/28 02:11:01 rocky Exp $
# Check cd-info options
if test -z "$srcdir" ; then
srcdir=`pwd`
fi
if test "X$top_builddir" = "X" ; then
top_builddir=`pwd`/..
fi
. ${top_builddir}/test/check_common_fn
if test ! -x ../src/cd-info ; then
exit 77
fi
BASE=`basename $0 .sh`
fname=isofs-m1
i=0
for opt in '-T' '--no-tracks' '-A' '--no-analyze' '-I' '--no-ioctl' \
'-q' '--quiet' ; do
testname=${BASE}$i
opts="--no-device-info --cue-file ${srcdir}/${fname}.cue $opt --quiet"
test_cdinfo "$opts" ${testname}.dump ${srcdir}/${testname}.right
RC=$?
check_result $RC "cd-info option test $opt" "../src/cd-info $opts"
i=`expr $i + 1`
done
exit $RC
#;;; Local Variables: ***
#;;; mode:shell-script ***
#;;; eval: (sh-set-shell "bash") ***
#;;; End: ***

18
test/check_opts0.right Normal file
View File

@@ -0,0 +1,18 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD-DATA (Mode 1)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with ISO 9660 filesystem
ISO 9660: 64 blocks, label `CDROM '
Application: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
Preparer :
Publisher :
System : LINUX
Volume : CDROM
Volume Set :

18
test/check_opts1.right Normal file
View File

@@ -0,0 +1,18 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD-DATA (Mode 1)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with ISO 9660 filesystem
ISO 9660: 64 blocks, label `CDROM '
Application: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
Preparer :
Publisher :
System : LINUX
Volume : CDROM
Volume Set :

12
test/check_opts2.right Normal file
View File

@@ -0,0 +1,12 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD-DATA (Mode 1)
CD-ROM Track List (1 - 1)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 data false no
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver

12
test/check_opts3.right Normal file
View File

@@ -0,0 +1,12 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD-DATA (Mode 1)
CD-ROM Track List (1 - 1)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 data false no
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver

22
test/check_opts4.right Normal file
View File

@@ -0,0 +1,22 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD-DATA (Mode 1)
CD-ROM Track List (1 - 1)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 data false no
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with ISO 9660 filesystem
ISO 9660: 64 blocks, label `CDROM '
Application: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
Preparer :
Publisher :
System : LINUX
Volume : CDROM
Volume Set :

22
test/check_opts5.right Normal file
View File

@@ -0,0 +1,22 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD-DATA (Mode 1)
CD-ROM Track List (1 - 1)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 data false no
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with ISO 9660 filesystem
ISO 9660: 64 blocks, label `CDROM '
Application: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
Preparer :
Publisher :
System : LINUX
Volume : CDROM
Volume Set :

22
test/check_opts6.right Normal file
View File

@@ -0,0 +1,22 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD-DATA (Mode 1)
CD-ROM Track List (1 - 1)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 data false no
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with ISO 9660 filesystem
ISO 9660: 64 blocks, label `CDROM '
Application: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
Preparer :
Publisher :
System : LINUX
Volume : CDROM
Volume Set :

22
test/check_opts7.right Normal file
View File

@@ -0,0 +1,22 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD-DATA (Mode 1)
CD-ROM Track List (1 - 1)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 data false no
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with ISO 9660 filesystem
ISO 9660: 64 blocks, label `CDROM '
Application: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
Preparer :
Publisher :
System : LINUX
Volume : CDROM
Volume Set :

92
test/check_paranoia.sh.in Normal file
View File

@@ -0,0 +1,92 @@
#!/bin/sh
# $Id: check_paranoia.sh.in,v 1.18 2008/10/17 01:51:47 rocky Exp $
# Compare our cd-paranoia with known good results.
if test "X$srcdir" = "X" ; then
srcdir=`pwd`
fi
if test "X$top_builddir" = "X" ; then
top_builddir=`pwd`/..
fi
if test "X$top_srcdir" = "X" ; then
top_srcdir=`pwd`/..
fi
if test "@CMP@" != no -a "@BUILD_CD_PARANOIA_TRUE@"X = X ; then
cd_paranoia=$top_builddir/src/cd-paranoia/cd-paranoia@EXEEXT@
$cd_paranoia -d $srcdir/cdda.cue -v -r -- "1-"
if test $? -ne 0 ; then
exit 6
fi
dd bs=16 if=cdda.raw of=cdda-1.raw
dd bs=16 if=cdda.bin of=cdda-2.raw
if @CMP@ cdda-1.raw cdda-2.raw ; then
echo "** Raw cdda.bin extraction okay"
else
echo "** Raw cdda.bin extraction differ"
exit 3
fi
mv cdda.raw cdda-good.raw
$cd_paranoia -d $srcdir/cdda.cue -x 64 -v -r -- "1-"
mv cdda.raw cdda-underrun.raw
$cd_paranoia -d $srcdir/cdda.cue -r -- "1-"
if test $? -ne 0 ; then
exit 6
fi
if @CMP@ cdda-underrun.raw cdda-good.raw ; then
echo "** Under-run correction okay"
else
echo "** Under-run correction problem"
exit 3
fi
# Start out with small jitter
$cd_paranoia -l ./cd-paranoia.log -d $srcdir/cdda.cue -x 5 -v -r -- "1-"
if test $? -ne 0 ; then
exit 6
fi
mv cdda.raw cdda-jitter.raw
if @CMP@ cdda-jitter.raw cdda-good.raw ; then
echo "** Small jitter correction okay"
else
echo "** Small jitter correction problem"
exit 3
fi
tail -3 ./cd-paranoia.log | sed -e's/\[.*\]/\[\]/' > ./cd-paranoia-filtered.log
if @CMP@ $srcdir/cd-paranoia-log.right ./cd-paranoia-filtered.log ; then
echo "** --log option okay"
rm ./cd-paranoia.log ./cd-paranoia-filtered.log
else
echo "** --log option problem"
exit 4
fi
# A more massive set of failures: underrun + small jitter
$cd_paranoia -d $srcdir/cdda.cue -x 69 -v -r -- "1-"
if test $? -ne 0 ; then
exit 6
fi
mv cdda.raw cdda-jitter.raw
if @CMP@ cdda-jitter.raw cdda-good.raw ; then
echo "** under-run + jitter correction okay"
else
echo "** under-run + jitter correction problem"
exit 3
fi
### FIXME: medium jitter is known to fail. Investigate.
### FIXME: large jitter is known to fail. Investigate.
exit 0
else
if test "@CMP@" != no ; then
echo "Don't see 'cmp' program. Test skipped."
else
echo "Don't see libcdio 'cd-paranoia' program. Test skipped."
fi
exit 77
fi
fi
#;;; Local Variables: ***
#;;; mode:shell-script ***
#;;; eval: (sh-set-shell "bash") ***
#;;; End: ***

76
test/check_sizeof.c Normal file
View File

@@ -0,0 +1,76 @@
/*
$Id: check_sizeof.c,v 1.5 2008/03/22 18:08:25 karl Exp $
Copyright (C) 2001, 2008 Herbert Valerio Riedel <hvr@gnu.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <cdio/iso9660.h>
#include <cdio/types.h>
/* Private headers */
#include "iso9660_private.h"
#define CHECK_SIZEOF(typnam) { \
printf ("checking sizeof (%s) ...", #typnam); \
if (sizeof (typnam) != (typnam##_SIZEOF)) { \
printf ("failed!\n==> sizeof (%s) == %d (but should be %d)\n", \
#typnam, (int)sizeof(typnam), (int)(typnam##_SIZEOF)); \
fail++; \
} else { pass++; printf ("ok!\n"); } \
}
#define CHECK_SIZEOF_STRUCT(typnam) { \
printf ("checking sizeof (struct %s) ...", #typnam); \
if (sizeof (struct typnam) != (struct_##typnam##_SIZEOF)) { \
printf ("failed!\n==> sizeof (struct %s) == %d (but should be %d)\n", \
#typnam, (int)sizeof(struct typnam), (int)(struct_##typnam##_SIZEOF)); \
fail++; \
} else { pass++; printf ("ok!\n"); } \
}
int main (int argc, const char *argv[])
{
unsigned fail = 0, pass = 0;
/* <cdio/types.h> */
CHECK_SIZEOF(msf_t);
/* "iso9660_private.h" */
CHECK_SIZEOF(iso_volume_descriptor_t);
CHECK_SIZEOF(iso9660_pvd_t);
CHECK_SIZEOF(iso_path_table_t);
CHECK_SIZEOF(iso9660_dir_t);
#define iso9660_xa_t_SIZEOF 14
/* xa.h */
CHECK_SIZEOF(iso9660_xa_t);
if (fail)
return 1;
return 0;
}

340
test/copying-rr.gpl Normal file
View File

@@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

BIN
test/copying-rr.iso Normal file

Binary file not shown.

25
test/copying-rr.right Normal file
View File

@@ -0,0 +1,25 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
ISO-9660 Information
/:
dr-xr-xr-x 4 0 0 [LSN 23] 2048 Oct 22 2004 02:21:14 .
dr-xr-xr-x 2 0 0 [LSN 23] 2048 Oct 22 2004 02:21:14 ..
dr-xr-xr-x 2 0 0 [LSN 24] 2048 Mar 05 2005 16:12:25 copy
lr-xr-xr-x 1 0 0 [LSN 27] 7 Mar 05 2005 15:26:00 Copy2 -> COPYING
-r--r--r-- 1 0 0 [LSN 27] 17992 Mar 05 2005 15:25:51 COPYING
br--r--r-- 1 0 0 [LSN 36] 0 Mar 05 2005 15:32:05 fd0
dr-xr-xr-x 2 0 0 [LSN 25] 2048 Mar 05 2005 16:12:25 tmp
cr--r--r-- 1 0 0 [LSN 36] 0 Mar 05 2005 15:31:42 zero
/copy/:
dr-xr-xr-x 2 0 0 [LSN 24] 2048 Mar 05 2005 16:12:25 .
dr-xr-xr-x 4 0 0 [LSN 23] 2048 Mar 05 2005 16:12:25 ..
lr-xr-xr-x 1 0 0 [LSN 36] 10 Mar 05 2005 15:27:05 COPYING -> ../COPYING
/tmp/:
dr-xr-xr-x 2 0 0 [LSN 25] 2048 Mar 05 2005 16:12:25 .
dr-xr-xr-x 4 0 0 [LSN 23] 2048 Mar 05 2005 16:12:25 ..
lr-xr-xr-x 1 0 0 [LSN 36] 18 Mar 05 2005 15:51:05 COPYING -> ../copying/COPYING

340
test/copying.gpl Normal file
View File

@@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

BIN
test/copying.iso Normal file

Binary file not shown.

10
test/copying.right Normal file
View File

@@ -0,0 +1,10 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
ISO-9660 Information
/:
d [LSN 23] 2048 Jan 05 2006 21:50:19 .
d [LSN 23] 2048 Jan 05 2006 21:50:19 ..
- [LSN 24] 18002 Jan 05 2006 21:46:30 copying

8
test/data1.toc Normal file
View File

@@ -0,0 +1,8 @@
// $Id: data1.toc,v 1.1 2004/05/08 20:36:02 rocky Exp $
// Just a single MODE1 track.
CD_ROM
TRACK MODE1
SILENCE 0:59:74

13
test/data2.toc Normal file
View File

@@ -0,0 +1,13 @@
// $Id
// MODE1 track followed by an AUDIO track
CD_ROM
TRACK MODE1
FILE "isofs-m1.bin" 00:00:00
ZERO 1:0:0
TRACK AUDIO
PREGAP 0:2:0
FILE "cdda.bin" 00:00:00

13
test/data5.toc Normal file
View File

@@ -0,0 +1,13 @@
// $Id: data5.toc,v 1.2 2005/01/23 00:45:57 rocky Exp $
// XA disk
//
CD_ROM_XA
TRACK MODE2_FORM2
FILE "isofs-m1.bin" 00:00:00 00:13:57
TRACK MODE2_FORM1
PREGAP 0:2:0
FILE "isofs-m1.bin" 00:20:71 00:00:00

8
test/data6.toc Normal file
View File

@@ -0,0 +1,8 @@
// $Id: data6.toc,v 1.2 2005/01/23 00:45:57 rocky Exp $
// MODE2 track
//
CD_ROM
TRACK MODE2
FILE "isofs-m1.bin" 00:00:00 00:13:57

13
test/data7.toc Normal file
View File

@@ -0,0 +1,13 @@
// $Id: data7.toc,v 1.2 2005/01/23 00:45:57 rocky Exp $
// Video CD
//
CD_ROM_XA
TRACK MODE1 // ISO filesystem
FILE "isofs-m1.bin" 00:00:00 00:13:57
TRACK MODE2_FORM_MIX // XA track with form 1 and form 2 sectors
PREGAP 0:2:0
FILE "isofs-m1.bin" 00:20:71 00:00:00

12
test/fsf.right Normal file
View File

@@ -0,0 +1,12 @@
CD Info 2.0 | (c) 2003 Gerd Knorr, Heiko Ei<45>feldt & R. Bernstein
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
CD-ROM Track List (1 - 1)
#: MSF LSN Type
1: 00:02:00 000000 audio
170: 01:50:20 008120 leadout
__________________________________
try to find out what sort of CD this is
Audio CD, CDDB disc ID is 02006c01

33
test/isofs-m1-no-rr.right Normal file
View File

@@ -0,0 +1,33 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
CD-ROM Track List (1 - 1)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 data false no
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with ISO 9660 filesystem
ISO 9660: 64 blocks, label `CDROM '
Application: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
Preparer :
Publisher :
System : LINUX
Volume : CDROM
Volume Set :
ISO9660 filesystem
/:
d [LSN 23] 2048 Apr 20 2003 11:26:46 .
d [LSN 23] 2048 Apr 20 2003 11:26:46 ..
- [LSN 26] 17992 Jul 29 2002 12:39:53 copying
d [LSN 24] 2048 Apr 20 2003 16:18:53 doc
/doc/:
d [LSN 24] 2048 Apr 20 2003 16:18:53 .
d [LSN 23] 2048 Apr 20 2003 11:26:46 ..
- [LSN 35] 648 Apr 20 2003 16:18:53 readme.txt

261
test/isofs-m1-read.right Normal file
View File

@@ -0,0 +1,261 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
0x0000: 0909 2020 2020 474e 5520 4745 4e45 5241 .. GNU GENERA
0x0010: 4c20 5055 424c 4943 204c 4943 454e 5345 L PUBLIC LICENSE
0x0020: 0a09 0920 2020 2020 2020 5665 7273 696f ... Versio
0x0030: 6e20 322c 204a 756e 6520 3139 3931 0a0a n 2, June 1991..
0x0040: 2043 6f70 7972 6967 6874 2028 4329 2031 Copyright (C) 1
0x0050: 3938 392c 2031 3939 3120 4672 6565 2053 989, 1991 Free S
0x0060: 6f66 7477 6172 6520 466f 756e 6461 7469 oftware Foundati
0x0070: 6f6e 2c20 496e 632e 0a20 2020 2020 3539 on, Inc.. 59
0x0080: 2054 656d 706c 6520 506c 6163 652c 2053 Temple Place, S
0x0090: 7569 7465 2033 3330 2c20 426f 7374 6f6e uite 330, Boston
0x00a0: 2c20 4d41 2020 3032 3131 312d 3133 3037 , MA 02111-1307
0x00b0: 2020 5553 410a 2045 7665 7279 6f6e 6520 USA. Everyone
0x00c0: 6973 2070 6572 6d69 7474 6564 2074 6f20 is permitted to
0x00d0: 636f 7079 2061 6e64 2064 6973 7472 6962 copy and distrib
0x00e0: 7574 6520 7665 7262 6174 696d 2063 6f70 ute verbatim cop
0x00f0: 6965 730a 206f 6620 7468 6973 206c 6963 ies. of this lic
0x0100: 656e 7365 2064 6f63 756d 656e 742c 2062 ense document, b
0x0110: 7574 2063 6861 6e67 696e 6720 6974 2069 ut changing it i
0x0120: 7320 6e6f 7420 616c 6c6f 7765 642e 0a0a s not allowed...
0x0130: 0909 0920 2020 2050 7265 616d 626c 650a ... Preamble.
0x0140: 0a20 2054 6865 206c 6963 656e 7365 7320 . The licenses
0x0150: 666f 7220 6d6f 7374 2073 6f66 7477 6172 for most softwar
0x0160: 6520 6172 6520 6465 7369 676e 6564 2074 e are designed t
0x0170: 6f20 7461 6b65 2061 7761 7920 796f 7572 o take away your
0x0180: 0a66 7265 6564 6f6d 2074 6f20 7368 6172 .freedom to shar
0x0190: 6520 616e 6420 6368 616e 6765 2069 742e e and change it.
0x01a0: 2020 4279 2063 6f6e 7472 6173 742c 2074 By contrast, t
0x01b0: 6865 2047 4e55 2047 656e 6572 616c 2050 he GNU General P
0x01c0: 7562 6c69 630a 4c69 6365 6e73 6520 6973 ublic.License is
0x01d0: 2069 6e74 656e 6465 6420 746f 2067 7561 intended to gua
0x01e0: 7261 6e74 6565 2079 6f75 7220 6672 6565 rantee your free
0x01f0: 646f 6d20 746f 2073 6861 7265 2061 6e64 dom to share and
0x0200: 2063 6861 6e67 6520 6672 6565 0a73 6f66 change free.sof
0x0210: 7477 6172 652d 2d74 6f20 6d61 6b65 2073 tware--to make s
0x0220: 7572 6520 7468 6520 736f 6674 7761 7265 ure the software
0x0230: 2069 7320 6672 6565 2066 6f72 2061 6c6c is free for all
0x0240: 2069 7473 2075 7365 7273 2e20 2054 6869 its users. Thi
0x0250: 730a 4765 6e65 7261 6c20 5075 626c 6963 s.General Public
0x0260: 204c 6963 656e 7365 2061 7070 6c69 6573 License applies
0x0270: 2074 6f20 6d6f 7374 206f 6620 7468 6520 to most of the
0x0280: 4672 6565 2053 6f66 7477 6172 650a 466f Free Software.Fo
0x0290: 756e 6461 7469 6f6e 2773 2073 6f66 7477 undation's softw
0x02a0: 6172 6520 616e 6420 746f 2061 6e79 206f are and to any o
0x02b0: 7468 6572 2070 726f 6772 616d 2077 686f ther program who
0x02c0: 7365 2061 7574 686f 7273 2063 6f6d 6d69 se authors commi
0x02d0: 7420 746f 0a75 7369 6e67 2069 742e 2020 t to.using it.
0x02e0: 2853 6f6d 6520 6f74 6865 7220 4672 6565 (Some other Free
0x02f0: 2053 6f66 7477 6172 6520 466f 756e 6461 Software Founda
0x0300: 7469 6f6e 2073 6f66 7477 6172 6520 6973 tion software is
0x0310: 2063 6f76 6572 6564 2062 790a 7468 6520 covered by.the
0x0320: 474e 5520 4c69 6272 6172 7920 4765 6e65 GNU Library Gene
0x0330: 7261 6c20 5075 626c 6963 204c 6963 656e ral Public Licen
0x0340: 7365 2069 6e73 7465 6164 2e29 2020 596f se instead.) Yo
0x0350: 7520 6361 6e20 6170 706c 7920 6974 2074 u can apply it t
0x0360: 6f0a 796f 7572 2070 726f 6772 616d 732c o.your programs,
0x0370: 2074 6f6f 2e0a 0a20 2057 6865 6e20 7765 too... When we
0x0380: 2073 7065 616b 206f 6620 6672 6565 2073 speak of free s
0x0390: 6f66 7477 6172 652c 2077 6520 6172 6520 oftware, we are
0x03a0: 7265 6665 7272 696e 6720 746f 2066 7265 referring to fre
0x03b0: 6564 6f6d 2c20 6e6f 740a 7072 6963 652e edom, not.price.
0x03c0: 2020 4f75 7220 4765 6e65 7261 6c20 5075 Our General Pu
0x03d0: 626c 6963 204c 6963 656e 7365 7320 6172 blic Licenses ar
0x03e0: 6520 6465 7369 676e 6564 2074 6f20 6d61 e designed to ma
0x03f0: 6b65 2073 7572 6520 7468 6174 2079 6f75 ke sure that you
0x0400: 0a68 6176 6520 7468 6520 6672 6565 646f .have the freedo
0x0410: 6d20 746f 2064 6973 7472 6962 7574 6520 m to distribute
0x0420: 636f 7069 6573 206f 6620 6672 6565 2073 copies of free s
0x0430: 6f66 7477 6172 6520 2861 6e64 2063 6861 oftware (and cha
0x0440: 7267 6520 666f 720a 7468 6973 2073 6572 rge for.this ser
0x0450: 7669 6365 2069 6620 796f 7520 7769 7368 vice if you wish
0x0460: 292c 2074 6861 7420 796f 7520 7265 6365 ), that you rece
0x0470: 6976 6520 736f 7572 6365 2063 6f64 6520 ive source code
0x0480: 6f72 2063 616e 2067 6574 2069 740a 6966 or can get it.if
0x0490: 2079 6f75 2077 616e 7420 6974 2c20 7468 you want it, th
0x04a0: 6174 2079 6f75 2063 616e 2063 6861 6e67 at you can chang
0x04b0: 6520 7468 6520 736f 6674 7761 7265 206f e the software o
0x04c0: 7220 7573 6520 7069 6563 6573 206f 6620 r use pieces of
0x04d0: 6974 0a69 6e20 6e65 7720 6672 6565 2070 it.in new free p
0x04e0: 726f 6772 616d 733b 2061 6e64 2074 6861 rograms; and tha
0x04f0: 7420 796f 7520 6b6e 6f77 2079 6f75 2063 t you know you c
0x0500: 616e 2064 6f20 7468 6573 6520 7468 696e an do these thin
0x0510: 6773 2e0a 0a20 2054 6f20 7072 6f74 6563 gs... To protec
0x0520: 7420 796f 7572 2072 6967 6874 732c 2077 t your rights, w
0x0530: 6520 6e65 6564 2074 6f20 6d61 6b65 2072 e need to make r
0x0540: 6573 7472 6963 7469 6f6e 7320 7468 6174 estrictions that
0x0550: 2066 6f72 6269 640a 616e 796f 6e65 2074 forbid.anyone t
0x0560: 6f20 6465 6e79 2079 6f75 2074 6865 7365 o deny you these
0x0570: 2072 6967 6874 7320 6f72 2074 6f20 6173 rights or to as
0x0580: 6b20 796f 7520 746f 2073 7572 7265 6e64 k you to surrend
0x0590: 6572 2074 6865 2072 6967 6874 732e 0a54 er the rights..T
0x05a0: 6865 7365 2072 6573 7472 6963 7469 6f6e hese restriction
0x05b0: 7320 7472 616e 736c 6174 6520 746f 2063 s translate to c
0x05c0: 6572 7461 696e 2072 6573 706f 6e73 6962 ertain responsib
0x05d0: 696c 6974 6965 7320 666f 7220 796f 7520 ilities for you
0x05e0: 6966 2079 6f75 0a64 6973 7472 6962 7574 if you.distribut
0x05f0: 6520 636f 7069 6573 206f 6620 7468 6520 e copies of the
0x0600: 736f 6674 7761 7265 2c20 6f72 2069 6620 software, or if
0x0610: 796f 7520 6d6f 6469 6679 2069 742e 0a0a you modify it...
0x0620: 2020 466f 7220 6578 616d 706c 652c 2069 For example, i
0x0630: 6620 796f 7520 6469 7374 7269 6275 7465 f you distribute
0x0640: 2063 6f70 6965 7320 6f66 2073 7563 6820 copies of such
0x0650: 6120 7072 6f67 7261 6d2c 2077 6865 7468 a program, wheth
0x0660: 6572 0a67 7261 7469 7320 6f72 2066 6f72 er.gratis or for
0x0670: 2061 2066 6565 2c20 796f 7520 6d75 7374 a fee, you must
0x0680: 2067 6976 6520 7468 6520 7265 6369 7069 give the recipi
0x0690: 656e 7473 2061 6c6c 2074 6865 2072 6967 ents all the rig
0x06a0: 6874 7320 7468 6174 0a79 6f75 2068 6176 hts that.you hav
0x06b0: 652e 2020 596f 7520 6d75 7374 206d 616b e. You must mak
0x06c0: 6520 7375 7265 2074 6861 7420 7468 6579 e sure that they
0x06d0: 2c20 746f 6f2c 2072 6563 6569 7665 206f , too, receive o
0x06e0: 7220 6361 6e20 6765 7420 7468 650a 736f r can get the.so
0x06f0: 7572 6365 2063 6f64 652e 2020 416e 6420 urce code. And
0x0700: 796f 7520 6d75 7374 2073 686f 7720 7468 you must show th
0x0710: 656d 2074 6865 7365 2074 6572 6d73 2073 em these terms s
0x0720: 6f20 7468 6579 206b 6e6f 7720 7468 6569 o they know thei
0x0730: 720a 7269 6768 7473 2e0a 0a20 2057 6520 r.rights... We
0x0740: 7072 6f74 6563 7420 796f 7572 2072 6967 protect your rig
0x0750: 6874 7320 7769 7468 2074 776f 2073 7465 hts with two ste
0x0760: 7073 3a20 2831 2920 636f 7079 7269 6768 ps: (1) copyrigh
0x0770: 7420 7468 6520 736f 6674 7761 7265 2c20 t the software,
0x0780: 616e 640a 2832 2920 6f66 6665 7220 796f and.(2) offer yo
0x0790: 7520 7468 6973 206c 6963 656e 7365 2077 u this license w
0x07a0: 6869 6368 2067 6976 6573 2079 6f75 206c hich gives you l
0x07b0: 6567 616c 2070 6572 6d69 7373 696f 6e20 egal permission
0x07c0: 746f 2063 6f70 792c 0a64 6973 7472 6962 to copy,.distrib
0x07d0: 7574 6520 616e 642f 6f72 206d 6f64 6966 ute and/or modif
0x07e0: 7920 7468 6520 736f 6674 7761 7265 2e0a y the software..
0x07f0: 0a20 2041 6c73 6f2c 2066 6f72 2065 6163 . Also, for eac
0x0000: 6820 6175 7468 6f72 2773 2070 726f 7465 h author's prote
0x0010: 6374 696f 6e20 616e 6420 6f75 7273 2c20 ction and ours,
0x0020: 7765 2077 616e 7420 746f 206d 616b 6520 we want to make
0x0030: 6365 7274 6169 6e0a 7468 6174 2065 7665 certain.that eve
0x0040: 7279 6f6e 6520 756e 6465 7273 7461 6e64 ryone understand
0x0050: 7320 7468 6174 2074 6865 7265 2069 7320 s that there is
0x0060: 6e6f 2077 6172 7261 6e74 7920 666f 7220 no warranty for
0x0070: 7468 6973 2066 7265 650a 736f 6674 7761 this free.softwa
0x0080: 7265 2e20 2049 6620 7468 6520 736f 6674 re. If the soft
0x0090: 7761 7265 2069 7320 6d6f 6469 6669 6564 ware is modified
0x00a0: 2062 7920 736f 6d65 6f6e 6520 656c 7365 by someone else
0x00b0: 2061 6e64 2070 6173 7365 6420 6f6e 2c20 and passed on,
0x00c0: 7765 0a77 616e 7420 6974 7320 7265 6369 we.want its reci
0x00d0: 7069 656e 7473 2074 6f20 6b6e 6f77 2074 pients to know t
0x00e0: 6861 7420 7768 6174 2074 6865 7920 6861 hat what they ha
0x00f0: 7665 2069 7320 6e6f 7420 7468 6520 6f72 ve is not the or
0x0100: 6967 696e 616c 2c20 736f 0a74 6861 7420 iginal, so.that
0x0110: 616e 7920 7072 6f62 6c65 6d73 2069 6e74 any problems int
0x0120: 726f 6475 6365 6420 6279 206f 7468 6572 roduced by other
0x0130: 7320 7769 6c6c 206e 6f74 2072 6566 6c65 s will not refle
0x0140: 6374 206f 6e20 7468 6520 6f72 6967 696e ct on the origin
0x0150: 616c 0a61 7574 686f 7273 2720 7265 7075 al.authors' repu
0x0160: 7461 7469 6f6e 732e 0a0a 2020 4669 6e61 tations... Fina
0x0170: 6c6c 792c 2061 6e79 2066 7265 6520 7072 lly, any free pr
0x0180: 6f67 7261 6d20 6973 2074 6872 6561 7465 ogram is threate
0x0190: 6e65 6420 636f 6e73 7461 6e74 6c79 2062 ned constantly b
0x01a0: 7920 736f 6674 7761 7265 0a70 6174 656e y software.paten
0x01b0: 7473 2e20 2057 6520 7769 7368 2074 6f20 ts. We wish to
0x01c0: 6176 6f69 6420 7468 6520 6461 6e67 6572 avoid the danger
0x01d0: 2074 6861 7420 7265 6469 7374 7269 6275 that redistribu
0x01e0: 746f 7273 206f 6620 6120 6672 6565 0a70 tors of a free.p
0x01f0: 726f 6772 616d 2077 696c 6c20 696e 6469 rogram will indi
0x0200: 7669 6475 616c 6c79 206f 6274 6169 6e20 vidually obtain
0x0210: 7061 7465 6e74 206c 6963 656e 7365 732c patent licenses,
0x0220: 2069 6e20 6566 6665 6374 206d 616b 696e in effect makin
0x0230: 6720 7468 650a 7072 6f67 7261 6d20 7072 g the.program pr
0x0240: 6f70 7269 6574 6172 792e 2020 546f 2070 oprietary. To p
0x0250: 7265 7665 6e74 2074 6869 732c 2077 6520 revent this, we
0x0260: 6861 7665 206d 6164 6520 6974 2063 6c65 have made it cle
0x0270: 6172 2074 6861 7420 616e 790a 7061 7465 ar that any.pate
0x0280: 6e74 206d 7573 7420 6265 206c 6963 656e nt must be licen
0x0290: 7365 6420 666f 7220 6576 6572 796f 6e65 sed for everyone
0x02a0: 2773 2066 7265 6520 7573 6520 6f72 206e 's free use or n
0x02b0: 6f74 206c 6963 656e 7365 6420 6174 2061 ot licensed at a
0x02c0: 6c6c 2e0a 0a20 2054 6865 2070 7265 6369 ll... The preci
0x02d0: 7365 2074 6572 6d73 2061 6e64 2063 6f6e se terms and con
0x02e0: 6469 7469 6f6e 7320 666f 7220 636f 7079 ditions for copy
0x02f0: 696e 672c 2064 6973 7472 6962 7574 696f ing, distributio
0x0300: 6e20 616e 640a 6d6f 6469 6669 6361 7469 n and.modificati
0x0310: 6f6e 2066 6f6c 6c6f 772e 0a0c 0a09 0920 on follow......
0x0320: 2020 2047 4e55 2047 454e 4552 414c 2050 GNU GENERAL P
0x0330: 5542 4c49 4320 4c49 4345 4e53 450a 2020 UBLIC LICENSE.
0x0340: 2054 4552 4d53 2041 4e44 2043 4f4e 4449 TERMS AND CONDI
0x0350: 5449 4f4e 5320 464f 5220 434f 5059 494e TIONS FOR COPYIN
0x0360: 472c 2044 4953 5452 4942 5554 494f 4e20 G, DISTRIBUTION
0x0370: 414e 4420 4d4f 4449 4649 4341 5449 4f4e AND MODIFICATION
0x0380: 0a0a 2020 302e 2054 6869 7320 4c69 6365 .. 0. This Lice
0x0390: 6e73 6520 6170 706c 6965 7320 746f 2061 nse applies to a
0x03a0: 6e79 2070 726f 6772 616d 206f 7220 6f74 ny program or ot
0x03b0: 6865 7220 776f 726b 2077 6869 6368 2063 her work which c
0x03c0: 6f6e 7461 696e 730a 6120 6e6f 7469 6365 ontains.a notice
0x03d0: 2070 6c61 6365 6420 6279 2074 6865 2063 placed by the c
0x03e0: 6f70 7972 6967 6874 2068 6f6c 6465 7220 opyright holder
0x03f0: 7361 7969 6e67 2069 7420 6d61 7920 6265 saying it may be
0x0400: 2064 6973 7472 6962 7574 6564 0a75 6e64 distributed.und
0x0410: 6572 2074 6865 2074 6572 6d73 206f 6620 er the terms of
0x0420: 7468 6973 2047 656e 6572 616c 2050 7562 this General Pub
0x0430: 6c69 6320 4c69 6365 6e73 652e 2020 5468 lic License. Th
0x0440: 6520 2250 726f 6772 616d 222c 2062 656c e "Program", bel
0x0450: 6f77 2c0a 7265 6665 7273 2074 6f20 616e ow,.refers to an
0x0460: 7920 7375 6368 2070 726f 6772 616d 206f y such program o
0x0470: 7220 776f 726b 2c20 616e 6420 6120 2277 r work, and a "w
0x0480: 6f72 6b20 6261 7365 6420 6f6e 2074 6865 ork based on the
0x0490: 2050 726f 6772 616d 220a 6d65 616e 7320 Program".means
0x04a0: 6569 7468 6572 2074 6865 2050 726f 6772 either the Progr
0x04b0: 616d 206f 7220 616e 7920 6465 7269 7661 am or any deriva
0x04c0: 7469 7665 2077 6f72 6b20 756e 6465 7220 tive work under
0x04d0: 636f 7079 7269 6768 7420 6c61 773a 0a74 copyright law:.t
0x04e0: 6861 7420 6973 2074 6f20 7361 792c 2061 hat is to say, a
0x04f0: 2077 6f72 6b20 636f 6e74 6169 6e69 6e67 work containing
0x0500: 2074 6865 2050 726f 6772 616d 206f 7220 the Program or
0x0510: 6120 706f 7274 696f 6e20 6f66 2069 742c a portion of it,
0x0520: 0a65 6974 6865 7220 7665 7262 6174 696d .either verbatim
0x0530: 206f 7220 7769 7468 206d 6f64 6966 6963 or with modific
0x0540: 6174 696f 6e73 2061 6e64 2f6f 7220 7472 ations and/or tr
0x0550: 616e 736c 6174 6564 2069 6e74 6f20 616e anslated into an
0x0560: 6f74 6865 720a 6c61 6e67 7561 6765 2e20 other.language.
0x0570: 2028 4865 7265 696e 6166 7465 722c 2074 (Hereinafter, t
0x0580: 7261 6e73 6c61 7469 6f6e 2069 7320 696e ranslation is in
0x0590: 636c 7564 6564 2077 6974 686f 7574 206c cluded without l
0x05a0: 696d 6974 6174 696f 6e20 696e 0a74 6865 imitation in.the
0x05b0: 2074 6572 6d20 226d 6f64 6966 6963 6174 term "modificat
0x05c0: 696f 6e22 2e29 2020 4561 6368 206c 6963 ion".) Each lic
0x05d0: 656e 7365 6520 6973 2061 6464 7265 7373 ensee is address
0x05e0: 6564 2061 7320 2279 6f75 222e 0a0a 4163 ed as "you"...Ac
0x05f0: 7469 7669 7469 6573 206f 7468 6572 2074 tivities other t
0x0600: 6861 6e20 636f 7079 696e 672c 2064 6973 han copying, dis
0x0610: 7472 6962 7574 696f 6e20 616e 6420 6d6f tribution and mo
0x0620: 6469 6669 6361 7469 6f6e 2061 7265 206e dification are n
0x0630: 6f74 0a63 6f76 6572 6564 2062 7920 7468 ot.covered by th
0x0640: 6973 204c 6963 656e 7365 3b20 7468 6579 is License; they
0x0650: 2061 7265 206f 7574 7369 6465 2069 7473 are outside its
0x0660: 2073 636f 7065 2e20 2054 6865 2061 6374 scope. The act
0x0670: 206f 660a 7275 6e6e 696e 6720 7468 6520 of.running the
0x0680: 5072 6f67 7261 6d20 6973 206e 6f74 2072 Program is not r
0x0690: 6573 7472 6963 7465 642c 2061 6e64 2074 estricted, and t
0x06a0: 6865 206f 7574 7075 7420 6672 6f6d 2074 he output from t
0x06b0: 6865 2050 726f 6772 616d 0a69 7320 636f he Program.is co
0x06c0: 7665 7265 6420 6f6e 6c79 2069 6620 6974 vered only if it
0x06d0: 7320 636f 6e74 656e 7473 2063 6f6e 7374 s contents const
0x06e0: 6974 7574 6520 6120 776f 726b 2062 6173 itute a work bas
0x06f0: 6564 206f 6e20 7468 650a 5072 6f67 7261 ed on the.Progra
0x0700: 6d20 2869 6e64 6570 656e 6465 6e74 206f m (independent o
0x0710: 6620 6861 7669 6e67 2062 6565 6e20 6d61 f having been ma
0x0720: 6465 2062 7920 7275 6e6e 696e 6720 7468 de by running th
0x0730: 6520 5072 6f67 7261 6d29 2e0a 5768 6574 e Program)..Whet
0x0740: 6865 7220 7468 6174 2069 7320 7472 7565 her that is true
0x0750: 2064 6570 656e 6473 206f 6e20 7768 6174 depends on what
0x0760: 2074 6865 2050 726f 6772 616d 2064 6f65 the Program doe
0x0770: 732e 0a0a 2020 312e 2059 6f75 206d 6179 s... 1. You may
0x0780: 2063 6f70 7920 616e 6420 6469 7374 7269 copy and distri
0x0790: 6275 7465 2076 6572 6261 7469 6d20 636f bute verbatim co
0x07a0: 7069 6573 206f 6620 7468 6520 5072 6f67 pies of the Prog
0x07b0: 7261 6d27 730a 736f 7572 6365 2063 6f64 ram's.source cod
0x07c0: 6520 6173 2079 6f75 2072 6563 6569 7665 e as you receive
0x07d0: 2069 742c 2069 6e20 616e 7920 6d65 6469 it, in any medi
0x07e0: 756d 2c20 7072 6f76 6964 6564 2074 6861 um, provided tha
0x07f0: 7420 796f 750a 636f 6e73 7069 6375 6f75 t you.conspicuou

BIN
test/isofs-m1.bin Normal file

Binary file not shown.

3
test/isofs-m1.cue Normal file
View File

@@ -0,0 +1,3 @@
FILE "ISOFS-M1.BIN" BINARY
TRACK 01 MODE1/2352
INDEX 01 00:00:00

33
test/isofs-m1.right Normal file
View File

@@ -0,0 +1,33 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
CD-ROM Track List (1 - 1)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 data false no
170: 00:06:02 000302 leadout (693 KB raw, 604 KB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with ISO 9660 filesystem
ISO 9660: 64 blocks, label `CDROM '
Application: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
Preparer :
Publisher :
System : LINUX
Volume : CDROM
Volume Set :
ISO9660 filesystem
/:
drwxrwxr-x 3 715 715 [LSN 23] 2048 Apr 20 2003 11:26:46 .
drwxrwxr-x 3 715 715 [LSN 23] 2048 Apr 20 2003 11:26:46 ..
-rw-r--r-- 1 715 715 [LSN 26] 17992 Jul 29 2002 12:39:53 COPYING
drwxrwxr-x 2 715 715 [LSN 24] 2048 Apr 20 2003 16:18:53 doc
/doc/:
drwxrwxr-x 2 715 715 [LSN 24] 2048 Apr 20 2003 16:18:53 .
drwxrwxr-x 3 715 715 [LSN 23] 2048 Apr 20 2003 11:26:46 ..
-rw-rw-r-- 1 715 715 [LSN 35] 648 Apr 20 2003 16:18:53 readme.txt

4
test/isofs-m1.toc Normal file
View File

@@ -0,0 +1,4 @@
CD_ROM
TRACK MODE1_RAW
FILE "isofs-m1.bin" 00:00:00 00:00:00

View File

@@ -0,0 +1,23 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
ISO-9660 Information
/:
d [LSN 28] 2048 Oct 22 2004 22:44:59 .
d [LSN 28] 2048 Oct 22 2004 22:44:59 ..
d [LSN 29] 2048 Oct 22 2004 22:44:59 libcdio
/libcdio/:
d [LSN 29] 2048 Oct 22 2004 22:44:59 .
d [LSN 28] 2048 Oct 22 2004 22:44:59 ..
- [LSN 34] 17992 Mar 12 2004 07:18:03 copying
- [LSN 43] 2156 Jun 26 2004 10:01:09 readme
- [LSN 45] 2849 Aug 12 2004 09:22:23 readme.libcdio
d [LSN 30] 2048 Oct 22 2004 22:44:59 test
/libcdio/test/:
d [LSN 30] 2048 Oct 22 2004 22:44:59 .
d [LSN 29] 2048 Oct 22 2004 22:44:59 ..
- [LSN 47] 74 Jul 25 2004 09:52:32 isofs_m1.cue

BIN
test/joliet.iso Normal file

Binary file not shown.

23
test/joliet.right Normal file
View File

@@ -0,0 +1,23 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
ISO-9660 Information
/:
d [LSN 31] 2048 Oct 22 2004 22:44:59 .
d [LSN 31] 2048 Oct 22 2004 22:44:59 ..
d [LSN 32] 2048 Oct 22 2004 22:44:59 libcdio
/libcdio/:
d [LSN 32] 2048 Oct 22 2004 22:44:59 .
d [LSN 31] 2048 Oct 22 2004 22:44:59 ..
- [LSN 34] 17992 Mar 12 2004 07:18:03 COPYING
- [LSN 43] 2156 Jun 26 2004 10:01:09 README
- [LSN 45] 2849 Aug 12 2004 09:22:23 README.libcdio
d [LSN 33] 2048 Oct 22 2004 22:44:59 test
/libcdio/test/:
d [LSN 33] 2048 Oct 22 2004 22:44:59 .
d [LSN 32] 2048 Oct 22 2004 22:44:59 ..
- [LSN 47] 74 Jul 25 2004 09:52:32 isofs-m1.cue

68
test/monvoisin.right Normal file
View File

@@ -0,0 +1,68 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD DATA (Mode 2)
CD-ROM Track List (1 - 2)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 XA true no
2: 00:18:51 001251 XA true no
170: 00:39:71 002846 leadout (6 MB raw, 6 MB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with CD-RTOS and ISO 9660 filesystem
ISO 9660: 1101 blocks, label `MONVOISIN '
Application: CDI/CDI_VCD.APP;1
Preparer :
Publisher :
System : CD-RTOS CD-BRIDGE
Volume : MONVOISIN
Volume Set :
ISO9660 filesystem
/:
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jan 01 1970 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jan 01 1970 00:00:00 ..
d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Feb 19 2001 15:37:04 cdi
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Feb 19 2001 15:37:04 ext
d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Feb 19 2001 15:37:04 mpegav
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Feb 19 2001 15:37:04 segment
d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Feb 19 2001 15:37:04 vcd
/CDI/:
d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jan 01 1970 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jan 01 1970 00:00:00 ..
---2-xrxrxr 0 0 [fn 01] [LSN 211] 1494332 ( 1315168) Feb 19 2001 15:37:04 cdi_imag.rtf
----1xrxrxr 0 0 [fn 01] [LSN 854] 13616 Feb 19 2001 15:37:04 cdi_text.fnt
----1xrxrxr 0 0 [fn 01] [LSN 861] 102400 Feb 19 2001 15:37:04 cdi_vcd.app
----1xrxrxr 0 0 [fn 01] [LSN 911] 279 Feb 19 2001 15:37:04 cdi_vcd.cfg
/EXT/:
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 01 1970 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jan 01 1970 00:00:00 ..
----1xrxrxr 0 0 [fn 01] [LSN 912] 65536 Feb 19 2001 15:37:04 lot_x.vcd
----1xrxrxr 0 0 [fn 01] [LSN 944] 24 Feb 19 2001 15:37:04 psd_x.vcd
----1xrxrxr 0 0 [fn 01] [LSN 945] 114 Feb 19 2001 15:37:04 scandata.dat
/MPEGAV/:
d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jan 01 1970 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jan 01 1970 00:00:00 ..
---2-xrxrxr 0 0 [fn 01] [LSN 1251] 3655652 ( 3221504) Feb 19 2001 15:37:59 avseq01.dat
/SEGMENT/:
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jan 01 1970 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jan 01 1970 00:00:00 ..
/VCD/:
d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jan 01 1970 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jan 01 1970 00:00:00 ..
----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Feb 19 2001 15:37:04 entries.vcd
----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Feb 19 2001 15:37:04 info.vcd
----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Feb 19 2001 15:37:04 lot.vcd
----1xrxrxr 0 0 [fn 00] [LSN 184] 24 Feb 19 2001 15:37:04 psd.vcd
XA sectors Video CD
session #2 starts at track 2, LSN: 1251, ISO 9660 blocks: 1101
ISO 9660: 1101 blocks, label `MONVOISIN '

BIN
test/p1.bin Normal file

Binary file not shown.

12
test/p1.cue Normal file
View File

@@ -0,0 +1,12 @@
TITLE "Join us now we have the software"
CATALOG 0000010271955
PERFORMER "Richard Stallman"
FILE "BOING.BIN" BINARY
TRACK 01 AUDIO
FLAGS DCP
INDEX 00 00:00:00
INDEX 01 00:01:00
TRACK 02 AUDIO
FLAGS DCP
INDEX 00 00:02:00
INDEX 01 00:03:00

BIN
test/p1.nrg Normal file

Binary file not shown.

View File

@@ -0,0 +1,59 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
CD-ROM Track List (1 - 2)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 XA true yes
2: 00:09:01 000526 XA true yes
170: 00:56:56 004106 leadout (9 MB raw, 9 MB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with CD-RTOS and ISO 9660 filesystem
ISO 9660: 376 blocks, label `SVCD_OGT_TEST_NTSC '
Application:
Preparer : GNU VCDIMAGER 0.7.12 LINUX-GNU/I386
Publisher :
System : CD-RTOS CD-BRIDGE
Volume : SVCD_OGT_TEST_NTSC
Volume Set :
ISO9660 filesystem
/:
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00:00 ext
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00:00 mpeg2
d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00:00 segment
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00:00 svcd
/EXT/:
d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
----1xrxrxr 0 0 [fn 00] [LSN 375] 201 Jul 14 1978 00:00:00 scandata.dat
/MPEG2/:
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
---2-xrxrxr 0 0 [fn 00] [LSN 526] 7971320 ( 7024640) Jul 14 1978 00:00:00 avseq01.mpg
/SEGMENT/:
d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
---2-xrxrxr 0 0 [fn 00] [LSN 225] 183596 ( 161792) Jul 14 1978 00:00:00 item0001.mpg
/SVCD/:
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00:00 entries.svd
----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00:00 info.svd
----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00:00 lot.svd
----1xrxrxr 0 0 [fn 00] [LSN 184] 40 Jul 14 1978 00:00:00 psd.svd
----1xrxrxr 0 0 [fn 00] [LSN 186] 190 Jul 14 1978 00:00:00 search.dat
----1xrxrxr 0 0 [fn 00] [LSN 185] 2048 Jul 14 1978 00:00:00 tracks.svd
XA sectors Super Video CD (SVCD) or Chaoji Video CD (CVD)
session #2 starts at track 2, LSN: 526, ISO 9660 blocks: 376
ISO 9660: 376 blocks, label `SVCD_OGT_TEST_NTSC '

82
test/svcdgs.right Normal file
View File

@@ -0,0 +1,82 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD DATA (Mode 2)
CD-ROM Track List (1 - 2)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 XA true no
2: 00:22:53 001553 XA true no
170: 01:17:62 005687 leadout (12 MB raw, 12 MB formatted)
Media Catalog Number (MCN):
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with ISO 9660 filesystem
ISO 9660: 6610 blocks, label `SVCD '
Application: I-author v1.0, EnReach, Inc. (C) Copyright 1998, Kernel writen by Hujianjun
Preparer : EnReach
Publisher : EnReach
System : S_VCD30 DISC of EnReach
Volume : SVCD
Volume Set : SVCD01
ISO9660 filesystem
/:
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29:31 .
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29:31 ..
d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jan 06 2001 21:29:31 autorun
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jan 06 2001 21:29:31 data
d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jan 06 2001 21:29:31 ext
d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jan 06 2001 21:29:31 mpegav
d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jan 06 2001 21:29:31 segment
d---1xrxrxr 0 0 [fn 00] [LSN 26] 2048 Jan 06 2001 21:29:31 svcd
d---1xrxrxr 0 0 [fn 00] [LSN 27] 2048 Jan 06 2001 21:29:31 vmp
/AUTORUN/:
d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jan 06 2001 21:29:31 .
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29:31 ..
/DATA/:
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jan 06 2001 21:29:31 .
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29:31 ..
d---1xrxrxr 0 0 [fn 00] [LSN 300] 2048 Jan 06 2001 21:29:31 svcddata
/DATA/SVCDDATA/:
d---1xrxrxr 0 0 [fn 00] [LSN 300] 2048 Jan 06 2001 21:29:31 .
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jan 06 2001 21:29:31 ..
/EXT/:
d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jan 06 2001 21:29:31 .
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29:31 ..
/MPEGAV/:
d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jan 06 2001 21:29:31 .
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29:31 ..
---2--r-r-r 0 0 [fn 01] [LSN 463] 13909140 ( 12257280) Jan 06 2001 21:29:31 avseq01.mpg
/SEGMENT/:
d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jan 06 2001 21:29:31 .
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29:31 ..
/SVCD/:
d---1xrxrxr 0 0 [fn 00] [LSN 26] 2048 Jan 06 2001 21:29:31 .
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29:31 ..
----1xr-rxr 0 0 [fn 00] [LSN 151] 2048 Jan 06 2001 21:29:31 entries.svd
----1xr-rxr 0 0 [fn 00] [LSN 150] 2048 Jan 06 2001 21:29:31 info.svd
----1xr-rxr 0 0 [fn 00] [LSN 152] 65536 Jan 06 2001 21:29:31 lot.svd
----1xr-rxr 0 0 [fn 00] [LSN 184] 16 Jan 06 2001 21:29:31 psd.svd
----1xr-rxr 0 0 [fn 00] [LSN 188] 427 Jan 06 2001 21:29:31 search.dat
----1xr-rxr 0 0 [fn 00] [LSN 186] 4096 Jan 06 2001 21:29:31 spicontx.svd
----1xr-rxr 0 0 [fn 00] [LSN 185] 2048 Jan 06 2001 21:29:31 tracks.svd
/VMP/:
d---1xrxrxr 0 0 [fn 00] [LSN 27] 2048 Jan 06 2001 21:29:31 .
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29:31 ..
d---1xrxrxr 0 0 [fn 00] [LSN 28] 2048 Jan 06 2001 21:29:31 svcdj
/VMP/SVCDJ/:
d---1xrxrxr 0 0 [fn 00] [LSN 28] 2048 Jan 06 2001 21:29:31 .
d---1xrxrxr 0 0 [fn 00] [LSN 27] 2048 Jan 06 2001 21:29:31 ..
XA sectors Chaoji Video CD (CVD)

5
test/t1.toc Normal file
View File

@@ -0,0 +1,5 @@
// simplest cue sheet
TRACK AUDIO
NO COPY // so that all CTL flags are 0
SILENCE 0:0:74 // frames are just under 75

6
test/t2.toc Normal file
View File

@@ -0,0 +1,6 @@
// additional pre-gap for track 1
TRACK AUDIO
NO COPY // so that all CTL flags are 0
FILE "cdda.bin" 0:59:0 // Seconds are just under 60
START 0:10:0 // 10 second pre-gap

11
test/t3.toc Normal file
View File

@@ -0,0 +1,11 @@
// simplest cue sheet for two tracks
TRACK AUDIO
NO COPY // so that all CTL flags are 0
FILE "cdda.bin" 180:0:0 // 180 for number of minutes is okay, although
// it is not for a second or a frame value.
TRACK AUDIO
NO COPY // so that all CTL flags are 0
FILE "cdda.bin" 1:0:0

8
test/t4.toc Normal file
View File

@@ -0,0 +1,8 @@
// non default CTL flag of track 1
TRACK AUDIO
COPY
PRE_EMPHASIS
FOUR_CHANNEL_AUDIO
FILE "cdda.bin" 1:0:0

8
test/t5.toc Normal file
View File

@@ -0,0 +1,8 @@
// test catalog number
CATALOG "1234567890123"
TRACK AUDIO
NO COPY
FILE "cdda.bin" 1:0:0

7
test/t6.toc Normal file
View File

@@ -0,0 +1,7 @@
// test ISRC code
TRACK AUDIO
NO COPY
ISRC "DEMUA9800001"
FILE "cdda.bin" 1:0:0

12
test/t7.toc Normal file
View File

@@ -0,0 +1,12 @@
// check two tracks with pre-gap and ISRC
TRACK AUDIO
NO COPY
FILE "cdda.bin" 1:0:0
TRACK AUDIO
NO COPY
ISRC "DEMUA9800001"
FILE "cdda.bin" 1:0:0
START 0:5:0 // pre-gap

14
test/t8.toc Normal file
View File

@@ -0,0 +1,14 @@
// check index increments
TRACK AUDIO
NO COPY
FILE "cdda.bin" 0:10:0
INDEX 1:0:0
INDEX 2:0:0
TRACK AUDIO
NO COPY
FILE "cdda.bin" 0:10:0
START 0:5:0 // pre-gap

31
test/t9.toc Normal file
View File

@@ -0,0 +1,31 @@
CD_DA
// check mulitple tracks
CATALOG "0724385356926"
TRACK AUDIO
ISRC "USEM39600078"
COPY
FILE "cdda.bin" 0:10:0
START 0:5:0
TRACK AUDIO
NO COPY
ISRC "USEM39600079"
FILE "cdda.bin" 0:10:0
START 0:2:0
TRACK AUDIO
COPY
FILE "cdda.bin" 0:10:0
START 0:1:30
TRACK AUDIO
NO COPY
START 0:0:0
FILE "cdda.bin" 0:10:0
TRACK AUDIO
ISRC "EDUMA9892346"
NO COPY
FILE "cdda.bin" 0:10:0
START 0:2:1

35
test/testassert.c Normal file
View File

@@ -0,0 +1,35 @@
/*
$Id: testassert.c,v 1.2 2008/03/22 18:08:25 karl Exp $
Copyright (C) 2001, 2008 Herbert Valerio Riedel <hvr@gnu.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
/* Private headers */
#include "cdio_assert.h"
int
main (int argc, const char *argv[])
{
cdio_assert (argc < 2);
cdio_assert_not_reached ();
return 0;
}

125
test/testbincue.c.in Normal file
View File

@@ -0,0 +1,125 @@
/* -*- C -*-
$Id: testbincue.c.in,v 1.2 2008/03/22 18:08:25 karl Exp $
Copyright (C) 2004, 2006, 2008 Rocky Bernstein <rocky@gnu.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
Regression test for cdio_binfile().
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <cdio/cdio.h>
#include <cdio/logging.h>
#ifdef HAVE_STDIO_H
#include <stdio.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#include <string.h>
#ifndef TEST_DIR
#define TEST_DIR "@srcdir@"
#endif
#define NUM_GOOD_CUES 2
#define NUM_BAD_CUES 7
int
main(int argc, const char *argv[])
{
const char *cue_file[NUM_GOOD_CUES] = {
"cdda.cue",
"isofs-m1.cue",
};
const char *badcue_file[NUM_BAD_CUES] = {
"bad-cat1.cue",
"bad-cat2.cue",
"bad-cat3.cue",
"bad-mode1.cue",
"bad-msf-1.cue",
"bad-msf-2.cue",
"bad-msf-3.cue",
};
int ret=0;
unsigned int i;
char psz_cuefile[500];
psz_cuefile[sizeof(psz_cuefile)-1] = '\0';
cdio_loglevel_default = (argc > 1) ? CDIO_LOG_DEBUG : CDIO_LOG_INFO;
for (i=0; i<NUM_GOOD_CUES; i++) {
char *psz_binfile;
snprintf(psz_cuefile, sizeof(psz_cuefile)-1,
"%s/%s", TEST_DIR, cue_file[i]);
psz_binfile = cdio_is_cuefile(psz_cuefile);
if (!psz_binfile) {
printf("Incorrect: %s doesn't parse as a CDRWin CUE file.\n",
cue_file[i]);
ret=i+1;
} else {
printf("Correct: %s parses as a CDRWin CUE file.\n",
cue_file[i]);
free(psz_binfile);
}
}
for (i=0; i<NUM_BAD_CUES; i++) {
char *psz_binfile;
snprintf(psz_cuefile, sizeof(psz_cuefile)-1,
"%s/%s", TEST_DIR, badcue_file[i]);
psz_binfile=cdio_is_cuefile(psz_cuefile);
if (!psz_binfile) {
printf("Correct: %s doesn't parse as a CDRWin CUE file.\n",
badcue_file[i]);
} else {
printf("Incorrect: %s parses as a CDRWin CUE file.\n",
badcue_file[i]);
free(psz_binfile);
ret+=50*i+1;
break;
}
}
{
CdIo_t *p_cdio;
snprintf(psz_cuefile, sizeof(psz_cuefile)-1,
"%s/%s", TEST_DIR, "cdda.cue");
p_cdio = cdio_open (psz_cuefile, DRIVER_UNKNOWN);
if (!p_cdio) {
printf("Can't open cdda.cue\n");
} else {
/* Just test performing some operations. */
driver_return_code_t drc = cdio_set_blocksize(p_cdio, 2048);
char *psz_device = cdio_get_default_device(p_cdio);
/* Could chdir to srcdir to hedge the bet? */
if (psz_device)
free(psz_device);
else {
/* Unless we do the chdir, will fail. So don't set as an error. */
printf("Can't get default device\n");
}
drc = cdio_set_speed(p_cdio, 5);
}
}
return ret;
}

200
test/testdefault.c Normal file
View File

@@ -0,0 +1,200 @@
/*
$Id: testdefault.c,v 1.8 2008/03/22 18:08:25 karl Exp $
Copyright (C) 2003, 2004, 2005, 2008 Rocky Bernstein <rocky@gnu.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
Regression test for cdio_get_devices, cdio_get_devices_with_cap(),
and cdio_free_device_list()
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <cdio/cdio.h>
#include <cdio/cd_types.h>
#include <cdio/logging.h>
#ifdef HAVE_STDIO_H
#include <stdio.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#include <string.h>
static void
log_handler (cdio_log_level_t level, const char message[])
{
switch(level) {
case CDIO_LOG_DEBUG:
case CDIO_LOG_INFO:
return;
default:
printf("cdio %d message: %s\n", level, message);
}
}
static bool
is_in(char **file_list, const char *file)
{
char **p;
for (p = file_list; p != NULL && *p != NULL; p++) {
if (strcmp(*p, file) == 0) {
printf("File %s found as expected\n", file);
return true;
}
}
printf("Can't find file %s in list\n", file);
return false;
}
int
main(int argc, const char *argv[])
{
char **nrg_images=NULL;
char **bincue_images=NULL;
char **imgs;
char **c;
unsigned int i;
int ret=0;
const char *cue_files[2] = {"cdda.cue", "isofs-m1.cue"};
const char *nrg_files[1] = {"videocd.nrg"};
cdio_log_set_handler (log_handler);
if (! (cdio_have_driver(DRIVER_NRG) && cdio_have_driver(DRIVER_BINCUE)) ) {
printf("You don't have enough drivers for this test\n");
exit(77);
}
nrg_images = cdio_get_devices(DRIVER_NRG);
for (imgs=nrg_images; *imgs != NULL; imgs++) {
printf("NRG image %s\n", *imgs);
}
if (!is_in(nrg_images, nrg_files[0])) {
cdio_free_device_list(nrg_images);
return 10;
}
bincue_images = cdio_get_devices(DRIVER_BINCUE);
for (imgs=bincue_images; *imgs != NULL; imgs++) {
printf("bincue image %s\n", *imgs);
}
for (i=0; i<2; i++) {
if (is_in(bincue_images, cue_files[i])) {
printf("%s parses as a CDRWIN BIN/CUE csheet.\n", cue_files[i]);
} else {
printf("%s doesn't parse as a CDRWIN BIN/CUE csheet.\n", cue_files[i]);
ret = i+1;
}
}
if (ret != 0) return ret;
printf("-----\n");
printf("ISO 9660 images...\n");
imgs = NULL;
/* Print out a list of CDDA-drives. */
imgs = cdio_get_devices_with_cap(bincue_images, CDIO_FS_ISO_9660, false);
if (NULL == imgs || *imgs == NULL) {
printf("Failed to find an ISO 9660 image\n");
return 11;
}
for( c = imgs; *c != NULL; c++ ) {
printf("%s\n", *c);
}
cdio_free_device_list(imgs);
free(imgs);
printf("-----\n");
printf("CD-DA images...\n");
imgs = NULL;
/* Print out a list of CDDA-drives. */
imgs = cdio_get_devices_with_cap(bincue_images, CDIO_FS_AUDIO, false);
if (NULL == imgs || *imgs == NULL) {
printf("Failed to find CDDA image\n");
return 12;
}
for( c = imgs; *c != NULL; c++ ) {
printf("%s\n", *c);
}
cdio_free_device_list(imgs);
free(imgs);
printf("-----\n");
imgs = NULL;
printf("VCD images...\n");
/* Print out a list of CD-drives with VCD's in them. */
imgs = cdio_get_devices_with_cap(nrg_images,
(CDIO_FS_ANAL_SVCD|CDIO_FS_ANAL_CVD|CDIO_FS_ANAL_VIDEOCD|CDIO_FS_UNKNOWN),
true);
if (NULL == imgs || *imgs == NULL) {
printf("Failed to find VCD image\n");
return 13;
}
for( c = imgs; *c != NULL; c++ ) {
printf("image: %s\n", *c);
}
cdio_free_device_list(imgs);
free(imgs);
imgs = NULL;
/* Print out a list of CDDA-drives. */
imgs = cdio_get_devices_with_cap(bincue_images, CDIO_FS_HIGH_SIERRA, false);
if (NULL != imgs && *imgs != NULL) {
printf("Found erroneous High Sierra image\n");
return 14;
}
imgs = NULL;
/* Print out a list of CDDA-drives. */
imgs = cdio_get_devices_with_cap(bincue_images, CDIO_FS_UFS, true);
if (NULL != imgs && *imgs != NULL) {
printf("Found erroneous UFS image\n");
return 15;
}
cdio_free_device_list(nrg_images);
free(nrg_images);
cdio_free_device_list(bincue_images);
free(bincue_images);
cdio_free_device_list(imgs);
free(imgs);
return 0;
}

70
test/testischar.c Normal file
View File

@@ -0,0 +1,70 @@
/*
$Id: testischar.c,v 1.3 2008/03/22 18:08:25 karl Exp $
Copyright (C) 2001, 2008 Herbert Valerio Riedel <hvr@gnu.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* Tests ISO9660 character sets. */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <stdio.h>
#include <cdio/iso9660.h>
int
main (int argc, const char *argv[])
{
int i, j;
printf (" ");
for (j = 0; j < 0x10; j++)
printf (" %1.1x", j);
printf (" |");
for (j = 0; j < 0x10; j++)
printf (" %1.1x", j);
printf ("\n");
for (i = 0; i < 0x10; i++)
{
printf ("%1.1x ", i);
for (j = 0; j < 0x10; j++)
{
int c = (j << 4) + i;
printf (" %c", iso9660_is_dchar (c) ? c : ' ');
}
printf (" |");
for (j = 0; j < 0x10; j++)
{
int c = (j << 4) + i;
printf (" %c", iso9660_isachar (c) ? c : ' ');
}
printf ("\n");
}
return 0;
}

290
test/testiso9660.c Normal file
View File

@@ -0,0 +1,290 @@
/*
$Id: testiso9660.c,v 1.23 2008/06/03 08:40:15 rocky Exp $
Copyright (C) 2003, 2006, 2007, 2008 Rocky Bernstein <rocky@gnu.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* Tests ISO9660 library routines. */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <ctype.h>
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#ifdef HAVE_STDIO_H
#include <stdio.h>
#endif
#include <cdio/iso9660.h>
static bool
time_compare(struct tm *p_tm1, struct tm *p_tm2)
{
bool okay = true;
if (!p_tm1) {
printf("get time is NULL\n");
return false;
}
if (!p_tm2) {
printf("set time is NULL\n");
return false;
}
if (p_tm1->tm_year != p_tm2->tm_year) {
printf("Years aren't equal. get: %d, set %d\n",
p_tm1->tm_year, p_tm2->tm_year);
okay=false;
}
if (p_tm1->tm_mon != p_tm2->tm_mon) {
printf("Months aren't equal. get: %d, set %d\n",
p_tm1->tm_mon, p_tm2->tm_mon);
okay=false;
}
if (p_tm1->tm_mday != p_tm2->tm_mday) {
printf("Month days aren't equal. get: %d, set %d\n",
p_tm1->tm_mday, p_tm2->tm_mday);
okay=false;
}
if (p_tm1->tm_min != p_tm2->tm_min) {
printf("minutes aren't equal. get: %d, set %d\n",
p_tm1->tm_min, p_tm2->tm_min);
okay=false;
}
if (p_tm1->tm_hour != p_tm2->tm_hour) {
printf("hours aren't equal. get: %d, set %d\n",
p_tm1->tm_hour, p_tm2->tm_hour);
okay=false;
}
if (p_tm1->tm_sec != p_tm2->tm_sec) {
printf("seconds aren't equal. get: %d, set %d\n",
p_tm1->tm_sec, p_tm2->tm_sec);
okay=false;
}
if (p_tm1->tm_wday != p_tm2->tm_wday) {
printf("Week days aren't equal. get: %d, set %d\n",
p_tm1->tm_wday, p_tm2->tm_wday);
okay=false;
}
if (p_tm1->tm_yday != p_tm2->tm_yday) {
printf("Year days aren't equal. get: %d, set %d\n",
p_tm1->tm_yday, p_tm2->tm_yday);
okay=false;
}
#if FIXED
if (p_tm1->tm_isdst != p_tm2->tm_isdst) {
printf("Is daylight savings times aren't equal. get: %d, set %d\n",
p_tm1->tm_isdst, p_tm2->tm_isdst);
okay=false;
}
#endif
#ifdef HAVE_TM_GMTOFF
if (p_tm1->tm_gmtoff != p_tm2->tm_gmtoff) {
printf("GMT offsets aren't equal. get: %ld, set %ld\n",
p_tm1->tm_gmtoff, p_tm2->tm_gmtoff);
okay=false;
}
if (p_tm1 != p_tm2 && p_tm1 && p_tm2) {
#ifdef FIXED
if (strcmp(p_tm1->tm_zone, p_tm2->tm_zone) != 0) {
printf("Time Zone values. get: %s, set %s\n",
p_tm1->tm_zone, p_tm2->tm_zone);
/* Argh... sometimes GMT is converted to UTC. So
Let's not call this a failure if everything else was okay.
*/
}
#endif
}
#endif
return okay;
}
int
main (int argc, const char *argv[])
{
int c;
int i;
int i_bad = 0;
char dst[100];
char *dst_p;
int achars[] = {'!', '"', '%', '&', '(', ')', '*', '+', ',', '-', '.',
'/', '?', '<', '=', '>'};
/*********************************************
* Test ACHAR and DCHAR
*********************************************/
for (c='A'; c<='Z'; c++ ) {
if (!iso9660_is_dchar(c)) {
printf("Failed iso9660_is_dchar test on %c\n", c);
i_bad++;
}
if (!iso9660_is_achar(c)) {
printf("Failed iso9660_is_achar test on %c\n", c);
i_bad++;
}
}
if (i_bad) return i_bad;
for (c='0'; c<='9'; c++ ) {
if (!iso9660_is_dchar(c)) {
printf("Failed iso9660_is_dchar test on %c\n", c);
i_bad++;
}
if (!iso9660_is_achar(c)) {
printf("Failed iso9660_is_achar test on %c\n", c);
i_bad++;
}
}
if (i_bad) return i_bad;
for (i=0; i<=13; i++ ) {
c=achars[i];
if (iso9660_is_dchar(c)) {
printf("Should not pass iso9660_is_dchar test on %c\n", c);
i_bad++;
}
if (!iso9660_is_achar(c)) {
printf("Failed iso9660_is_achar test on symbol %c\n", c);
i_bad++;
}
}
if (i_bad) return i_bad;
/*********************************************
* Test iso9660_strncpy_pad
*********************************************/
dst_p = iso9660_strncpy_pad(dst, "1_3", 5, ISO9660_DCHARS);
if ( 0 != strncmp(dst, "1_3 ", 5) ) {
printf("Failed iso9660_strncpy_pad DCHARS\n");
return 31;
}
dst_p = iso9660_strncpy_pad(dst, "ABC!123", 2, ISO9660_ACHARS);
if ( 0 != strncmp(dst, "AB", 2) ) {
printf("Failed iso9660_strncpy_pad ACHARS truncation\n");
return 32;
}
/*********************************************
* Test iso9660_dirname_valid_p
*********************************************/
if ( iso9660_dirname_valid_p("/NOGOOD") ) {
printf("/NOGOOD should fail iso9660_dirname_valid_p\n");
return 33;
}
if ( iso9660_dirname_valid_p("LONGDIRECTORY/NOGOOD") ) {
printf("LONGDIRECTORY/NOGOOD should fail iso9660_dirname_valid_p\n");
return 34;
}
if ( !iso9660_dirname_valid_p("OKAY/DIR") ) {
printf("OKAY/DIR should pass iso9660_dirname_valid_p\n");
return 35;
}
if ( iso9660_dirname_valid_p("OKAY/FILE.EXT") ) {
printf("OKAY/FILENAME.EXT should fail iso9660_dirname_valid_p\n");
return 36;
}
/*********************************************
* Test iso9660_pathname_valid_p
*********************************************/
if ( !iso9660_pathname_valid_p("OKAY/FILE.EXT") ) {
printf("OKAY/FILE.EXT should pass iso9660_dirname_valid_p\n");
return 37;
}
if ( iso9660_pathname_valid_p("OKAY/FILENAMETOOLONG.EXT") ) {
printf("OKAY/FILENAMETOOLONG.EXT should fail iso9660_dirname_valid_p\n");
return 38;
}
if ( iso9660_pathname_valid_p("OKAY/FILE.LONGEXT") ) {
printf("OKAY/FILE.LONGEXT should fail iso9660_dirname_valid_p\n");
return 39;
}
dst_p = iso9660_pathname_isofy ("this/file.ext", 1);
if ( 0 != strncmp(dst_p, "this/file.ext;1", 16) ) {
printf("Failed iso9660_pathname_isofy\n");
free(dst_p);
return 40;
}
free(dst_p);
/*********************************************
* Test get/set date
*********************************************/
{
struct tm *p_tm, tm;
iso9660_dtime_t dtime;
iso9660_ltime_t ltime;
time_t now = time(NULL);
memset(&dtime, 0, sizeof(dtime));
p_tm = localtime(&now);
iso9660_set_dtime(p_tm, &dtime);
iso9660_get_dtime(&dtime, true, &tm);
if ( !time_compare(p_tm, &tm) ) {
return 41;
}
p_tm = gmtime(&now);
iso9660_set_dtime(p_tm, &dtime);
if (!iso9660_get_dtime(&dtime, false, &tm)) {
printf("Error returned by iso9660_get_dtime\n");
return 42;
}
if ( !time_compare(p_tm, &tm) ) {
printf("GMT time retrieved with iso9660_get_dtime() not same as that\n");
printf("set with iso9660_set_dtime().\n");
return 43;
}
{
p_tm = localtime(&now);
iso9660_set_ltime(p_tm, &ltime);
if (!iso9660_get_ltime(&ltime, &tm)) {
printf("Problem running iso9660_get_ltime\n");
return 44;
}
if ( ! time_compare(p_tm, &tm) ) {
printf("local time retrieved with iso9660_get_ltime() not\n");
printf("same as that set with iso9660_set_ltime().\n");
return 45;
}
p_tm = gmtime(&now);
iso9660_set_ltime(p_tm, &ltime);
iso9660_get_ltime(&ltime, &tm);
if ( ! time_compare(p_tm, &tm) ) {
printf("GMT time retrieved with iso9660_get_ltime() not\n");
printf("same as that set with iso9660_set_ltime().\n");
return 46;
}
}
}
return 0;
}

153
test/testisocd.c Normal file
View File

@@ -0,0 +1,153 @@
/* $Id: testisocd.c,v 1.6 2008/03/22 18:08:25 karl Exp $
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Rocky Bernstein
<rocky@gnu.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* Tests reading ISO 9660 info from a CD. */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "portable.h"
#include <cdio/cdio.h>
#include <cdio/iso9660.h>
#include <cdio/cd_types.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_STDIO_H
#include <stdio.h>
#endif
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#define SKIP_TEST_RC 77
int
main(int argc, const char *argv[])
{
char **ppsz_cd_drives; /* List of all drives with an ISO9660 filesystem. */
driver_id_t driver_id; /* Driver ID found */
char *psz_drive; /* Name of drive */
CdIo_t *p_cdio;
/* See if we can find a device with a loaded CD-DA in it. If successful
drive_id will be set. */
ppsz_cd_drives =
cdio_get_devices_with_cap_ret(NULL, CDIO_FS_ANAL_ISO9660_ANY,
true, &driver_id);
if (ppsz_cd_drives && ppsz_cd_drives[0]) {
/* Found such a CD-ROM with an ISO 9660 filesystem. Use the first drive in
the list. */
psz_drive = strdup(ppsz_cd_drives[0]);
/* Don't need a list of CD's with CD-DA's any more. */
cdio_free_device_list(ppsz_cd_drives);
} else {
printf("Unable find or access a CD-ROM drive with an ISO-9660 "
"filesystem.\n");
exit(SKIP_TEST_RC);
}
p_cdio = cdio_open (psz_drive, driver_id);
if (!p_cdio) {
fprintf(stderr, "Sorry, couldn't open %s\n", psz_drive);
return 1;
} else {
/* You make get different results looking up "/" versus "/." and the
latter may give more complete information. "/" will take information
from the PVD only, whereas "/." will force a directory read of "/" and
find "." and in that Rock-Ridge information might be found which fills
in more stat information that iso9660_fs_find_lsn also will find.
. Ideally iso9660_fs_stat should be fixed. */
iso9660_stat_t *p_statbuf = iso9660_fs_stat (p_cdio, "/.");
if (NULL == p_statbuf) {
fprintf(stderr,
"Could not get ISO-9660 file information for file /.\n");
cdio_destroy(p_cdio);
exit(2);
} else {
/* Now try getting the statbuf another way */
char buf[ISO_BLOCKSIZE];
char *psz_path = NULL;
const lsn_t i_lsn = p_statbuf->lsn;
const iso9660_stat_t *p_statbuf2 = iso9660_fs_find_lsn (p_cdio, i_lsn);
const iso9660_stat_t *p_statbuf3 =
iso9660_fs_find_lsn_with_path (p_cdio, i_lsn, &psz_path);
/* Compare the two statbufs. */
#if 0
if (0 != memcmp(p_statbuf, p_statbuf2, sizeof(iso9660_stat_t))) {
#else
if (p_statbuf->lsn != p_statbuf2->lsn ||
p_statbuf->size != p_statbuf2->size ||
p_statbuf->type != p_statbuf2->type) {
#endif
fprintf(stderr, "File stat information between fs_stat and "
"fs_find_lsn isn't the same\n");
exit(3);
}
if (0 != memcmp(p_statbuf3, p_statbuf2, sizeof(iso9660_stat_t))) {
fprintf(stderr, "File stat information between fs_find_lsn and "
"fs_find_lsn_with_path isn't the same\n");
exit(4);
}
if (psz_path != NULL) {
if (0 != strncmp("/./", psz_path, strlen("/./"))) {
fprintf(stderr, "Path returned for fs_find_lsn_with_path "
"is not correct should be /./, is %s\n", psz_path);
exit(5);
free(psz_path);
}
} else {
fprintf(stderr, "Path returned for fs_find_lsn_with_path is NULL\n");
exit(6);
}
/* Try reading from the directory. */
memset (buf, 0, ISO_BLOCKSIZE);
if ( 0 != cdio_read_data_sectors (p_cdio, buf, i_lsn, ISO_BLOCKSIZE, 1) )
{
fprintf(stderr, "Error reading ISO 9660 file at lsn %lu\n",
(long unsigned int) p_statbuf->lsn);
exit(7);
}
exit(0);
}
}
exit(0);
}

134
test/testisocd2.c.in Normal file
View File

@@ -0,0 +1,134 @@
/* $Id: testisocd2.c.in,v 1.2 2008/03/22 18:08:25 karl Exp $
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Rocky Bernstein
<rocky@gnu.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* Tests reading ISO 9660 info from an ISO 9660 image. */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "portable.h"
#include <cdio/cdio.h>
#include <cdio/iso9660.h>
#include <cdio/cd_types.h>
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_STDIO_H
#include <stdio.h>
#endif
#ifdef HAVE_ERRNO_H
#include <errno.h>
#endif
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
/* Set up a CD-DA image to test on which is in the libcdio distribution. */
#define ISO9660_IMAGE_PATH "@srcdir@/"
#define ISO9660_IMAGE ISO9660_IMAGE_PATH "copying.iso"
#define SKIP_TEST_RC 77
int
main(int argc, const char *argv[])
{
iso9660_t *p_iso;
p_iso = iso9660_open (ISO9660_IMAGE);
if (!p_iso) {
fprintf(stderr, "Sorry, couldn't open ISO9660 image %s\n",
ISO9660_IMAGE);
return 1;
} else {
/* You make get different results looking up "/" versus "/." and the
latter may give more complete information. "/" will take information
from the PVD only, whereas "/." will force a directory read of "/" and
find "." and in that Rock-Ridge information might be found which fills
in more stat information that iso9660_fs_find_lsn also will find.
. Ideally iso9660_fs_stat should be fixed. */
iso9660_stat_t *p_statbuf = iso9660_ifs_stat (p_iso, "/.");
if (NULL == p_statbuf) {
fprintf(stderr,
"Could not get ISO-9660 file information for file /.\n");
iso9660_close(p_iso);
exit(2);
} else {
/* Now try getting the statbuf another way */
char buf[ISO_BLOCKSIZE];
char *psz_path = NULL;
const lsn_t i_lsn = p_statbuf->lsn;
const iso9660_stat_t *p_statbuf2 = iso9660_ifs_find_lsn (p_iso, i_lsn);
const iso9660_stat_t *p_statbuf3 =
iso9660_ifs_find_lsn_with_path (p_iso, i_lsn, &psz_path);
/* Compare the two statbufs. */
if (p_statbuf->lsn != p_statbuf2->lsn ||
p_statbuf->size != p_statbuf2->size ||
p_statbuf->type != p_statbuf2->type) {
fprintf(stderr, "File stat information between fs_stat and "
"iso9660_ifs_find_lsn isn't the same\n");
exit(3);
}
if (p_statbuf3->lsn != p_statbuf2->lsn ||
p_statbuf3->size != p_statbuf2->size ||
p_statbuf3->type != p_statbuf2->type) {
exit(4);
}
if (psz_path != NULL) {
if (0 != strncmp("/./", psz_path, strlen("/./"))) {
fprintf(stderr, "Path returned for ifs_find_lsn_with_path "
"is not correct should be /./, is %s\n", psz_path);
exit(5);
}
free(psz_path);
} else {
fprintf(stderr, "Path returned for fs_find_lsn_with_path is NULL\n");
exit(6);
}
/* Try reading from the directory. */
memset (buf, 0, ISO_BLOCKSIZE);
if ( ISO_BLOCKSIZE != iso9660_iso_seek_read (p_iso, buf, i_lsn, 1) )
{
fprintf(stderr, "Error reading ISO 9660 file at lsn %lu\n",
(long unsigned int) p_statbuf->lsn);
exit(7);
}
exit(0);
}
}
exit(0);
}

91
test/testnrg.c.in Normal file
View File

@@ -0,0 +1,91 @@
/* -*- C -*-
$Id: testnrg.c.in,v 1.1 2008/03/22 22:43:56 rocky Exp $
Copyright (C) 2008 Rocky Bernstein <rocky@gnu.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
Regression test for cdio_nrgfile().
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <cdio/cdio.h>
#include <cdio/logging.h>
#include <cdio/cdtext.h>
#ifdef HAVE_STDIO_H
#include <stdio.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#include <string.h>
#ifndef TEST_DIR
#define TEST_DIR "@srcdir@"
#endif
#define NUM_FIELDS 2
int
main(int argc, const char *argv[])
{
char psz_nrgfile[500];
CdIo_t *p_cdio;
const char *cdtext_check[NUM_FIELDS] = {
"Richard Stallman",
"Join us now we have the software"
};
const int cdtext_fields[NUM_FIELDS] = {CDTEXT_PERFORMER, CDTEXT_TITLE};
cdio_loglevel_default = (argc > 1) ? CDIO_LOG_DEBUG : CDIO_LOG_INFO;
/* snprintf(psz_nrgfile, sizeof(psz_nrgfile)-1,
"%s/%s", TEST_DIR, cue_file[i]);
*/
if (!cdio_have_driver(DRIVER_NRG)) return(77);
snprintf(psz_nrgfile, sizeof(psz_nrgfile)-1, "%s/%s",
TEST_DIR, "./p1.nrg");
p_cdio = cdio_open_nrg(psz_nrgfile);
if (!p_cdio) {
printf("Can't open Nero image file: %s.\n", psz_nrgfile);
return(1);
}
{
unsigned int i;
cdtext_t *p_cdtext = cdio_get_cdtext(p_cdio, 0);
if (!p_cdtext) return(1);
for (i=0; i<NUM_FIELDS; i++) {
const char *psz_field = p_cdtext->field[cdtext_fields[i]];
if (!psz_field)
return(2);
if (0 != strncmp(psz_field, cdtext_check[i], strlen(cdtext_check[i]))) {
printf("CD-Text compare mismatch.\n");
printf("expected:\n\t'%s'\ngot:\n\t'%s'\n",
cdtext_check[i], psz_field);
return(3);
}
}
}
cdio_destroy(p_cdio);
return 0;
}

192
test/testparanoia.c Normal file
View File

@@ -0,0 +1,192 @@
/*
$Id: testparanoia.c,v 1.14 2008/06/19 15:44:31 flameeyes Exp $
Copyright (C) 2005, 2006, 2008 Rocky Bernstein <rocky@gnu.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/* Simple program to show using libcdio's version of cdparanoia. */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <cdio/paranoia.h>
#include <cdio/cd_types.h>
#include <stdio.h>
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#ifdef HAVE_STRING_H
#include <string.h>
#endif
#ifdef WORDS_BIGENDIAN
#define BIGENDIAN 1
#else
#define BIGENDIAN 0
#endif
#define SKIP_TEST_RC 77
#define MAX_SECTORS 50
static uint8_t audio_buf[MAX_SECTORS][CDIO_CD_FRAMESIZE_RAW] = { {0}, };
static paranoia_cb_mode_t audio_status[MAX_SECTORS];
static unsigned int i = 0;
static void
callback(long int inpos, paranoia_cb_mode_t function)
{
audio_status[i] = function;
}
int
main(int argc, const char *argv[])
{
cdrom_drive_t *d = NULL; /* Place to store handle given by cd-parapnioa. */
driver_id_t driver_id;
char **ppsz_cd_drives; /* List of all drives with a loaded CDDA in it. */
int i_rc=0;
/* See if we can find a device with a loaded CD-DA in it. If successful
drive_id will be set. */
ppsz_cd_drives = cdio_get_devices_with_cap_ret(NULL, CDIO_FS_AUDIO, false,
&driver_id);
if (ppsz_cd_drives && *ppsz_cd_drives) {
/* Found such a CD-ROM with a CD-DA loaded. Use the first drive in
the list. */
d=cdda_identify(*ppsz_cd_drives, 1, NULL);
} else {
printf("Unable find or access a CD-ROM drive with an audio CD in it.\n");
exit(SKIP_TEST_RC);
}
/** We had a bug in is_device when driver_id == DRIVER_UNKNOWN or
DRIVER_DEVICE. Let's make sure we've fixed that problem. **/
if (!cdio_is_device(*ppsz_cd_drives, DRIVER_UNKNOWN) ||
!cdio_is_device(*ppsz_cd_drives, DRIVER_DEVICE))
exit(99);
/* Don't need a list of CD's with CD-DA's any more. */
cdio_free_device_list(ppsz_cd_drives);
/* We'll set for verbose paranoia messages. */
cdda_verbose_set(d, CDDA_MESSAGE_PRINTIT, CDDA_MESSAGE_PRINTIT);
if ( 0 != cdio_cddap_open(d) ) {
printf("Unable to open disc.\n");
exit(SKIP_TEST_RC);
}
/* Okay now set up to read up to the first 300 frames of the first
audio track of the Audio CD. */
{
cdrom_paranoia_t *p = paranoia_init(d);
lsn_t i_first_lsn = cdda_disc_firstsector(d);
if ( -1 == i_first_lsn ) {
printf("Trouble getting starting LSN\n");
} else {
lsn_t i_lsn; /* Current LSN to read */
lsn_t i_last_lsn = cdda_disc_lastsector(d);
unsigned int i_sectors = i_last_lsn - i_first_lsn + 1;
unsigned int j;
unsigned int i_good = 0;
unsigned int i_bad = 0;
/* Set reading mode for full paranoia, but allow skipping sectors. */
paranoia_modeset(p, PARANOIA_MODE_FULL^PARANOIA_MODE_NEVERSKIP);
for ( j=0; j<10; j++ ) {
/* Pick a place to start reading. */
i_lsn = i_first_lsn + (rand() % i_sectors);
paranoia_seek(p, i_lsn, SEEK_SET);
printf("Testing %d sectors starting at %ld\n",
MAX_SECTORS, (long int) i_lsn);
for ( i = 0;
i < MAX_SECTORS && i_lsn <= i_last_lsn;
i++, i_lsn++ ) {
/* read a sector */
int16_t *p_readbuf = paranoia_read(p, callback);
char *psz_err=cdio_cddap_errors(d);
char *psz_mes=cdio_cddap_messages(d);
memcpy(audio_buf[i], p_readbuf, CDIO_CD_FRAMESIZE_RAW);
if (psz_mes || psz_err)
printf("%s%s\n", psz_mes ? psz_mes: "", psz_err ? psz_err: "");
if (psz_err) free(psz_err);
if (psz_mes) free(psz_mes);
if( !p_readbuf ) {
printf("paranoia read error. Stopping.\n");
goto out;
}
}
/* Compare with the sectors from paranoia. */
i_lsn -= MAX_SECTORS;
for ( i = 0; i < MAX_SECTORS; i++, i_lsn++ ) {
uint8_t readbuf[CDIO_CD_FRAMESIZE_RAW] = {0,};
if ( PARANOIA_CB_READ == audio_status[i] ||
PARANOIA_CB_VERIFY == audio_status[i] ) {
/* We read the block via paranoia without an error. */
if ( 0 == cdio_read_audio_sector(d->p_cdio, readbuf, i_lsn) ) {
if ( BIGENDIAN != d->bigendianp ) {
/* We will compare in the slow, pedantic way*/
int j;
for (j=0; j < CDIO_CD_FRAMESIZE_RAW ; j +=2) {
if (audio_buf[i][j] != readbuf[j+1] &&
audio_buf[i][j+1] != readbuf[j] ) {
printf("LSN %ld doesn't match\n", (long int) i_lsn);
i_bad++;
} else {
i_good++;
}
}
} else {
if ( 0 != memcmp(audio_buf[i], readbuf,
CDIO_CD_FRAMESIZE_RAW) ) {
printf("LSN %ld doesn't match\n", (long int) i_lsn);
i_bad++;
} else {
i_good++;
}
}
}
} else {
printf("Skipping LSN %ld because of status: %s\n",
(long int) i_lsn, paranoia_cb_mode2str[audio_status[i]]);
}
}
}
printf("%u sectors compared okay %u sectors were different\n",
i_good, i_bad);
if (i_bad > i_good) i_rc = 1;
}
out: paranoia_free(p);
}
cdio_cddap_close(d);
exit(i_rc);
}

122
test/testpregap.c.in Normal file
View File

@@ -0,0 +1,122 @@
/*
$Id: testpregap.c.in,v 1.2 2008/06/10 00:45:09 pjcreath Exp $
Copyright (C) 2003, 2004, 2005 Rocky Bernstein <rocky@gnu.org>
Copyright (C) 2008 Robert W. Fuller <hydrologiccycle@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
Regression test for cdio_get_pregap_lsn()
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <cdio/cdio.h>
#include <cdio/cd_types.h>
#include <cdio/logging.h>
#ifdef HAVE_STDIO_H
#include <stdio.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#include <string.h>
#ifndef TEST_DIR
#define TEST_DIR "@srcdir@"
#endif
static void
log_handler (cdio_log_level_t level, const char message[])
{
switch(level) {
case CDIO_LOG_DEBUG:
case CDIO_LOG_INFO:
return;
default:
printf("cdio %d message: %s\n", level, message);
}
}
typedef struct _pregap_list_t {
const char *image;
track_t track;
lsn_t pregap;
} pregap_list_t;
static pregap_list_t pregapList[] =
{
{ "@srcdir@/t2.toc", 1, 4425 },
{ "@srcdir@/t2.toc", 2, CDIO_INVALID_LSN },
{ "@srcdir@/p1.cue", 1, 0 },
{ "@srcdir@/p1.cue", 2, 150 },
{ "@srcdir@/p1.cue", 3, CDIO_INVALID_LSN },
/* { "p1.nrg", 1, 0 }, Nero did not create the proper pre-gap - bleh */
{ "@srcdir@/p1.nrg", 2, 225 },
{ "@srcdir@/p1.nrg", 3, CDIO_INVALID_LSN }
};
#define NELEMS(v) (sizeof(v) / sizeof(v[0]))
/* gcc -Wall -I../include testpregap.c ../lib/driver/.libs/libcdio.a */
int
main(int argc, const char *argv[])
{
CdIo_t *cdObj;
const char *image;
lsn_t pregap;
int i;
int rc = 0;
cdio_log_set_handler (log_handler);
if (! (cdio_have_driver(DRIVER_NRG) && cdio_have_driver(DRIVER_BINCUE)
&& cdio_have_driver(DRIVER_CDRDAO)) ) {
printf("You don't have enough drivers for this test\n");
exit(77);
}
for (i = 0; i < NELEMS(pregapList); ++i) {
image = pregapList[i].image;
cdObj = cdio_open(image, DRIVER_UNKNOWN);
if (!cdObj) {
printf("unrecognized image: %s\n", image);
return 50;
}
pregap = cdio_get_track_pregap_lsn(cdObj, pregapList[i].track);
if (pregap != pregapList[i].pregap) {
printf("%s should have had pregap of lsn=%d instead of lsn=%d\n",
image, pregapList[i].pregap, pregap);
rc = i + 1;
} else {
printf("%s had expected pregap\n", image);
}
cdio_destroy(cdObj);
}
return rc;
}

113
test/testtoc.c Normal file
View File

@@ -0,0 +1,113 @@
/*
$Id: testtoc.c,v 1.9 2008/03/22 18:08:25 karl Exp $
Copyright (C) 2004, 2008 Rocky Bernstein <rocky@gnu.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/*
Regression test for cdio_tocfile.
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <cdio/cdio.h>
#include <cdio/logging.h>
#ifdef HAVE_STDIO_H
#include <stdio.h>
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#endif
#include <string.h>
#ifndef TEST_DIR
#define TEST_DIR "."
#endif
#define NUM_GOOD_TOCS 16
#define NUM_BAD_TOCS 8
int
main(int argc, const char *argv[])
{
const char *toc_file[NUM_GOOD_TOCS] = {
"cdtext.toc",
"t1.toc",
"t2.toc",
"t3.toc",
"t4.toc",
"t5.toc",
"t6.toc",
"t7.toc",
"t8.toc",
"t9.toc",
"data1.toc",
"data2.toc",
"data5.toc",
"data6.toc",
"data7.toc",
"vcd2.toc",
};
const char *badtoc_file[NUM_BAD_TOCS] = {
"bad-msf-1.toc",
"bad-msf-2.toc",
"bad-msf-3.toc",
"bad-cat1.toc",
"bad-cat2.toc",
"bad-cat3.toc",
"bad-file.toc",
"bad-mode1.toc"
};
int ret=0;
unsigned int i;
char psz_tocfile[500];
psz_tocfile[sizeof(psz_tocfile)-1] = '\0';
cdio_loglevel_default = (argc > 1) ? CDIO_LOG_DEBUG : CDIO_LOG_INFO;
for (i=0; i<NUM_GOOD_TOCS; i++) {
snprintf(psz_tocfile, sizeof(psz_tocfile)-1,
"%s/%s", TEST_DIR, toc_file[i]);
if (!cdio_is_tocfile(psz_tocfile)) {
printf("Incorrect: %s doesn't parse as a cdrdao TOC file.\n",
toc_file[i]);
ret=i+1;
} else {
printf("Correct: %s parses as a cdrdao TOC file.\n",
toc_file[i]);
}
}
for (i=0; i<NUM_BAD_TOCS; i++) {
snprintf(psz_tocfile, sizeof(psz_tocfile)-1,
"%s/%s", TEST_DIR, badtoc_file[i]);
if (!cdio_is_tocfile(psz_tocfile)) {
printf("Correct: %s doesn't parse as a cdrdao TOC file.\n",
badtoc_file[i]);
} else {
printf("Incorrect: %s parses as a cdrdao TOC file.\n",
badtoc_file[i]);
ret+=50*i+1;
break;
}
}
return ret;
}

BIN
test/udf102.iso Normal file

Binary file not shown.

23
test/vcd2.toc Normal file
View File

@@ -0,0 +1,23 @@
// $Id: vcd2.toc,v 1.1 2005/01/16 04:34:20 rocky Exp $
// Taken from one of Steve Schultz's VCD collection.
// The .bin has been changed and is wrong.
CD_ROM_XA
// Track 1
TRACK MODE2_FORM_MIX
COPY
DATAFILE "cdda.bin" 00:05:00 // length in bytes: 1051200
// Track 2
TRACK MODE2_FORM_MIX
COPY
DATAFILE "cdda.bin" #1051200 34:31:23 // length in bytes: 362892928
// Track 3
TRACK MODE2_FORM_MIX
COPY
DATAFILE "cdda.bin" #363944128 39:04:26 // length in bytes: 410729536

12
test/vcd_demo.cue Normal file
View File

@@ -0,0 +1,12 @@
FILE "vcd_demo.bin" BINARY
TRACK 01 MODE2/2352
FLAGS DCP
INDEX 01 00:00:00
TRACK 02 MODE2/2352
FLAGS DCP
INDEX 00 00:13:57
INDEX 01 00:15:57
TRACK 03 MODE2/2352
FLAGS DCP
INDEX 00 00:20:71
INDEX 01 00:22:71

92
test/vcd_demo.right Normal file
View File

@@ -0,0 +1,92 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
CD-ROM Track List (1 - 3)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 XA true yes
2: 00:17:57 001182 XA true yes
3: 00:24:71 001721 XA true yes
170: 00:30:10 002110 leadout (4 MB raw, 4 MB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with CD-RTOS and ISO 9660 filesystem
ISO 9660: 1032 blocks, label `V0469 '
Application:
Preparer : LKVCDIMAGER 5.0.7.10(WIN32)
Publisher : LAURENS KOEHOORN
System : CD-RTOS CD-BRIDGE
Volume : V0469
Volume Set :
ISO9660 filesystem
/:
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00:00 ext
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00:00 mpegav
d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00:00 segment
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00:00 sources
d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00:00 vcd
/EXT/:
d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
----1xrxrxr 0 0 [fn 01] [LSN 375] 65536 Jul 14 1978 00:00:00 lot_x.vcd
----1xrxrxr 0 0 [fn 01] [LSN 407] 144 Jul 14 1978 00:00:00 psd_x.vcd
/MPEGAV/:
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
---2-xrxrxr 0 0 [fn 01] [LSN 1182] 904036 ( 796672) Jul 14 1978 00:00:00 avseq01.dat
---2-xrxrxr 0 0 [fn 02] [LSN 1721] 904036 ( 796672) Jul 14 1978 00:00:00 avseq02.dat
/SEGMENT/:
d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
---2-xrxrxr 0 0 [fn 01] [LSN 225] 220780 ( 194560) Jul 14 1978 00:00:00 item0001.dat
/Sources/:
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00:00 html
----1xrxrxr 0 0 [fn 01] [LSN 434] 842 Dec 11 2002 10:33:47 index.htm
----1xrxrxr 0 0 [fn 01] [LSN 435] 1216557 Jan 07 2003 18:01:37 menu.ppm
----1xrxrxr 0 0 [fn 01] [LSN 1030] 2793 Jan 07 2003 18:08:20 source.xml
/Sources/HTML/:
d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00:00 ..
----1xrxrxr 0 0 [fn 01] [LSN 425] 1067 Jan 07 2003 17:51:17 0.xml
----1xrxrxr 0 0 [fn 01] [LSN 426] 1067 Jan 07 2003 17:51:17 1.xml
d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00:00 img
----1xrxrxr 0 0 [fn 01] [LSN 427] 1327 Jan 07 2003 17:51:16 movies.css
----1xrxrxr 0 0 [fn 01] [LSN 428] 12024 Jan 07 2003 17:51:16 toc.xsl
/Sources/HTML/img/:
d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00:00 ..
----1xrxrxr 0 0 [fn 01] [LSN 408] 1999 Nov 13 2002 07:27:30 al.gif
----1xrxrxr 0 0 [fn 01] [LSN 409] 7626 Jan 07 2003 17:42:53 loeki_groep_01.gif
----1xrxrxr 0 0 [fn 01] [LSN 413] 9986 Jan 07 2003 17:42:53 loeki_groep_02.gif
----1xrxrxr 0 0 [fn 01] [LSN 418] 207 Nov 14 2002 19:33:19 a_left.gif
----1xrxrxr 0 0 [fn 01] [LSN 419] 207 Nov 14 2002 19:33:19 a_right.gif
----1xrxrxr 0 0 [fn 01] [LSN 420] 441 Nov 13 2002 10:54:14 animatie.gif
----1xrxrxr 0 0 [fn 01] [LSN 421] 250 Nov 14 2002 11:44:14 face_up2.gif
----1xrxrxr 0 0 [fn 01] [LSN 422] 259 Nov 13 2002 11:09:06 familie.gif
----1xrxrxr 0 0 [fn 01] [LSN 423] 1010 Nov 14 2002 11:52:28 goldstar2.gif
----1xrxrxr 0 0 [fn 01] [LSN 424] 1783 Nov 13 2002 07:15:09 vcd.gif
/VCD/:
d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00:00 entries.vcd
----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00:00 info.vcd
----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00:00 lot.vcd
----1xrxrxr 0 0 [fn 00] [LSN 184] 72 Jul 14 1978 00:00:00 psd.vcd
XA sectors Video CD
session #2 starts at track 2, LSN: 1182, ISO 9660 blocks: 1032
ISO 9660: 1032 blocks, label `V0469 '

15
test/vcd_demo.toc Normal file
View File

@@ -0,0 +1,15 @@
CD_ROM_XA
TRACK MODE2_RAW
COPY
FILE "vcd_demo.bin" 00:00:00 00:13:57
TRACK MODE2_RAW
COPY
FILE "vcd_demo.bin" 00:13:57 00:07:14
START 00:02:00
TRACK MODE2_RAW
COPY
FILE "vcd_demo.bin" 00:20:71 00:05:14
START 00:02:00

View File

@@ -0,0 +1,97 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
CD-ROM Track List (1 - 3)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 XA true yes
2: 00:17:57 001182 XA true yes
3: 00:24:71 001721 XA true yes
170: 00:30:10 002110 leadout (4 MB raw, 4 MB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with CD-RTOS and ISO 9660 filesystem
ISO 9660: 1032 blocks, label `V0469 '
Application:
Preparer : LKVCDIMAGER 5.0.7.10(WIN32)
Publisher : LAURENS KOEHOORN
System : CD-RTOS CD-BRIDGE
Volume : V0469
Volume Set :
ISO9660 filesystem
/:
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00:00 ext
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00:00 mpegav
d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00:00 segment
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00:00 sources
d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00:00 vcd
/EXT/:
d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
----1xrxrxr 0 0 [fn 01] [LSN 375] 65536 Jul 14 1978 00:00:00 lot_x.vcd
----1xrxrxr 0 0 [fn 01] [LSN 407] 144 Jul 14 1978 00:00:00 psd_x.vcd
/MPEGAV/:
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
---2-xrxrxr 0 0 [fn 01] [LSN 1182] 904036 ( 796672) Jul 14 1978 00:00:00 avseq01.dat
---2-xrxrxr 0 0 [fn 02] [LSN 1721] 904036 ( 796672) Jul 14 1978 00:00:00 avseq02.dat
/SEGMENT/:
d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
---2-xrxrxr 0 0 [fn 01] [LSN 225] 220780 ( 194560) Jul 14 1978 00:00:00 item0001.dat
/Sources/:
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00:00 html
----1xrxrxr 0 0 [fn 01] [LSN 434] 842 Dec 11 2002 10:33:47 index.htm
----1xrxrxr 0 0 [fn 01] [LSN 435] 1216557 Jan 07 2003 18:01:37 menu.ppm
----1xrxrxr 0 0 [fn 01] [LSN 1030] 2793 Jan 07 2003 18:08:20 source.xml
/Sources/HTML/:
d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00:00 ..
----1xrxrxr 0 0 [fn 01] [LSN 425] 1067 Jan 07 2003 17:51:17 0.xml
----1xrxrxr 0 0 [fn 01] [LSN 426] 1067 Jan 07 2003 17:51:17 1.xml
d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00:00 img
----1xrxrxr 0 0 [fn 01] [LSN 427] 1327 Jan 07 2003 17:51:16 movies.css
----1xrxrxr 0 0 [fn 01] [LSN 428] 12024 Jan 07 2003 17:51:16 toc.xsl
/Sources/HTML/img/:
d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00:00 ..
----1xrxrxr 0 0 [fn 01] [LSN 408] 1999 Nov 13 2002 07:27:30 al.gif
----1xrxrxr 0 0 [fn 01] [LSN 409] 7626 Jan 07 2003 17:42:53 loeki_groep_01.gif
----1xrxrxr 0 0 [fn 01] [LSN 413] 9986 Jan 07 2003 17:42:53 loeki_groep_02.gif
----1xrxrxr 0 0 [fn 01] [LSN 418] 207 Nov 14 2002 19:33:19 a_left.gif
----1xrxrxr 0 0 [fn 01] [LSN 419] 207 Nov 14 2002 19:33:19 a_right.gif
----1xrxrxr 0 0 [fn 01] [LSN 420] 441 Nov 13 2002 10:54:14 animatie.gif
----1xrxrxr 0 0 [fn 01] [LSN 421] 250 Nov 14 2002 11:44:14 face_up2.gif
----1xrxrxr 0 0 [fn 01] [LSN 422] 259 Nov 13 2002 11:09:06 familie.gif
----1xrxrxr 0 0 [fn 01] [LSN 423] 1010 Nov 14 2002 11:52:28 goldstar2.gif
----1xrxrxr 0 0 [fn 01] [LSN 424] 1783 Nov 13 2002 07:15:09 vcd.gif
/VCD/:
d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00:00 entries.vcd
----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00:00 info.vcd
----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00:00 lot.vcd
----1xrxrxr 0 0 [fn 00] [LSN 184] 72 Jul 14 1978 00:00:00 psd.vcd
XA sectors Video CD
Format : VCD 2.0
Album : `LOEKI'
Volume count: 1
volume number: 1
session #2 starts at track 2, LSN: 1182, ISO 9660 blocks: 1032
ISO 9660: 1032 blocks, label `V0469 '

View File

@@ -0,0 +1,96 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
CD-ROM Track List (1 - 3)
#: MSF LSN Type Green? Copy? Channels Premphasis?
1: 00:02:00 000000 XA true yes
2: 00:17:57 001182 XA true yes
3: 00:24:71 001721 XA true yes
170: 00:30:10 002110 leadout (4 MB raw, 4 MB formatted)
Media Catalog Number (MCN): not available
__________________________________
CD Analysis Report
CD-ROM with CD-RTOS and ISO 9660 filesystem
ISO 9660: 1032 blocks, label `V0469 '
Application:
Preparer : LKVCDIMAGER 5.0.7.10(WIN32)
Publisher : LAURENS KOEHOORN
System : CD-RTOS CD-BRIDGE
Volume : V0469
Volume Set :
ISO9660 filesystem
/:
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 ext
d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 mpegav
d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 segment
d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 sources
d d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00 vcd
/EXT/:
d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 .
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
- ----1xrxrxr 0 0 [fn 01] [LSN 375] 65536 Jul 14 1978 00:00 lot_x.vcd
- ----1xrxrxr 0 0 [fn 01] [LSN 407] 144 Jul 14 1978 00:00 psd_x.vcd
/MPEGAV/:
d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 .
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
- ---2-xrxrxr 0 0 [fn 01] [LSN 1182] 904036 ( 796672) Jul 14 1978 00:00 avseq01.dat
- ---2-xrxrxr 0 0 [fn 02] [LSN 1721] 904036 ( 796672) Jul 14 1978 00:00 avseq02.dat
/SEGMENT/:
d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 .
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
- ---2-xrxrxr 0 0 [fn 01] [LSN 225] 220780 ( 194560) Jul 14 1978 00:00 item0001.dat
/Sources/:
d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 .
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 html
- ----1xrxrxr 0 0 [fn 01] [LSN 434] 842 Dec 11 2002 10:33 index.htm
- ----1xrxrxr 0 0 [fn 01] [LSN 435] 1216557 Jan 07 2003 18:01 menu.ppm
- ----1xrxrxr 0 0 [fn 01] [LSN 1030] 2793 Jan 07 2003 18:08 source.xml
/Sources/HTML/:
d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 .
d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 ..
- ----1xrxrxr 0 0 [fn 01] [LSN 425] 1067 Jan 07 2003 17:51 0.xml
- ----1xrxrxr 0 0 [fn 01] [LSN 426] 1067 Jan 07 2003 17:51 1.xml
d d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00 img
- ----1xrxrxr 0 0 [fn 01] [LSN 427] 1327 Jan 07 2003 17:51 movies.css
- ----1xrxrxr 0 0 [fn 01] [LSN 428] 12024 Jan 07 2003 17:51 toc.xsl
/Sources/HTML/img/:
d d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00 .
d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 ..
- ----1xrxrxr 0 0 [fn 01] [LSN 408] 1999 Nov 13 2002 07:27 al.gif
- ----1xrxrxr 0 0 [fn 01] [LSN 409] 7626 Jan 07 2003 17:42 loeki_groep_01.gif
- ----1xrxrxr 0 0 [fn 01] [LSN 413] 9986 Jan 07 2003 17:42 loeki_groep_02.gif
- ----1xrxrxr 0 0 [fn 01] [LSN 418] 207 Nov 14 2002 19:33 a_left.gif
- ----1xrxrxr 0 0 [fn 01] [LSN 419] 207 Nov 14 2002 19:33 a_right.gif
- ----1xrxrxr 0 0 [fn 01] [LSN 420] 441 Nov 13 2002 10:54 animatie.gif
- ----1xrxrxr 0 0 [fn 01] [LSN 421] 250 Nov 14 2002 11:44 face_up2.gif
- ----1xrxrxr 0 0 [fn 01] [LSN 422] 259 Nov 13 2002 11:09 familie.gif
- ----1xrxrxr 0 0 [fn 01] [LSN 423] 1010 Nov 14 2002 11:52 goldstar2.gif
- ----1xrxrxr 0 0 [fn 01] [LSN 424] 1783 Nov 13 2002 07:15 vcd.gif
/VCD/:
d d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00 .
d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 ..
- ----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00 entries.vcd
- ----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00 info.vcd
- ----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00 lot.vcd
- ----1xrxrxr 0 0 [fn 00] [LSN 184] 72 Jul 14 1978 00:00 psd.vcd
XA sectors Video CD
Format : VCD 2.0
Album : `LOEKI'
Volume count: 1
volume number: 1
session #2 starts at track 2, LSN: 1182, ISO 9660 blocks: 1032
ISO 9660: 1032 blocks, label `V0469 '

BIN
test/videocd.nrg Normal file

Binary file not shown.

68
test/videocd.right Normal file
View File

@@ -0,0 +1,68 @@
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
__________________________________
Disc mode is listed as: CD DATA (Mode 2)
CD-ROM Track List (1 - 5)
#: MSF LSN Type Green? Copy?
1: 00:02:00 000000 XA true no
2: 00:13:01 000826 XA true no
3: 00:16:01 001051 XA true no
4: 00:19:01 001276 XA true no
5: 00:22:01 001501 XA true no
170: 00:25:01 001726 leadout (3 MB raw, 3 MB formatted)
Media Catalog Number (MCN): not available
Last CD Session LSN: not supported by drive/driver
__________________________________
CD Analysis Report
CD-ROM with CD-RTOS and ISO 9660 filesystem
ISO 9660: 676 blocks, label `SVIDEOCD '
Application: SVIDEOCD.APP;1
Preparer : GNU VCDIMAGER CHECK MODE
Publisher : PUBL_ID
System : CD-RTOS CD-BRIDGE
Volume : SVIDEOCD
Volume Set :
ISO9660 filesystem
/:
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00:00 ext
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00:00 mpeg2
d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00:00 segment
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00:00 svcd
/EXT/:
d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
----1xrxrxr 0 0 [fn 00] [LSN 675] 78 Jul 14 1978 00:00:00 scandata.dat
/MPEG2/:
d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
---2-xrxrxr 0 0 [fn 00] [LSN 826] 174300 ( 153600) Jul 14 1978 00:00:00 avseq01.mpg
---2-xrxrxr 0 0 [fn 00] [LSN 1051] 174300 ( 153600) Jul 14 1978 00:00:00 avseq02.mpg
---2-xrxrxr 0 0 [fn 00] [LSN 1276] 174300 ( 153600) Jul 14 1978 00:00:00 avseq03.mpg
---2-xrxrxr 0 0 [fn 00] [LSN 1501] 174300 ( 153600) Jul 14 1978 00:00:00 avseq04.mpg
/SEGMENT/:
d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
---2-xrxrxr 0 0 [fn 00] [LSN 225] 65072 ( 57344) Jul 14 1978 00:00:00 item0001.mpg
---2-xrxrxr 0 0 [fn 00] [LSN 375] 65072 ( 57344) Jul 14 1978 00:00:00 item0002.mpg
---2-xrxrxr 0 0 [fn 00] [LSN 525] 65072 ( 57344) Jul 14 1978 00:00:00 item0003.mpg
/SVCD/:
d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00:00 .
d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00:00 ..
----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00:00 entries.svd
----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00:00 info.svd
----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00:00 lot.svd
----1xrxrxr 0 0 [fn 00] [LSN 184] 112 Jul 14 1978 00:00:00 psd.svd
----1xrxrxr 0 0 [fn 00] [LSN 186] 40 Jul 14 1978 00:00:00 search.dat
----1xrxrxr 0 0 [fn 00] [LSN 185] 2048 Jul 14 1978 00:00:00 tracks.svd
XA sectors Super Video CD (SVCD) or Chaoji Video CD (CVD)
session #2 starts at track 2, LSN: 826, ISO 9660 blocks: 676
ISO 9660: 676 blocks, label `SVIDEOCD '