1#!/bin/sh 2 3# These routines contain the filesystem generation code. 4# This code is sourced by the other scripts so that digest 5# generation is consistent. 6 7# dgen - Exercises the -d directory option of genext2fs 8# Creates an image with a file of given size 9# Usage: dgen file-size number-of-blocks 10dgen () { 11 size=$1; blocks=$2 12 rm -rf test 13 mkdir -p test 14 cd test 15 if [ x$size = x0 ]; then 16 > file.$1 17 else 18 dd if=/dev/zero of=file.$1 bs=$size count=1 2>/dev/null 19 fi 20 chmod 777 file.$1 21 TZ=UTC-11 touch -t 200502070321.43 file.$1 . 22 cd .. 23 ./genext2fs -N 17 -b $blocks -d test -f -q ext2.img 24} 25 26# fgen - Exercises the -f spec-file option of genext2fs 27# Creates an image with the devices mentioned in the given spec file 28# Usage: fgen spec-file number-of-blocks 29fgen () { 30 fname=$1; blocks=$2; 31 mkdir -p test 32 cp $fname test 33 TZ=UTC-11 touch -t 200502070321.43 test/$fname 34 ./genext2fs -N 92 -b $blocks -D test/$fname -f ext2.img 35} 36 37# gen_cleanup - Remove the files generated by the above functions 38# Usage: gen_cleanup 39gen_cleanup () { 40 rm -rf ext2.img test 41} 42 43# calc_digest - Return the MD5 digest of the test image 44# Usage: calc_digest 45calc_digest () { 46 digest=`md5sum ext2.img 2>/dev/null | cut -f 1 -d " "` 47 if [ x$digest != x ] ; then 48 echo $digest 49 else 50 digest=`md5 ext2.img 2>/dev/null | cut -f 4 -d " "` 51 echo $digest 52 fi 53} 54 55LC_ALL=C 56export LC_ALL 57