From 2068259fff846977bdd4262fa27ea6cb81d35a78 Mon Sep 17 00:00:00 2001 From: The Android Open Source Project Date: Tue, 3 Mar 2009 19:29:32 -0800 Subject: auto import from //depot/cupcake/@135843 --- test.sh | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 test.sh (limited to 'test.sh') diff --git a/test.sh b/test.sh new file mode 100755 index 0000000..dbe71ef --- /dev/null +++ b/test.sh @@ -0,0 +1,64 @@ +#!/bin/sh + +# This script generates a variety of filesystems and checks that they +# are identical to ones that are known to be mountable, and pass fsck +# and various other sanity checks. + +# Passing these tests is preferable to passing test-mount.sh because +# this script doesn't require root, and because passing these tests +# guarantees byte-for-byte agreement with other builds, ports, +# architectures, times of day etc. + +set -e + +. ./test-gen.lib + +# md5cmp - Calculate MD5 digest and compare it to an expected value. +# Usage: md5cmp expected-digest +md5cmp () { + checksum=$1 + md5=`calc_digest` + if [ x$md5 = x$checksum ] ; then + echo PASSED + else + echo FAILED + exit 1 + fi +} + +# dtest - Exercises the -d directory option of genext2fs +# Creates an image with a file of given size and verifies it +# Usage: dtest file-size number-of-blocks correct-checksum +dtest () { + size=$1; blocks=$2; checksum=$3 + echo Testing with file of size $size + dgen $size $blocks + md5cmp $checksum + gen_cleanup +} + +# ftest - Exercises the -f spec-file option of genext2fs +# Creates an image with the devices mentioned in the given spec +# file and verifies it +# Usage: ftest spec-file number-of-blocks correct-checksum +ftest () { + fname=$1; blocks=$2; checksum=$3 + echo Testing with devices file $fname + fgen $fname $blocks + md5cmp $checksum + gen_cleanup +} + +# NB: to regenerate these values, always use test-mount.sh, that is, +# replace the following lines with the output of +# sudo sh test-mount.sh|grep test + +dtest 0 4096 3bc6424b8fcd51a0de34ee59d91d5f16 +dtest 0 8193 f174804f6b433b552706cbbfc60c416d +dtest 0 8194 4855a55d0cbdc44584634df49ebd5711 +dtest 1 4096 09c569b6bfb45222c729c42d04d5451f +dtest 12288 4096 61febcbfbf32024ef99103fcdc282c39 +dtest 274432 4096 0c517803552c55c1806e4220b0a0164f +dtest 8388608 9000 e0e5ea15bced10ab486d8135584b5d8e +dtest 16777216 20000 fdf636eb905ab4dc1bf76dce5ac5d209 +ftest device_table.txt 4096 a0af06d944b11d2902dfd705484c64cc -- cgit v1.2.3