#!/bin/bash set -e START_DIR_DONT_CHANGE=`pwd` SELF=$(basename "$0") # required config items RELENG_XORRISO="" RELENG_DIR="" RELENG_IMG="" CONFFILE=$HOME/.libburnia-releng/${SELF}.conf KEEP=0 GEN_DATA_DIR=releng_generated_data/${SELF} printf "\n$0: FAIL: SCRIPT NOT COMPLETED YET\n" exit 31 print_help() { cat << HLP Usage: ${SELF} -help # using a config file ${CONFFILE} ${SELF} -rc [-keep] # without using a config file ${SELF} xorriso_cmd IN_dir OUT_image [-keep] # cleanup test generated data directory and exit ${SELF} -cleanup HLP } # 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 'FAIL: Original disk tree and temporary tree differ' else echo "Success." fi # Clean up rm -r "$copy_on_disk" "$image_file" ------------------------------------------------------------------------------ exit 0