1#/bin/sh 2# Check that a digital audio CD with a start track number of >1 works. 3 4if test ! -d "$abs_top_builddir" ; then 5 abs_top_builddir=/src/external-vcs/github/rocky/libcdio-paranoia 6fi 7 8if test ! -d "$abs_top_srcdir" ; then 9 abs_top_srcdir=/src/external-vcs/github/rocky/libcdio-paranoia 10fi 11 12if test ! -d "abs_top_builddir" ; then 13 abs_top_builddir=/src/external-vcs/github/rocky/libcdio-paranoia 14fi 15 16test_dir=$abs_top_srcdir/test 17test_build_dir=$abs_top_builddir/test 18 19set -e 20 21if [ $($abs_top_builddir/test/get_libcdio_version) -le 20000 ] ; then 22 exit 77 23fi 24 25cd_paranoia=$abs_top_builddir/src/cd-paranoia 26base=start_track_not_one 27orig_cdda=$test_dir/data/cdda.bin 28 29# First we make a longer CDDA image. 30cdda=$test_build_dir/$base.bin 31cat $orig_cdda $orig_cdda $orig_cdda > $cdda 32 33# And a CUE file with a non-one start track. 34cue=$test_build_dir/$base.cue 35cat << EOF > $cue 36FILE "$cdda" BINARY 37 TRACK 07 AUDIO 38 FLAGS DCP 39 INDEX 01 00:00:00 40 TRACK 08 AUDIO 41 FLAGS DCP 42 INDEX 01 00:04:02 43 TRACK 09 AUDIO 44 FLAGS DCP 45 INDEX 01 00:08:04 46EOF 47 48# Use an awk program to parse/verify the TOC. 49# We check that we see only tracks 7, 8 and 9. 50awk_prog=' 51BEGIN { expect_track = 7; in_toc = 0; err = 0; num_tracks = 0 } 52/^TOTAL/ { in_toc = 0 } 53in_toc == 1 { 54 if ($1 != expect_track ".") { 55 print "Expected track " expect_track ", got " $1; 56 err = 1 57 } 58 expect_track ++; 59 num_tracks ++; 60 } 61/^===/ { in_toc = 1 } 62END { 63 if (num_tracks != 3) { 64 print "Number of tracks was not 3."; 65 err = 1 66 } 67 exit err; 68 } 69' 70 71$cd_paranoia -Q -d $cue 2>&1 | gawk "$awk_prog" 72