case8 1.21 KB
#!/bin/bash

TESTFILE=testfile.$$

./mkcart > $TESTFILE
. ./testlib.sh

export BBC_BAD_BLKS=
export BBC_READ_DBE_BLKS=
export BBC_WRITE_ERR_BLKS=

echo "Test (8) Replace existing file $1"

##### Add file first (already tested in case 1)
st=$(($RANDOM % 256))
dd if=common/rdata of=tmp.$$ bs=1 count=16384 skip=$st >$OUTPUT 2>&1
emsh << END_OF_FILE >$OUTPUT 2>&1
u ./$TESTFILE
B
F
A
P$2 tmp.$$
END_OF_FILE

cp ./$TESTFILE bkup.$$

st=$(($RANDOM % 256))
dd if=common/rdata of=tmp2.$$ bs=1 count=16384 skip=$st >$OUTPUT 2>&1
emsh << END_OF_FILE >out8.$$ 2>err8.$$
u ./$TESTFILE
B
A
P$2 tmp2.$$
G$2 tmp1.$$
END_OF_FILE

check_log 8 out
check_log 8 err

if ! cmp tmp2.$$ tmp1.$$; then
   echo "Failed (8): File not replaced"
   exit
fi
sz=4078
check_unchange bkup.$$ ./$TESTFILE 0 $sz "input" "result"

sz=$((4078 * 16400))
dd if=./$TESTFILE of=tmp.$$ skip=$sz bs=1 count=16384  >$OUTPUT 2>&1
if ! cmp tmp.$$ tmp2.$$; then
    echo "Failed (8): File not write at block 4078"
    exit
fi

gzip  -d -c Golden/$TESTID/fat8.gz > out.$$
sz=$((4080 * 16400))
dd if=./$TESTFILE of=tmp.$$ skip=$sz bs=1 >$OUTPUT 2>&1
if ! cmp tmp.$$ out.$$; then
    echo "Failed fat does not match"
    exit
fi
rm -rf  ./$TESTFILE err8.$$ out.$$ tmp*.$$  bkup.$$

exit 0