#!/bin/sh # These routines contain the filesystem generation code. # This code is sourced by the other scripts so that digest # generation is consistent. # dgen - Exercises the -d directory option of genext2fs # Creates an image with a file of given size # Usage: dgen file-size number-of-blocks dgen () { size=$1; blocks=$2 rm -rf test mkdir -p test cd test if [ x$size = x0 ]; then > file.$1 else dd if=/dev/zero of=file.$1 bs=$size count=1 2>/dev/null fi chmod 777 file.$1 TZ=UTC-11 touch -t 200502070321.43 file.$1 . cd .. ./genext2fs -N 17 -b $blocks -d test -f -q ext2.img } # fgen - Exercises the -f spec-file option of genext2fs # Creates an image with the devices mentioned in the given spec file # Usage: fgen spec-file number-of-blocks fgen () { fname=$1; blocks=$2; mkdir -p test cp $fname test TZ=UTC-11 touch -t 200502070321.43 test/$fname ./genext2fs -N 92 -b $blocks -D test/$fname -f ext2.img } # gen_cleanup - Remove the files generated by the above functions # Usage: gen_cleanup gen_cleanup () { rm -rf ext2.img test } # calc_digest - Return the MD5 digest of the test image # Usage: calc_digest calc_digest () { digest=`md5sum ext2.img 2>/dev/null | cut -f 1 -d " "` if [ x$digest != x ] ; then echo $digest else digest=`md5 ext2.img 2>/dev/null | cut -f 4 -d " "` echo $digest fi } LC_ALL=C export LC_ALL