+++ /dev/null
-#!/bin/bash
-
-typeset -i I ITERATIONS PHASE LOC COUNT MAXCOUNT
-
-ME=`basename $0`
-
-if [ "$#" -ne 3 ]
-then
- echo "$ME: Usage: $ME <iterations> <maxcount> <filesystem_image>" >&2
- exit 1;
-fi
-
-ITERATIONS="$1"
-MAXCOUNT="$2"
-ORIG_FS_IMAGE="$3"
-FIXED_FS_IMAGE="/tmp/fixedfsimage.$$"
-NEW_FS_IMAGE="/tmp/newfsimage.$$"
-
-if [ ! -f "$ORIG_FS_IMAGE" ]
-then
- echo "$ME: Filesystem image $NEW_FS_IMAGE does not exist" >&2
- exit 1
-fi
-
-trap "rm -f $NEW_FS_IMAGE $FIXED_FS_IMAGE" 0 1 2 3 15
-
-rm -f "$NEW_FS_IMAGE" "$FIXED_FS_IMAGE"
-
-# Create the fixed image to compare against
-cp "$ORIG_FS_IMAGE" "$FIXED_FS_IMAGE"
-ext4fixup "$FIXED_FS_IMAGE"
-
-if [ "$?" -ne 0 ]
-then
- echo "$ME: ext4fixup failed!\n"
- exit 1
-fi
-
-I=0
-while [ "$I" -lt "$ITERATIONS" ]
-do
- # There is also a phase 4, which is writing out the updated superblocks and
- # block group descriptors. Test the with a separate script.
- let PHASE="$RANDOM"%3 # 0 to 2
- let PHASE++ # 1 to 3
- let LOC="$RANDOM"%2 # 0 to 1
- let LOC++ # 1 to 2
- let COUNT="$RANDOM"%"$MAXCOUNT"
-
- # Make a copy of the original image to fixup
- cp "$ORIG_FS_IMAGE" "$NEW_FS_IMAGE"
-
- # Run the fixup tool, but die partway through to see if we can recover
- ext4fixup -d "$PHASE,$LOC,$COUNT" "$NEW_FS_IMAGE" 2>/dev/null
-
- # run it again without -d to have it finish the job
- ext4fixup "$NEW_FS_IMAGE"
-
- if cmp "$FIXED_FS_IMAGE" "$NEW_FS_IMAGE"
- then
- :
- else
- echo "$ME: test failed with parameters $PHASE, $LOC, $COUNT"
- exit 1
- fi
-
- rm -f "$NEW_FS_IMAGE"
-
- let I++
-done
-