12068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project#!/bin/sh
22068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project
32068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# These routines contain the filesystem generation code.
42068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# This code is sourced by the other scripts so that digest
52068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# generation is consistent.
62068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project
72068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# dgen - Exercises the -d directory option of genext2fs
82068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Creates an image with a file of given size
92068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Usage: dgen file-size number-of-blocks 
102068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectdgen () {
112068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	size=$1; blocks=$2
122068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	rm -rf test
132068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	mkdir -p test
142068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	cd test
152068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	if [ x$size = x0 ]; then
162068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project		> file.$1
172068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	else
182068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project		dd if=/dev/zero of=file.$1 bs=$size count=1 2>/dev/null
192068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	fi
202068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project        chmod 777 file.$1
212068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	TZ=UTC-11 touch -t 200502070321.43 file.$1 .
222068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	cd ..
232068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	./genext2fs -N 17 -b $blocks -d test -f -q ext2.img 
242068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project}
252068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project
262068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# fgen - Exercises the -f spec-file option of genext2fs
272068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Creates an image with the devices mentioned in the given spec file 
282068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Usage: fgen spec-file number-of-blocks 
292068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectfgen () {
302068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	fname=$1; blocks=$2; 
312068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	mkdir -p test
322068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	cp $fname test
332068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	TZ=UTC-11 touch -t 200502070321.43 test/$fname
342068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	./genext2fs -N 92 -b $blocks -D test/$fname -f ext2.img
352068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project}
362068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project
372068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# gen_cleanup - Remove the files generated by the above functions
382068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Usage: gen_cleanup
392068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectgen_cleanup () {
402068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	rm -rf ext2.img test
412068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project}
422068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project
432068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# calc_digest - Return the MD5 digest of the test image
442068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project# Usage: calc_digest
452068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectcalc_digest () {
462068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	digest=`md5sum ext2.img 2>/dev/null | cut -f 1 -d " "`
472068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	if [ x$digest != x ] ; then
482068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project 		echo $digest
492068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	else
502068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project		digest=`md5 ext2.img 2>/dev/null | cut -f 4 -d " "`
512068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project		echo $digest
522068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project	fi
532068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project}
542068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Project
552068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source ProjectLC_ALL=C
562068259fff846977bdd4262fa27ea6cb81d35a78The Android Open Source Projectexport LC_ALL
57