casea
1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash
TESTFILE=testfile.$$
./mkcart > $TESTFILE
. ./testlib.sh
export BBC_BAD_BLKS=
export BBC_READ_DBE_BLKS=
export BBC_WRITE_ERR_BLKS=
echo "Test (10) Replace existing file $1 with bad block"
##### 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.$$
export BBC_BAD_BLKS=4078
st=$(($RANDOM % 256))
dd if=common/rdata of=tmp2.$$ bs=1 count=16384 skip=$st >$OUTPUT 2>&1
emsh << END_OF_FILE >outa.$$ 2>erra.$$
u ./$TESTFILE
B
A
P$2 tmp2.$$
G$2 tmp1.$$
END_OF_FILE
check_log a out
check_log a err
if ! cmp tmp2.$$ tmp1.$$; then
echo "Failed (10): File not replaced"
exit
fi
sz=4077
check_unchange bkup.$$ ./$TESTFILE 0 $sz "input" "result"
check_unchange bkup.$$ ./$TESTFILE $(($sz + 1)) 1 "input" "result"
sz=$((4077 * 16400))
dd if=./$TESTFILE of=tmp.$$ skip=$sz bs=1 count=16384 >$OUTPUT 2>&1
if ! cmp tmp.$$ tmp2.$$; then
echo "Failed (10): File not write at block 4077"
exit
fi
gzip -d -c Golden/$TESTID/fata.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 erra.$$ out.$$ tmp*.$$ bkup.$$
exit 0