blob: 44ff6bb849c102b5c50960b718a19f78a322c4a3 (
plain)
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
#!/bin/sh
IMAGE=disk.img
MOUNT=/mnt/dummy
RESULT=result.txt
fail() {
echo "!! Test failed. Look in $RESULT for test logs."
exit
}
check() {
/sbin/dosfsck -r $IMAGE | tee -a $RESULT
[ $RETVAL -ne 0 ] && fail
}
try() {
echo COMMAND: fat $1 "$2" "$3"
echo COMMAND: fat $1 "$2" "$3" >> $RESULT
./fat $1 "$2" "$3" 2>> $RESULT
RETVAL=$?
[ $RETVAL -ne 0 ] && fail
}
buildimage() {
/sbin/mkdosfs -F 32 -s $1 $IMAGE > /dev/null
mount -o loop $IMAGE $MOUNT
echo "Filling it with /etc files"
find /etc -type f -maxdepth 1 -exec cp {} $MOUNT \;
for i in `seq 1 120`;
do
echo apa > "$MOUNT/very $i long test filename so we can make sure they.work"
done
mkdir $MOUNT/dir
umount $MOUNT
}
runtests() {
rm $RESULT
echo ---Test: create a 10K file
try mkfile "/really long filenames rock" 10
check
try mkfile /dir/apa.monkey.me.now 10
check
try chkfile "/really long filenames rock" 10
try chkfile /dir/apa.monkey.me.now 8
echo ---Test: create a 1K file
try mkfile /bpa.rock 1
check
try chkfile /bpa.rock 1
echo ---Test: create a 40K file
try mkfile /cpa.rock 40
check
try chkfile /cpa.rock 40
echo ---Test: create a 400K file
try mkfile /dpa.rock 400
check
try chkfile /dpa.rock 400
echo ---Test: create a 1200K file
try mkfile /epa.rock 1200
check
try chkfile /epa.rock 1200
echo ---Test: rewrite first 20K of a 40K file
try mkfile /cpa.rock 20
check
try chkfile /cpa.rock 20
echo ---Test: rewrite first sector of 40K file
try mkfile /cpa.rock 0
check
try chkfile /cpa.rock
try chkfile /bpa.rock
LOOP=50
SIZE=700
try del "/really long filenames rock"
echo ---Test: create $LOOP $SIZE k files
for i in `seq 1 $LOOP`;
do
echo ---Test: $i/$LOOP ---
try mkfile "/rockbox rocks.$i" $SIZE
check
try chkfile "/rockbox rocks.$i" $SIZE
check
try del "/rockbox rocks.$i"
check
try mkfile "/rockbox rocks.$i" $SIZE
check
try ren "/rockbox rocks.$i" "$i is a new long filename!"
check
done
}
echo "Building test image (4 sector/cluster)"
buildimage 4
runtests
echo "Building test image (32 sectors/cluster)"
buildimage 32
runtests
echo "Building test image (1 sector/cluster)"
buildimage 1
runtests
echo "Building test image (8 sectors/cluster)"
buildimage 8
runtests
echo "Building test image (128 sectors/cluster)"
buildimage 128
runtests
echo "== Test completed sucessfully =="
|