diff --git a/releng/README b/releng/README index e3c56e34..c64f3a9b 100644 --- a/releng/README +++ b/releng/README @@ -33,6 +33,8 @@ can be configured and built. It is not mandatory that libisoburn is already installed. The tests may use an installed xorriso program as well as a freshly built one. +>>> Do we really need to be glued to bash ? + +++ auto and manual tests @@ -69,6 +71,8 @@ go to directory ./releng, and execute or if you want to use an installed xorriso program: + ./run_all_auto -x $(which xorriso) +resp. ./run_all_auto -x $(type -p xorriso) @@ -102,16 +106,23 @@ the user or require sysadmin considerations before they are run: when libisofs was built. libjte is part of package jigit, version >= 1.18, available at: http://www.einval.com/~steve/software/JTE/ + For building it you will need gmake (which is default "make" on GNU/Linux). -./manual_devices -x ../xorriso/xorriso [-- [--dev device_file_to_use]] +./manual_devices -x ../xorriso/xorriso [-- [--dev device_file_to_use] + [--priv_cmd 'command [arg [arg ...]]']] Exercises listing of all accessible optical drives and the examination of a one of these drives. The user needs the permission to operate the CD drives. This might involve the need for superuser authority. The media tray of the examined drive will get loaded if it is not already. If no option --dev is given, then the user gets asked which of the listed drives to examine more closely. + If a privilege command and optional arguments are given with --priv_cmd, + then this command and arguments are used to laynch the xorriso runs. + Command and arguments must be single words and be submitted alltogether + as one single argument. On Solaris use: --priv_cmd pfexec ./manual_burn -x ../xorriso/xorriso [-- [--dev device_file_to_use] + [--priv_cmd 'command [arg [arg ...]]'] [--what ...directory...] [--any_media]] Burns the content of the directory given with --what onto re-usable media: CD-RW, DVD-RW, DVD-RAM, DVD+RW, BD-RE. @@ -120,6 +131,10 @@ the user or require sysadmin considerations before they are run: The result gets check read and compared with the state of the input directory. MD5 mismatch causes a test failure. Differences to the directory state are reported but still regarded as success. + If a privilege command and optional arguments are given with --priv_cmd, + then this command and arguments are used to laynch the xorriso runs. + Command and arguments must be single words and be submitted alltogether + as one single argument. On Solaris use: --priv_cmd pfexec >>> ./run_all_manual @@ -127,6 +142,17 @@ the user or require sysadmin considerations before they are run: >>> + Any auto_* script can be run on its own, regardless. >>> List auto tests +./auto_cxx + Exercises inclusion of xorriso/xorriso.h and libisoburn/libisoburn.h + in C++ programs and linking of the libraries. It might be necessary + to set compiler options by shell variable CFLAGS before running the test. + E.g. if the include headers libisofs.h and libburn.h are not found: + export CFLAGS="-I/usr/local/include" + +>>> ./auto_isocontent + +>>> ./auto_printsize + +++ give hints what to do with FAIL results. @@ -258,3 +284,7 @@ TODO: * auto_ tests should know whether they work underneath run_all_auto or whether they run standalone +* Port releng to FreeBSD. + - Make it run with /bin/sh . Remove all bashisms and GNU gimmicks. + + diff --git a/releng/manual_burn b/releng/manual_burn index d658a793..f2d633bf 100755 --- a/releng/manual_burn +++ b/releng/manual_burn @@ -17,6 +17,11 @@ Specific options: --any_media allow non re-usable MMC media, like CD-R or DVD+R. Allow paths to non-existing files, but disallow paths to existing regular files. + --priv_cmd 'command [arg [arg ...]]' + With drive operations execute xorriso as argument + of the given command (e.g. pfexec, sudo) with the + optionally given arguments: command arg arg xorriso ... + Command and arguments must be single words. Overview: Test burning to re-usable media CD-RW, DVD-RW, DVD-RAM, DVD+RW, BD-RE. By default, one-time usable media will be rejected deliberately. @@ -45,6 +50,7 @@ fi dev=/dev/cdrw what=../xorriso any_media=0 +priv_cmd= # Interpret specific options, they begin after the first --. next_is=ignore for i in "$@" @@ -63,6 +69,10 @@ do then what="$i" next_is="" + elif test "$next_is" = "priv_cmd" + then + priv_cmd="$i" + next_is="" elif test "$i" = "--dev" then next_is="dev" @@ -72,6 +82,9 @@ do elif test "$i" = "--any_media" then any_media=1 + elif test "$i" = "--priv_cmd" + then + next_is="priv_cmd" else echo >&2 echo "Unknown test specific option: $i" >&2 @@ -119,13 +132,13 @@ fi # Inspect media set +e -res=$("$RELENG_XORRISO" -outdev "$dev" 2>&1) +res=$(${priv_cmd} "$RELENG_XORRISO" -outdev "$dev" 2>&1) ret=$? set -e if test "$ret" -ne 0 then echo "$res" >&2 - echo "FAIL : ${SELF} : Non-zero exit value $ret with: $RELENG_XORRISO -outdev $dev" + echo "FAIL : ${SELF} : Non-zero exit value $ret with: ${priv_cmd} $RELENG_XORRISO -outdev $dev" echo cleanup exit 1 @@ -157,9 +170,9 @@ then fi # Perform burn run -echo "$RELENG_XORRISO" -for_backup -outdev "$dev" -blank as_needed -map "$what" /test +echo ${priv_cmd} "$RELENG_XORRISO" -for_backup -outdev "$dev" -blank as_needed -map "$what" /test set +e -"$RELENG_XORRISO" \ +${priv_cmd} "$RELENG_XORRISO" \ -for_backup \ -outdev "$dev" \ -blank as_needed \ @@ -189,10 +202,10 @@ then fi # Check read -echo "$RELENG_XORRISO" -for_backup -indev "$dev" \ +echo ${priv_cmd} "$RELENG_XORRISO" -for_backup -indev "$dev" \ -check_media event=FATAL -- \ -check_md5_r FATAL / -- set +e -"$RELENG_XORRISO" \ +${priv_cmd} "$RELENG_XORRISO" \ -for_backup \ -indev "$dev" \ -print '---check_media:' -check_media event=FATAL -- \ diff --git a/releng/manual_devices b/releng/manual_devices index 13e6ef2d..8b576635 100755 --- a/releng/manual_devices +++ b/releng/manual_devices @@ -10,6 +10,11 @@ print_specific_help() { cat << HLP Specific options: --dev path Suppress dialog and use path as drive address. + --priv_cmd 'command [arg [arg ...]]' + With drive operations execute xorriso as argument + of the given command (e.g. pfexec, sudo) with the + optionally given arguments: command arg arg xorriso ... + Command and arguments must be single words. Overview: Test device scanning and list of speeds. HLP @@ -37,6 +42,7 @@ fi # Interpret private options, they begin after the first --. dev= +priv_cmd= next_is=ignore for i in "$@" do @@ -50,9 +56,16 @@ do then dev="$i" next_is="" + elif test "$next_is" = "priv_cmd" + then + priv_cmd="$i" + next_is="" elif test "$i" = "--dev" then next_is="dev" + elif test "$i" = "--priv_cmd" + then + next_is="priv_cmd" else echo >&2 echo "Unknown test specific option: $i" >&2 @@ -75,8 +88,8 @@ fi # get_speeds() { - echo -e "\n${SELF}: Running: ${RELENG_XORRISO} -report_about WARNING -outdev ${1} -toc -list_formats -list_profiles out -list_speeds" - "$RELENG_XORRISO" -report_about WARNING -outdev "$1" \ + echo -e "\n${SELF}: Running: ${priv_cmd} ${RELENG_XORRISO} -report_about WARNING -outdev ${1} -toc -list_formats -list_profiles out -list_speeds" + ${priv_cmd} "$RELENG_XORRISO" -report_about WARNING -outdev "$1" \ -print '---toc :' -toc \ -print '---list_formats :' -list_formats \ -print '---list_profiles :' -list_profiles out \ @@ -98,7 +111,7 @@ get_devices() { then DEVICES="$1" else - DEVICES=$("$RELENG_XORRISO" $devices_opt 2>/dev/null | grep "\-dev") + DEVICES=$( ${priv_cmd} "$RELENG_XORRISO" $devices_opt 2>/dev/null | grep "\-dev") fi NUM_DEV=$(cat_var "$DEVICES" | wc -l) case "${NUM_DEV}" in @@ -142,7 +155,7 @@ get_devices() { # main "$RELENG_XORRISO" -version echo -e "\n${SELF}: Running: $RELENG_XORRISO $devices_opt ..." -devices=$("$RELENG_XORRISO" -report_about WARNING $devices_opt | grep "\-dev") +devices=$( ${priv_cmd} "$RELENG_XORRISO" -report_about WARNING $devices_opt | grep "\-dev") RET="$?" if test "$SIMULATE_FAILURE" = 1 then @@ -165,10 +178,11 @@ case ${RET} in ;; *) boldify - echo -ne "\n${SELF}: ${RELENG_XORRISO} $devices_opt returned ${RET}." + echo -ne "\n${SELF}: ${priv_cmd} ${RELENG_XORRISO} $devices_opt returned ${RET}." unboldify echo -e "\n${SELF}: Already mounted?" df -kh + exit 1 esac exit 0