Blame test/endian.sh.in

Packit cb6d3d
#!/bin/sh
Packit cb6d3d
#
Packit cb6d3d
# Perform a round-trip test between big-endian and little-endian
Packit cb6d3d
# BIN/CUE to see if we can read both files correctly.
Packit cb6d3d
#
Packit cb6d3d
set -e
Packit cb6d3d
: ${CMP:="@CMP@"}
Packit cb6d3d
: ${WC:="@WC@"}
Packit cb6d3d
: ${abs_builddir:="@abs_builddir@"}
Packit cb6d3d
: ${abs_srcdir:="@abs_srcdir@"}
Packit cb6d3d
: ${abs_top_builddir:="@abs_top_builddir@"}
Packit cb6d3d
Packit cb6d3d
cd_paranoia="${abs_top_builddir}/src/cd-paranoia@EXEEXT@"
Packit cb6d3d
Packit cb6d3d
orig_le_cue_file="${abs_srcdir}/data/cdda.cue"
Packit cb6d3d
orig_le_bin_file="${abs_srcdir}/data/cdda.bin"
Packit cb6d3d
Packit cb6d3d
be_cue_file="${abs_builddir}/cdda-be.cue"
Packit cb6d3d
be_bin_file="${abs_builddir}/cdda-be.bin"
Packit cb6d3d
Packit cb6d3d
le_cue_file="${abs_builddir}/cdda-le.cue"
Packit cb6d3d
le_bin_file="${abs_builddir}/cdda-le.bin"
Packit cb6d3d
Packit cb6d3d
if test "${CMP}" = no; then
Packit cb6d3d
    echo "Don't see 'cmp' program. Test skipped."
Packit cb6d3d
    exit 77
Packit cb6d3d
Packit cb6d3d
elif test "${WC}" = no; then
Packit cb6d3d
    echo "Don't see 'wc' program. Test skipped."
Packit cb6d3d
    exit 77
Packit cb6d3d
fi
Packit cb6d3d
Packit cb6d3d
# Convert from little-endian to big-endian.
Packit cb6d3d
cat "${orig_le_cue_file}" > "${be_cue_file}"
Packit cb6d3d
${cd_paranoia} -d "${orig_le_cue_file}" -v -R -- "1-" "${be_bin_file}"
Packit cb6d3d
Packit cb6d3d
# The contents of these two .bin files should differ, but they should
Packit cb6d3d
# have the same length.
Packit cb6d3d
if test `${WC} -c < "${orig_le_bin_file}"` -ne `${WC} -c < "${be_bin_file}"`; then
Packit cb6d3d
    echo "** File sizes differ after byte swap"
Packit cb6d3d
    exit 3
Packit cb6d3d
Packit cb6d3d
elif ${CMP} -s "${orig_le_bin_file}" "${be_bin_file}"; then
Packit cb6d3d
    echo "** Identical raw file after byte swap"
Packit cb6d3d
    exit 3
Packit cb6d3d
fi
Packit cb6d3d
Packit cb6d3d
# Convert it back to little-endian.
Packit cb6d3d
cat "${be_cue_file}" > "${le_cue_file}"
Packit cb6d3d
${cd_paranoia} -d "${be_cue_file}" -v -r -- "1-" "${le_bin_file}"
Packit cb6d3d
Packit cb6d3d
# It should round-trip to the original file.
Packit cb6d3d
if ${CMP} "${le_bin_file}" "${orig_le_bin_file}"; then
Packit cb6d3d
    echo "** Identical raw file after round-trip"
Packit cb6d3d
    exit 0
Packit cb6d3d
else
Packit cb6d3d
    echo "** Raw files differ after round-trip"
Packit cb6d3d
    exit 3
Packit cb6d3d
fi