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