13
13
14
14
truncate_test () {
15
15
STARTSIZES=" $1 "
16
- HOTSIZES=" $2 "
17
- COLDSIZES=" $3 "
16
+ STARTSEEKS=" $2 "
17
+ HOTSIZES=" $3 "
18
+ COLDSIZES=" $4 "
18
19
tests/test.py << TEST
19
20
static const lfs_off_t startsizes[] = {$STARTSIZES };
21
+ static const lfs_off_t startseeks[] = {$STARTSEEKS };
20
22
static const lfs_off_t hotsizes[] = {$HOTSIZES };
21
23
22
24
lfs_mount(&lfs, &cfg) => 0;
@@ -33,6 +35,11 @@ tests/test.py << TEST
33
35
}
34
36
lfs_file_size(&lfs, &file[0]) => startsizes[i];
35
37
38
+ if (startseeks[i] != startsizes[i]) {
39
+ lfs_file_seek(&lfs, &file[0],
40
+ startseeks[i], LFS_SEEK_SET) => startseeks[i];
41
+ }
42
+
36
43
lfs_file_truncate(&lfs, &file[0], hotsizes[i]) => 0;
37
44
lfs_file_size(&lfs, &file[0]) => hotsizes[i];
38
45
@@ -107,25 +114,43 @@ TEST
107
114
108
115
echo " --- Cold shrinking truncate ---"
109
116
truncate_test \
117
+ " 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE " \
110
118
" 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE " \
111
119
" 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE " \
112
120
" 0, $SMALLSIZE , $MEDIUMSIZE , $LARGESIZE , 2*$LARGESIZE "
113
121
114
122
echo " --- Cold expanding truncate ---"
115
123
truncate_test \
124
+ " 0, $SMALLSIZE , $MEDIUMSIZE , $LARGESIZE , 2*$LARGESIZE " \
116
125
" 0, $SMALLSIZE , $MEDIUMSIZE , $LARGESIZE , 2*$LARGESIZE " \
117
126
" 0, $SMALLSIZE , $MEDIUMSIZE , $LARGESIZE , 2*$LARGESIZE " \
118
127
" 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE "
119
128
120
129
echo " --- Warm shrinking truncate ---"
121
130
truncate_test \
131
+ " 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE " \
122
132
" 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE " \
123
133
" 0, $SMALLSIZE , $MEDIUMSIZE , $LARGESIZE , 2*$LARGESIZE " \
124
134
" 0, 0, 0, 0, 0"
125
135
126
136
echo " --- Warm expanding truncate ---"
127
137
truncate_test \
128
138
" 0, $SMALLSIZE , $MEDIUMSIZE , $LARGESIZE , 2*$LARGESIZE " \
139
+ " 0, $SMALLSIZE , $MEDIUMSIZE , $LARGESIZE , 2*$LARGESIZE " \
140
+ " 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE " \
141
+ " 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE "
142
+
143
+ echo " --- Mid-file shrinking truncate ---"
144
+ truncate_test \
145
+ " 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE " \
146
+ " $LARGESIZE , $LARGESIZE , $LARGESIZE , $LARGESIZE , $LARGESIZE " \
147
+ " 0, $SMALLSIZE , $MEDIUMSIZE , $LARGESIZE , 2*$LARGESIZE " \
148
+ " 0, 0, 0, 0, 0"
149
+
150
+ echo " --- Mid-file expanding truncate ---"
151
+ truncate_test \
152
+ " 0, $SMALLSIZE , $MEDIUMSIZE , $LARGESIZE , 2*$LARGESIZE " \
153
+ " 0, 0, $SMALLSIZE , $MEDIUMSIZE , $LARGESIZE " \
129
154
" 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE " \
130
155
" 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE , 2*$LARGESIZE "
131
156
0 commit comments