#!/bin/sh
#
-# Create two blank tapes
+# Cleanup left over files -- both before and after test run
#
-OS=`uname`
-case ${OS} in
- SunOS)
- ready="No Additional Sense"
- ;;
- FreeBSD)
- ready="Current Driver State: at rest."
- ;;
- *)
- ready="ONLINE"
- ;;
-esac
-wait_for_drive() {
- i=0
- while [ $i -le 300 ]; do # Wait max 300 seconds
- if mt -f $1 status | grep ${ready} >/dev/null 2>&1; then
- break
- fi
-# debug "Device $1 - not ready, retrying..."
- sleep 1
- i=`expr $i + 1`
- done
-}
+# Write an EOF on tape in slot $SLOT1 and on tape in $SLOT2
+
+. scripts/functions
+
+scripts/cleanup
+
+
+# with disk-changer, we have to initialize slots
+init_slot @tape_drive@ $SLOT1
+init_slot @tape_drive@ $SLOT2
#
-# mt -f @tape_drive@ offline
-@changer_path@ -f @autochanger@ unload
-@changer_path@ -f @autochanger@ load 1
-wait_for_drive @tape_drive@
-mt -f @tape_drive@ rewind
-mt -f @tape_drive@ weof
-@changer_path@ -f @autochanger@ unload
-@changer_path@ -f @autochanger@ load 2
-wait_for_drive @tape_drive@
-mt -f @tape_drive@ rewind
-mt -f @tape_drive@ weof
-#@changer_path@ -f @autochanger@ unload
+# init first of two slots
+# optimize so we don't unnecessarily unload and load slots
+#
+if test x@autochanger@ != x/dev/null; then
+ slot=`$scripts/@changer_script@ @autochanger@ loaded 0 @tape_drive@ $DRIVE1`
+ case $slot in
+ 0)
+ $scripts/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1
+ slot=$SLOT1
+ ;;
+ $SLOT1)
+ slot=$SLOT1
+ ;;
+ $SLOT2)
+ slot=$SLOT2
+ ;;
+ *)
+ $scripts/@changer_script@ @autochanger@ unload $slot @tape_drive@ $DRIVE1
+ $scripts/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1
+ slot=$SLOT1
+ ;;
+ esac
+ init_drive @tape_drive@
+ $scripts/@changer_script@ @autochanger@ unload $slot @tape_drive@ $DRIVE1
+
+
+# init the other slot
+ case $slot in
+ $SLOT1)
+ $scripts/@changer_script@ @autochanger@ load $SLOT2 @tape_drive@ $DRIVE1
+ ;;
+ $SLOT2)
+ $scripts/@changer_script@ @autochanger@ load $SLOT1 @tape_drive@ $DRIVE1
+ ;;
+ *)
+ echo "Something went wrong. Expected $SLOT1 or $SLOT2, got $slot"
+ exit 1
+ esac
+ init_drive @tape_drive@
+fi