libisoburn/releng/releng_check_isocontent

90 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
set -e
START_DIR_DONT_CHANGE=`pwd`
# required config items
XOR=""
DIR=""
IMG=""
printf "\n$0: SCRIPT NOT COMPLETED YET\n"
exit 100
# Thomas:
# xorriso provides built-in means for comparison:
# -compare_r disk_path iso_rr_path
# Possibly i will have to enhance it so that it is suitable for automatic
# testing. (I used it mainly for testing -update_r.)
# xorriso could use
# -osirrox on -extract iso_rr_path disk_path
# to pull a tree out of the image without mounting it.
# One could mount the image -o loop. (Needs superuser authority.)
# There is a program test/compare_file which acts on a mounted image
# or on extracted trees i.e. completely independent of xorriso code.
# See libisoburn/README paragraph "Testing".
# With extracted trees one will want to use option -no_ctime.
# One may use command diff -r to compare directory trees of a mounted image
# or extracted trees.
# George:
# xorriso -indev my.iso -find / vs. find input_dir
# bsdtar -xf my.iso vs. input_dir
Sketched by Thomas:
------------------------------------------------------------------------------
image_file=/tmp/...
on_disk=...
in_iso="$on_disk"
copy_on_disk=/tmp/...
if test -e "$image_file"
then
echo "TEST ENVIRONMENT ERROR: Existing image_file target:" >&2
ls -ld "$image_file" >&2
exit 1
fi
if test -e "$copy_on_disk"
then
echo "TEST ENVIRONMENT ERROR: Existing copy_on_disk target:" >&2
ls -ld "$copy_on_disk" >&2
exit 1
fi
# Produce simple image
xorriso \
-for_backup \
-outdev "$image_file" \
-map "$on_disk" "$in_iso"
# Copy from image to temporary disk tree
xorriso \
-for_backup \
-indev "$image_file" \
-osirrox on \
-extract "$in_iso" "$copy_on_disk"
# Compare original disk tree and temporary one
diff -r "$on_disk" "$copy_on_disk"
if test "$?" -ne 0
then
echo 'FAILURE !!!'
else
echo "Success."
fi
# Clean up
rm -r "$copy_on_disk" "$image_file"
------------------------------------------------------------------------------
exit 0