2 * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
4 * Copyright (C) 2002-2018 Aleph One Ltd.
6 * Created by Timothy Manning <timothy@yaffs.net>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU Lesser General Public License version 2.1 as
10 * published by the Free Software Foundation.
12 * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
15 #ifndef __quick_tests_h__
16 #define __quick_tests_h__
20 #include "test_yaffs_mount.h"
21 #include "test_yaffs_mount_ENODEV.h"
22 #include "test_yaffs_mount_ENAMETOOLONG.h"
23 #include "test_yaffs_mount_EBUSY.h"
24 #include "test_yaffs_mount_NULL.h"
26 #include "test_yaffs_unmount.h"
27 #include "test_yaffs_unmount_ENODEV.h"
28 #include "test_yaffs_unmount_ENAMETOOLONG.h"
29 #include "test_yaffs_unmount_EBUSY.h"
31 #include "test_yaffs_open.h"
32 #include "test_yaffs_open_EEXIST.h"
33 #include "test_yaffs_open_ENOENT.h"
34 #include "test_yaffs_open_ENOTDIR.h"
35 #include "test_yaffs_open_ENAMETOOLONG.h"
36 #include "test_yaffs_open_EINVAL.h"
37 #include "test_yaffs_open_EINVAL2.h"
38 #include "test_yaffs_open_ELOOP.h"
39 #include "test_yaffs_open_ELOOP_dir.h"
40 #include "test_yaffs_open_EROFS.h"
41 #include "test_yaffs_open_EACCES.h"
42 #include "test_yaffs_open_NULL.h"
44 #include "test_yaffs_close_EBADF.h"
45 #include "test_yaffs_close_NULL.h"
47 #include "test_yaffs_unlink.h"
48 #include "test_yaffs_unlink_EISDIR.h"
49 #include "test_yaffs_unlink_ENOENT.h"
50 #include "test_yaffs_unlink_ENAMETOOLONG.h"
51 #include "test_yaffs_unlink_ENOTDIR.h"
52 #include "test_yaffs_unlink_ENOENT.h"
53 #include "test_yaffs_unlink_ENOENT2.h"
54 #include "test_yaffs_unlink_ELOOP_dir.h"
55 #include "test_yaffs_unlink_EROFS.h"
56 #include "test_yaffs_unlink_NULL.h"
58 #include "test_yaffs_ftruncate.h"
59 #include "test_yaffs_ftruncate_EBADF.h"
60 #include "test_yaffs_ftruncate_EINVAL.h"
61 #include "test_yaffs_ftruncate_big_file.h"
62 #include "test_yaffs_ftruncate_EROFS.h"
65 #include "test_yaffs_truncate.h"
66 #include "test_yaffs_truncate_ENOTDIR.h"
67 #include "test_yaffs_truncate_EISDIR.h"
68 #include "test_yaffs_truncate_ENOENT.h"
69 #include "test_yaffs_truncate_EINVAL.h"
70 #include "test_yaffs_truncate_big_file.h"
71 #include "test_yaffs_truncate_ENOENT2.h"
72 #include "test_yaffs_truncate_ELOOP.h"
73 #include "test_yaffs_truncate_ELOOP_dir.h"
74 #include "test_yaffs_truncate_EROFS.h"
75 #include "test_yaffs_truncate_ENAMETOOLONG.h"
76 #include "test_yaffs_truncate_NULL.h"
78 #include "test_yaffs_write.h"
79 #include "test_yaffs_write_EBADF.h"
80 #include "test_yaffs_write_big_file.h"
81 #include "test_yaffs_write_EROFS.h"
83 #include "test_yaffs_read.h"
84 #include "test_yaffs_read_EBADF.h"
85 //#include "test_yaffs_read_EINVAL.h"
87 #include "test_yaffs_lseek.h"
88 #include "test_yaffs_lseek_EBADF.h"
89 #include "test_yaffs_lseek_EINVAL.h"
90 #include "test_yaffs_lseek_big_file.h"
92 #include "test_yaffs_access.h"
93 #include "test_yaffs_access_EINVAL.h"
94 #include "test_yaffs_access_ENOTDIR.h"
95 #include "test_yaffs_access_ENOENT.h"
96 #include "test_yaffs_access_ENOENT2.h"
97 #include "test_yaffs_access_ELOOP_dir.h"
98 #include "test_yaffs_access_ELOOP.h"
99 #include "test_yaffs_access_EROFS.h"
100 #include "test_yaffs_access_EACCES.h"
101 #include "test_yaffs_access_ENAMETOOLONG.h"
102 #include "test_yaffs_access_NULL.h"
104 #include "test_yaffs_stat.h"
105 #include "test_yaffs_stat_ENOENT.h"
106 #include "test_yaffs_stat_ENOTDIR.h"
107 #include "test_yaffs_stat_ENOENT2.h"
108 #include "test_yaffs_stat_ELOOP.h"
109 #include "test_yaffs_stat_ELOOP_dir.h"
110 #include "test_yaffs_stat_ENAMETOOLONG.h"
111 #include "test_yaffs_stat_NULL.h"
113 #include "test_yaffs_fstat.h"
114 #include "test_yaffs_fstat_EBADF.h"
117 #include "test_yaffs_chmod.h"
118 #include "test_yaffs_chmod_ENOENT.h"
119 #include "test_yaffs_chmod_ENOTDIR.h"
120 #include "test_yaffs_chmod_EINVAL.h"
121 #include "test_yaffs_chmod_ENOENT2.h"
122 #include "test_yaffs_chmod_ELOOP_dir.h"
123 #include "test_yaffs_chmod_ELOOP.h"
124 #include "test_yaffs_chmod_EROFS.h"
125 #include "test_yaffs_chmod_ENAMETOOLONG.h"
126 #include "test_yaffs_chmod_NULL.h"
128 #include "test_yaffs_fchmod.h"
129 #include "test_yaffs_fchmod_EBADF.h"
130 #include "test_yaffs_fchmod_EINVAL.h"
131 #include "test_yaffs_fchmod_EROFS.h"
132 #include "test_yaffs_fchmod_NULL.h"
134 #include "test_yaffs_fsync.h"
135 #include "test_yaffs_fsync_EBADF.h"
136 #include "test_yaffs_fsync_EROFS.h"
138 #include "test_yaffs_fdatasync.h"
139 #include "test_yaffs_fdatasync_EBADF.h"
140 #include "test_yaffs_fdatasync_EROFS.h"
141 #include "test_yaffs_fdatasync_NULL.h"
143 #include "test_yaffs_mkdir.h"
144 #include "test_yaffs_mkdir_EEXIST.h"
145 #include "test_yaffs_mkdir_ENOTDIR.h"
146 #include "test_yaffs_mkdir_ENOENT.h"
147 #include "test_yaffs_mkdir_ELOOP_dir.h"
148 #include "test_yaffs_mkdir_EROFS.h"
149 #include "test_yaffs_mkdir_ENAMETOOLONG.h"
150 #include "test_yaffs_mkdir_NULL.h"
152 #include "test_yaffs_symlink.h"
153 #include "test_yaffs_symlink_ENOTDIR.h"
154 #include "test_yaffs_symlink_EEXIST.h"
155 #include "test_yaffs_symlink_ENOENT.h"
156 #include "test_yaffs_symlink_ENOENT2.h"
157 #include "test_yaffs_symlink_ELOOP_dir.h"
158 #include "test_yaffs_symlink_EROFS.h"
159 #include "test_yaffs_symlink_ENAMETOOLONG.h"
160 #include "test_yaffs_symlink_NULL.h"
161 #include "test_yaffs_symlink_NULL2.h"
163 #include "test_yaffs_mount2.h"
164 #include "test_yaffs_mount2_ENODEV.h"
166 #include "test_yaffs_unmount2.h"
167 #include "test_yaffs_unmount2_ENODEV.h"
168 #include "test_yaffs_unmount2_EINVAL.h"
169 #include "test_yaffs_unmount2_with_handle_open_and_forced_mode_on.h"
170 #include "test_yaffs_unmount2_with_handle_open_and_forced_mode_off.h"
171 #include "test_yaffs_unmount_NULL.h"
173 #include "test_yaffs_sync.h"
174 #include "test_yaffs_sync_ENODEV.h"
175 #include "test_yaffs_sync_EROFS.h"
176 #include "test_yaffs_sync_ENAMETOOLONG.h"
177 #include "test_yaffs_sync_NULL.h"
179 #include "test_yaffs_remount_force_off_read_only_off.h"
180 #include "test_yaffs_remount_force_on_read_only_off.h"
181 #include "test_yaffs_remount_ENODEV.h"
182 #include "test_yaffs_remount_EINVAL.h"
183 #include "test_yaffs_remount_ENAMETOOLONG.h"
184 #include "test_yaffs_remount_NULL.h"
186 #include "test_yaffs_freespace.h"
187 #include "test_yaffs_freespace_EINVAL.h"
188 #include "test_yaffs_freespace_ENAMETOOLONG.h"
189 #include "test_yaffs_freespace_NULL.h"
191 #include "test_yaffs_totalspace.h"
192 #include "test_yaffs_totalspace_EINVAL.h"
193 #include "test_yaffs_totalspace_ENAMETOOLONG.h"
194 #include "test_yaffs_totalspace_NULL.h"
196 #include "test_yaffs_inodecount.h"
197 #include "test_yaffs_inodecount_EINVAL.h"
198 #include "test_yaffs_inodecount_ENAMETOOLONG.h"
199 #include "test_yaffs_inodecount_NULL.h"
201 #include "test_yaffs_link.h"
202 #include "test_yaffs_link_ENOENT.h"
203 #include "test_yaffs_link_EEXIST.h"
204 #include "test_yaffs_link_ENOTDIR.h"
205 #include "test_yaffs_link_ENOTDIR2.h"
206 #include "test_yaffs_link_ENOENT2.h"
207 #include "test_yaffs_link_ENOENT3.h"
208 #include "test_yaffs_link_ENOENT4.h"
209 #include "test_yaffs_link_ELOOP_dir.h"
210 #include "test_yaffs_link_EROFS.h"
211 #include "test_yaffs_link_ENAMETOOLONG.h"
212 #include "test_yaffs_link_ENAMETOOLONG2.h"
213 #include "test_yaffs_link_NULL.h"
214 #include "test_yaffs_link_NULL2.h"
216 #include "test_yaffs_rmdir.h"
217 #include "test_yaffs_rmdir_EBUSY.h"
218 #include "test_yaffs_rmdir_EINVAL.h"
219 #include "test_yaffs_rmdir_ENOENT.h"
220 #include "test_yaffs_rmdir_ENOTDIR.h"
221 #include "test_yaffs_rmdir_ELOOP_dir.h"
222 #include "test_yaffs_rmdir_EROFS.h"
223 #include "test_yaffs_rmdir_ENAMETOOLONG.h"
224 #include "test_yaffs_rmdir_ENOTEMPTY.h"
226 #include "test_yaffs_rename.h"
227 #include "test_yaffs_rename_ENOENT.h"
228 #include "test_yaffs_rename_ENOTDIR.h"
229 #include "test_yaffs_rename_EINVAL.h"
230 #include "test_yaffs_rename_dir.h"
231 #include "test_yaffs_rename_dir_ENOENT.h"
232 #include "test_yaffs_rename_dir_ENOENT2.h"
233 #include "test_yaffs_rename_dir_to_file.h"
234 #include "test_yaffs_rename_file_to_dir.h"
235 #include "test_yaffs_rename_EEXISTS.h"
236 #include "test_yaffs_rename_ELOOP_dir.h"
237 #include "test_yaffs_rename_EROFS.h"
238 #include "test_yaffs_rename_ENAMETOOLONG.h"
239 #include "test_yaffs_rename_ENAMETOOLONG2.h"
240 #include "test_yaffs_rename_NULL.h"
241 #include "test_yaffs_rename_NULL2.h"
242 #include "test_yaffs_rename_file_over_file.h"
243 #include "test_yaffs_rename_dir_over_dir.h"
244 #include "test_yaffs_rename_to_null_file.h"
245 #include "test_yaffs_rename_full_dir_over_dir.h"
246 #include "test_yaffs_rename_ENOTEMPTY.h"
248 #include "test_yaffs_lstat.h"
249 #include "test_yaffs_lstat_ENOENT.h"
250 #include "test_yaffs_lstat_ENOTDIR.h"
251 #include "test_yaffs_lstat_ENAMETOOLONG.h"
252 #include "test_yaffs_lstat_NULL.h"
254 #include "test_yaffs_flush.h"
255 #include "test_yaffs_flush_EBADF.h"
256 #include "test_yaffs_flush_EROFS.h"
258 #include "test_yaffs_dup.h"
259 #include "test_yaffs_dup_EBADF.h"
267 typedef struct test {
268 int (*p_function)(void); /*pointer to test function*/
269 int (*p_function_clean)(void);
270 /*char pass_message[50]; will not need a pass message*/
271 char *name_of_test; /*pointer to fail message, needs to include name of test*/
275 test_template test_list[]={
276 {test_yaffs_mount,test_yaffs_mount_clean,"test_yaffs_mount"},
277 {test_yaffs_mount_ENODEV,test_yaffs_mount_ENODEV_clean,"test_yaffs_mount_ENODEV"},
278 {test_yaffs_mount_ENAMETOOLONG,test_yaffs_mount_ENAMETOOLONG_clean,"test_yaffs_mount_ENAMETOOLONG"},
279 {test_yaffs_mount_EBUSY,test_yaffs_mount_EBUSY_clean,"test_yaffs_mount_EBUSY"},
280 {test_yaffs_mount_NULL,test_yaffs_mount_NULL_clean,"test_yaffs_mount_NULL"},
282 {test_yaffs_unmount,test_yaffs_unmount_clean,"test_yaffs_unmount"},
283 {test_yaffs_unmount_ENODEV,test_yaffs_unmount_ENODEV_clean,"test_yaffs_unmount_ENODEV"},
284 {test_yaffs_unmount_ENAMETOOLONG,test_yaffs_unmount_ENAMETOOLONG_clean,"test_yaffs_unmount_ENAMETOOLONG"},
285 {test_yaffs_unmount_EBUSY,test_yaffs_unmount_EBUSY_clean,"test_yaffs_unmount_EBUSY"},
287 {test_yaffs_open,test_yaffs_open_clean,"test_yaffs_open"},
288 {test_yaffs_open_EEXIST,test_yaffs_open_EEXIST_clean,"test_yaffs_open_EEXIST"},
289 {test_yaffs_open_ENOTDIR,test_yaffs_open_ENOTDIR_clean,"test_yaffs_open_ENOTDIR"},
290 {test_yaffs_open_ENOENT,test_yaffs_open_ENOENT_clean,"test_yaffs_open_ENOENT"},
291 {test_yaffs_open_ENAMETOOLONG,test_yaffs_open_ENAMETOOLONG_clean,"test_yaffs_open_ENAMETOOLONG"},
292 {test_yaffs_open_EINVAL,test_yaffs_open_EINVAL_clean,"test_yaffs_open_EINVAL"},
293 {test_yaffs_open_EINVAL2,test_yaffs_open_EINVAL2_clean,"test_yaffs_open_EINVAL2"},
294 {test_yaffs_open_ELOOP,test_yaffs_open_ELOOP_clean,"test_yaffs_open_ELOOP"},
295 {test_yaffs_open_ELOOP_dir,test_yaffs_open_ELOOP_dir_clean,"test_yaffs_open_ELOOP_dir"},
296 {test_yaffs_open_EROFS,test_yaffs_open_EROFS_clean,"test_yaffs_open_EROFS"},
297 {test_yaffs_open_EACCES,test_yaffs_open_EACCES_clean,"test_yaffs_open_EACCES"},
298 {test_yaffs_open_NULL,test_yaffs_open_NULL_clean,"test_yaffs_open_NULL"},
301 {test_yaffs_close_EBADF,test_yaffs_close_EBADF_clean,"test_yaffs_close_EBADF"},
302 {test_yaffs_close_NULL,test_yaffs_close_NULL_clean,"test_yaffs_close_NULL"},
304 {test_yaffs_access,test_yaffs_access_clean,"test_yaffs_access"},
305 {test_yaffs_access_EINVAL,test_yaffs_access_EINVAL_clean,"test_yaffs_access_EINVAL"},
306 {test_yaffs_access_ENOTDIR,test_yaffs_access_ENOTDIR_clean,"test_yaffs_access_ENOTDIR"},
307 {test_yaffs_access_ENOENT,test_yaffs_access_ENOENT_clean,"test_yaffs_access_ENOENT"},
308 {test_yaffs_access_ENOENT2,test_yaffs_access_ENOENT2_clean,"test_yaffs_access_ENOENT2"},
309 {test_yaffs_access_ELOOP_dir,test_yaffs_access_ELOOP_dir_clean,"test_yaffs_access_ELOOP_dir"},
310 {test_yaffs_access_ELOOP,test_yaffs_access_ELOOP_clean,"test_yaffs_access_ELOOP"},
311 {test_yaffs_access_EROFS,test_yaffs_access_EROFS_clean,"test_yaffs_access_EROFS"},
312 {test_yaffs_access_EACCES,test_yaffs_access_EACCES_clean,"test_yaffs_access_EACCES"},
313 {test_yaffs_access_ENAMETOOLONG,test_yaffs_access_ENAMETOOLONG_clean,"test_yaffs_access_ENAMETOOLONG"},
314 {test_yaffs_access_NULL,test_yaffs_access_NULL_clean,"test_yaffs_access_NULL"},
316 {test_yaffs_unlink, test_yaffs_unlink_clean,"test_yaffs_unlink"},
317 {test_yaffs_unlink_EISDIR,test_yaffs_unlink_EISDIR_clean,"test_yaffs_unlink_EISDIR"},
318 {test_yaffs_unlink_ENOENT,test_yaffs_unlink_ENOENT_clean,"test_yaffs_unlink_ENOENT"},
319 {test_yaffs_unlink_ENAMETOOLONG,test_yaffs_unlink_ENAMETOOLONG_clean,"test_yaffs_unlink_ENAMETOOLONG"},
320 {test_yaffs_unlink_ENOTDIR,test_yaffs_unlink_ENOTDIR_clean,"test_yaffs_unlink_ENOTDIR"},
321 {test_yaffs_unlink_ENOENT,test_yaffs_unlink_ENOENT_clean,"test_yaffs_unlink_ENOENT"},
322 {test_yaffs_unlink_ENOENT2,test_yaffs_unlink_ENOENT2_clean,"test_yaffs_unlink_ENOENT2"},
323 {test_yaffs_unlink_ELOOP_dir,test_yaffs_unlink_ELOOP_dir_clean,"test_yaffs_unlink_ELOOP_dir"},
324 {test_yaffs_unlink_EROFS,test_yaffs_unlink_EROFS_clean,"test_yaffs_unlink_EROFS"},
325 {test_yaffs_unlink_NULL,test_yaffs_unlink_NULL_clean,"test_yaffs_unlink_NULL"},
327 {test_yaffs_lseek,test_yaffs_lseek_clean,"test_yaffs_lseek"},
328 {test_yaffs_lseek_EBADF,test_yaffs_lseek_EBADF_clean,"test_yaffs_lseek_EBADF"},
329 {test_yaffs_lseek_EINVAL,test_yaffs_lseek_EINVAL_clean,"test_yaffs_lseek_EINVAL"},
330 // {test_yaffs_lseek_big_file,test_yaffs_lseek_big_file_clean,"test_yaffs_lseek_big_file"}, //this test does not work because the large number becomes 0 when the file is compiled.
332 {test_yaffs_write,test_yaffs_write_clean,"test_yaffs_write"},
333 {test_yaffs_write_EBADF,test_yaffs_write_EBADF_clean,"test_yaffs_write_EBADF"},
334 // {test_yaffs_write_big_file,test_yaffs_write_big_file_clean,"test_yaffs_write_big_file"},
335 {test_yaffs_write_EROFS,test_yaffs_write_EROFS_clean,"test_yaffs_write_EROFS"},
337 {test_yaffs_read,test_yaffs_read_clean,"test_yaffs_read"},
338 {test_yaffs_read_EBADF,test_yaffs_read_EBADF_clean,"test_yaffs_read_EBADF"},
339 // {test_yaffs_read_EINVAL,test_yaffs_read_EINVAL_clean,"test_yaffs_read_EINVAL"},
341 {test_yaffs_stat,test_yaffs_stat_clean,"test_yaffs_stat"},
342 {test_yaffs_stat_ENOENT,test_yaffs_stat_ENOENT_clean,"test_yaffs_stat_ENOENT"},
343 {test_yaffs_stat_ENOTDIR,test_yaffs_stat_ENOTDIR_clean,"test_yaffs_stat_ENOTDIR"},
344 {test_yaffs_stat_ENOENT2,test_yaffs_stat_ENOENT2_clean,"test_yaffs_stat_ENOENT2"},
345 {test_yaffs_stat_ELOOP,test_yaffs_stat_ELOOP_clean,"test_yaffs_stat_ELOOP"},
346 {test_yaffs_stat_ENAMETOOLONG,test_yaffs_stat_ENAMETOOLONG_clean,"test_yaffs_stat_ENAMETOOLONG"},
347 {test_yaffs_stat_NULL,test_yaffs_stat_NULL_clean,"test_yaffs_stat_NULL"},
349 {test_yaffs_fstat,test_yaffs_fstat_clean,"test_yaffs_fstat"},
350 {test_yaffs_fstat_EBADF,test_yaffs_fstat_EBADF_clean,"test_yaffs_fstat_EBADF"},
352 {test_yaffs_ftruncate,test_yaffs_ftruncate_clean,"test_yaffs_ftruncate"},
353 {test_yaffs_ftruncate_EBADF,test_yaffs_ftruncate_EBADF_clean,"test_yaffs_ftruncate_EBADF"},
354 {test_yaffs_ftruncate_EINVAL,test_yaffs_ftruncate_EINVAL_clean,"test_yaffs_ftruncate_EINVAL"},
355 {test_yaffs_ftruncate_big_file,test_yaffs_ftruncate_big_file_clean,"test_yaffs_ftruncate_big_file"},
356 {test_yaffs_ftruncate_EROFS,test_yaffs_ftruncate_EROFS_clean,"test_yaffs_ftruncate_EROFS"},
358 {test_yaffs_truncate,test_yaffs_truncate_clean,"test_yaffs_truncate"},
359 {test_yaffs_truncate_ENOTDIR,test_yaffs_truncate_ENOTDIR_clean,"test_yaffs_truncate_ENOTDIR"},
360 {test_yaffs_truncate_EISDIR,test_yaffs_truncate_EISDIR_clean,"test_yaffs_truncate_EISDIR"},
361 {test_yaffs_truncate_EINVAL,test_yaffs_truncate_EINVAL_clean,"test_yaffs_truncate_EINVAL"},
362 {test_yaffs_truncate_ENOENT,test_yaffs_truncate_ENOENT_clean,"test_yaffs_truncate_ENOENT"},
363 {test_yaffs_truncate_ENOENT2,test_yaffs_truncate_ENOENT2_clean,"test_yaffs_truncate_ENOENT2"},
364 {test_yaffs_truncate_ELOOP,test_yaffs_truncate_ELOOP_clean,"test_yaffs_truncate_ELOOP"},
365 {test_yaffs_truncate_ELOOP_dir,test_yaffs_truncate_ELOOP_dir_clean,"test_yaffs_truncate_ELOOP_dir"},
366 {test_yaffs_truncate_EROFS,test_yaffs_truncate_EROFS_clean,"test_yaffs_truncate_EROFS"},
367 {test_yaffs_truncate_ENAMETOOLONG,test_yaffs_truncate_ENAMETOOLONG_clean,"test_yaffs_truncate_ENAMETOOLONG"},
368 {test_yaffs_truncate_NULL,test_yaffs_truncate_NULL_clean,"test_yaffs_truncate_NULL"},
369 // {test_yaffs_truncate_big_file,test_yaffs_truncate_big_file_clean,"test_yaffs_truncate_big_file"}, //this test does not work because the large number becomes 0 when the file is compiled.
371 {test_yaffs_chmod,test_yaffs_chmod_clean,"test_yaffs_chmod"},
372 {test_yaffs_chmod_ENOENT,test_yaffs_chmod_ENOENT_clean,"test_yaffs_chmod_ENOENT"},
373 {test_yaffs_chmod_ENOTDIR,test_yaffs_chmod_ENOTDIR_clean,"test_yaffs_chmod_ENOTDIR"},
374 {test_yaffs_chmod_EINVAL,test_yaffs_chmod_EINVAL_clean,"test_yaffs_chmod_EINVAL"},
375 {test_yaffs_chmod_ELOOP_dir,test_yaffs_chmod_ELOOP_dir_clean,"test_yaffs_chmod_ELOOP_dir"},
376 {test_yaffs_chmod_ELOOP,test_yaffs_chmod_ELOOP_clean,"test_yaffs_chmod_ELOOP"},
377 {test_yaffs_chmod_EROFS,test_yaffs_chmod_EROFS_clean,"test_yaffs_chmod_EROFS"},
378 {test_yaffs_chmod_ENAMETOOLONG,test_yaffs_chmod_ENAMETOOLONG_clean,"test_yaffs_chmod_ENAMETOOLONG"},
379 {test_yaffs_chmod_NULL,test_yaffs_chmod_NULL_clean,"test_yaffs_chmod_NULL"},
381 {test_yaffs_fchmod,test_yaffs_fchmod_clean,"test_yaffs_fchmod"},
382 {test_yaffs_fchmod_EBADF,test_yaffs_fchmod_EBADF_clean,"test_yaffs_fchmod_EBADF"},
383 {test_yaffs_fchmod_EINVAL,test_yaffs_fchmod_EINVAL_clean,"test_yaffs_fchmod_EINVAL"},
384 {test_yaffs_fchmod_EROFS,test_yaffs_fchmod_EROFS_clean,"test_yaffs_fchmod_EROFS"},
385 {test_yaffs_fchmod_NULL,test_yaffs_fchmod_NULL_clean,"test_yaffs_fchmod_NULL"},
387 {test_yaffs_fsync,test_yaffs_fsync_clean,"test_yaffs_fsync"},
388 {test_yaffs_fsync_EBADF,test_yaffs_fsync_EBADF_clean,"test_yaffs_fsync_EBADF"},
389 {test_yaffs_fsync_EROFS,test_yaffs_fsync_EROFS_clean,"test_yaffs_fsync_EROFS"},
391 {test_yaffs_fdatasync,test_yaffs_fdatasync_clean,"test_yaffs_fdatasync"},
392 {test_yaffs_fdatasync_EBADF,test_yaffs_fdatasync_EBADF_clean,"test_yaffs_fdatasync_EBADF"},
393 {test_yaffs_fdatasync_EROFS,test_yaffs_fdatasync_EROFS_clean,"test_yaffs_fdatasync_EROFS"},
394 {test_yaffs_fdatasync_NULL,test_yaffs_fdatasync_NULL_clean,"test_yaffs_fdatasync_NULL"},
396 {test_yaffs_mkdir,test_yaffs_mkdir_clean,"test_yaffs_mkdir"},
397 {test_yaffs_mkdir_EEXIST,test_yaffs_mkdir_EEXIST_clean,"test_yaffs_mkdir_EEXIST"},
398 {test_yaffs_mkdir_ENOTDIR,test_yaffs_mkdir_ENOTDIR_clean,"test_yaffs_mkdir_ENOTDIR"},
399 {test_yaffs_mkdir_ENOENT,test_yaffs_mkdir_ENOENT_clean,"test_yaffs_mkdir_ENOENT"},
400 {test_yaffs_mkdir_ELOOP_dir,test_yaffs_mkdir_ELOOP_dir_clean,"test_yaffs_mkdir_ELOOP_dir"},
401 {test_yaffs_mkdir_EROFS,test_yaffs_mkdir_EROFS_clean,"test_yaffs_mkdir_EROFS"},
402 {test_yaffs_mkdir_ENAMETOOLONG,test_yaffs_mkdir_ENAMETOOLONG_clean,"test_yaffs_mkdir_ENAMETOOLONG"},
403 {test_yaffs_mkdir_NULL,test_yaffs_mkdir_NULL_clean,"test_yaffs_mkdir_NULL"},
406 {test_yaffs_symlink,test_yaffs_symlink_clean,"test_yaffs_symlink"},
407 {test_yaffs_symlink_ENOTDIR,test_yaffs_symlink_ENOTDIR_clean,"test_yaffs_symlink_ENOTDIR"},
408 {test_yaffs_symlink_EEXIST,test_yaffs_symlink_EEXIST_clean,"test_yaffs_symlink_EEXIST"},
409 {test_yaffs_symlink_ENOENT,test_yaffs_symlink_ENOENT_clean,"test_yaffs_symlink_ENOENT"},
410 {test_yaffs_symlink_ENOENT2,test_yaffs_symlink_ENOENT2_clean,"test_yaffs_symlink_ENOENT2"},
411 {test_yaffs_symlink_ELOOP_dir,test_yaffs_symlink_ELOOP_dir_clean,"test_yaffs_symlink_ELOOP_dir"},
412 {test_yaffs_symlink_EROFS,test_yaffs_symlink_EROFS_clean,"test_yaffs_symlink_EROFS"},
413 {test_yaffs_symlink_ENAMETOOLONG,test_yaffs_symlink_ENAMETOOLONG_clean,"test_yaffs_symlink_ENAMETOOLONG"},
414 {test_yaffs_symlink_NULL,test_yaffs_symlink_NULL_clean,"test_yaffs_symlink_NULL"},
415 {test_yaffs_symlink_NULL2,test_yaffs_symlink_NULL2_clean,"test_yaffs_symlink_NULL2"},
417 {test_yaffs_mount2,test_yaffs_mount2_clean,"test_yaffs_mount2"},
418 {test_yaffs_mount2_ENODEV,test_yaffs_mount2_ENODEV_clean,"test_yaffs_mount2_ENODEV"},
421 {test_yaffs_unmount2,test_yaffs_unmount2_clean,"test_yaffs_unmount2"},
422 {test_yaffs_unmount2_ENODEV,test_yaffs_unmount2_ENODEV_clean,"test_yaffs_unmount2_ENODEV"},
423 {test_yaffs_unmount2_EINVAL,test_yaffs_unmount2_EINVAL_clean,"test_yaffs_unmount2_EINVAL"},
424 {test_yaffs_unmount2_with_handle_open_and_forced_mode_on,test_yaffs_unmount2_with_handle_open_and_forced_mode_on_clean,"test_yaffs_unmount2_with_handle_open_and_forced_mode_on"},
425 {test_yaffs_unmount2_with_handle_open_and_forced_mode_off,test_yaffs_unmount2_with_handle_open_and_forced_mode_off_clean,"test_yaffs_unmount2_with_handle_open_and_forced_mode_off"},
426 {test_yaffs_unmount_NULL,test_yaffs_unmount_NULL_clean,"test_yaffs_unmount_NULL"},
428 {test_yaffs_sync,test_yaffs_sync_clean,"test_yaffs_sync"},
429 {test_yaffs_sync_ENODEV,test_yaffs_sync_ENODEV_clean,"test_yaffs_sync_ENODEV"},
430 {test_yaffs_sync_EROFS,test_yaffs_sync_EROFS_clean,"test_yaffs_sync_EROFS"},
431 {test_yaffs_sync_ENAMETOOLONG,test_yaffs_sync_ENAMETOOLONG_clean,"test_yaffs_sync_ENAMETOOLONG"},
432 {test_yaffs_sync_NULL,test_yaffs_sync_NULL_clean,"test_yaffs_sync_NULL"},
435 {test_yaffs_remount_force_off_read_only_off,test_yaffs_remount_force_off_read_only_off_clean,"test_yaffs_remount_force_off_read_only_off"},
436 {test_yaffs_remount_force_on_read_only_off,test_yaffs_remount_force_on_read_only_off_clean,"test_yaffs_remount_force_on_read_only_off"},
437 {test_yaffs_remount_ENODEV,test_yaffs_remount_ENODEV_clean,"test_yaffs_remount_ENODEV"},
438 {test_yaffs_remount_EINVAL,test_yaffs_remount_EINVAL_clean,"test_yaffs_remount_EINVAL"},
439 {test_yaffs_remount_ENAMETOOLONG,test_yaffs_remount_ENAMETOOLONG_clean,"test_yaffs_remount_ENAMETOOLONG"},
440 {test_yaffs_remount_NULL,test_yaffs_remount_NULL_clean,"test_yaffs_remount_NULL"},
442 {test_yaffs_freespace,test_yaffs_freespace_clean,"test_yaffs_freespace"},
443 {test_yaffs_freespace_EINVAL,test_yaffs_freespace_EINVAL_clean,"test_yaffs_freespace_EINVAL"},
444 {test_yaffs_freespace_ENAMETOOLONG,test_yaffs_freespace_ENAMETOOLONG_clean,"test_yaffs_freespace_ENAMETOOLONG"},
445 {test_yaffs_freespace_NULL,test_yaffs_freespace_NULL_clean,"test_yaffs_freespace_NULL"},
447 {test_yaffs_totalspace,test_yaffs_totalspace_clean,"test_yaffs_totalspace"},
448 {test_yaffs_totalspace_EINVAL,test_yaffs_totalspace_EINVAL_clean,"test_yaffs_totalspace_EINVAL"},
449 {test_yaffs_totalspace_ENAMETOOLONG,test_yaffs_totalspace_ENAMETOOLONG_clean,"test_yaffs_totalspace_ENAMETOOLONG"},
450 {test_yaffs_totalspace_NULL,test_yaffs_totalspace_NULL_clean,"test_yaffs_totalspace_NULL"},
452 {test_yaffs_inodecount,test_yaffs_inodecount_clean,"test_yaffs_inodecount"},
453 {test_yaffs_inodecount_EINVAL,test_yaffs_inodecount_EINVAL_clean,"test_yaffs_inodecount_EINVAL"},
454 {test_yaffs_inodecount_ENAMETOOLONG,test_yaffs_inodecount_ENAMETOOLONG_clean,"test_yaffs_inodecount_ENAMETOOLONG"},
455 {test_yaffs_inodecount_NULL,test_yaffs_inodecount_NULL_clean,"test_yaffs_inodecount_NULL"},
457 {test_yaffs_link,test_yaffs_link_clean,"test_yaffs_link"},
458 {test_yaffs_link_ENOENT,test_yaffs_link_ENOENT_clean,"test_yaffs_link_ENOENT"},
459 {test_yaffs_link_EEXIST,test_yaffs_link_EEXIST_clean,"test_yaffs_link_EEXIST"},
460 {test_yaffs_link_ENOTDIR,test_yaffs_link_ENOTDIR_clean,"test_yaffs_link_ENOTDIR"},
461 {test_yaffs_link_ENOTDIR2,test_yaffs_link_ENOTDIR2_clean,"test_yaffs_link_ENOTDIR2"},
462 {test_yaffs_link_ENOENT2,test_yaffs_link_ENOENT2_clean,"test_yaffs_link_ENOENT2"},
463 {test_yaffs_link_ENOENT3,test_yaffs_link_ENOENT3_clean,"test_yaffs_link_ENOENT3"},
464 {test_yaffs_link_ENOENT4,test_yaffs_link_ENOENT4_clean,"test_yaffs_link_ENOENT4"},
465 {test_yaffs_link_ELOOP_dir,test_yaffs_link_ELOOP_dir_clean,"test_yaffs_link_ELOOP_dir"},
466 {test_yaffs_link_EROFS,test_yaffs_link_EROFS_clean,"test_yaffs_link_EROFS"},
467 {test_yaffs_link_ENAMETOOLONG,test_yaffs_link_ENAMETOOLONG_clean,"test_yaffs_link_ENAMETOOLONG"},
468 {test_yaffs_link_ENAMETOOLONG2,test_yaffs_link_ENAMETOOLONG2_clean,"test_yaffs_link_ENAMETOOLONG2"},
469 {test_yaffs_link_NULL,test_yaffs_link_NULL_clean,"test_yaffs_link_NULL"},
470 {test_yaffs_link_NULL2,test_yaffs_link_NULL2_clean,"test_yaffs_link_NULL2"},
472 {test_yaffs_rmdir,test_yaffs_rmdir_clean,"test_yaffs_rmdir"},
473 {test_yaffs_rmdir_EBUSY,test_yaffs_rmdir_EBUSY_clean,"test_yaffs_rmdir_EBUSY"},
474 {test_yaffs_rmdir_EINVAL,test_yaffs_rmdir_EINVAL_clean,"test_yaffs_rmdir_EINVAL"},
475 {test_yaffs_rmdir_ENOENT,test_yaffs_rmdir_ENOENT_clean,"test_yaffs_rmdir_ENOENT"},
476 {test_yaffs_rmdir_ENOTDIR,test_yaffs_rmdir_ENOTDIR_clean,"test_yaffs_rmdir_ENOTDIR"},
477 {test_yaffs_rmdir_ELOOP_dir,test_yaffs_rmdir_ELOOP_dir_clean,"test_yaffs_rmdir_ELOOP_dir"},
478 {test_yaffs_rmdir_EROFS,test_yaffs_rmdir_EROFS_clean,"test_yaffs_rmdir_EROFS"},
479 {test_yaffs_rmdir_ENAMETOOLONG,test_yaffs_rmdir_ENAMETOOLONG_clean,"test_yaffs_rmdir_ENAMETOOLONG"},
480 {test_yaffs_rmdir_ENOTEMPTY,test_yaffs_rmdir_ENOTEMPTY_clean,"test_yaffs_rmdir_ENOTEMPTY"},
482 {test_yaffs_stat_ELOOP_dir,test_yaffs_stat_ELOOP_dir_clean,"test_yaffs_stat_ELOOP_dir"},
484 {test_yaffs_rename,test_yaffs_rename_clean,"test_yaffs_rename"},
485 {test_yaffs_rename_ENOENT,test_yaffs_rename_ENOENT_clean,"test_yaffs_rename_ENOENT"},
486 {test_yaffs_rename_ENOTDIR,test_yaffs_rename_ENOTDIR_clean,"test_yaffs_rename_ENOTDIR"},
487 {test_yaffs_rename_EINVAL,test_yaffs_rename_EINVAL_clean,"test_yaffs_rename_EINVAL"},
488 {test_yaffs_rename_dir,test_yaffs_rename_dir_clean,"test_yaffs_rename_dir"},
489 {test_yaffs_rename_dir_ENOENT,test_yaffs_rename_dir_ENOENT_clean,"test_yaffs_rename_dir_ENOENT"},
490 {test_yaffs_rename_dir_ENOENT2,test_yaffs_rename_dir_ENOENT2_clean,"test_yaffs_rename_dir_ENOENT2"},
491 {test_yaffs_rename_dir_to_file,test_yaffs_rename_dir_to_file_clean,"test_yaffs_rename_dir_to_file"},
492 {test_yaffs_rename_file_to_dir,test_yaffs_rename_file_to_dir_clean,"test_yaffs_rename_file_to_dir"},
493 {test_yaffs_rename_EEXISTS,test_yaffs_rename_EEXISTS_clean,"test_yaffs_rename_EEXISTS"},
494 {test_yaffs_rename_ELOOP_dir,test_yaffs_rename_ELOOP_dir_clean,"test_yaffs_rename_ELOOP_dir"},
495 {test_yaffs_rename_EROFS,test_yaffs_rename_EROFS_clean,"test_yaffs_rename_EROFS"},
496 {test_yaffs_rename_ENAMETOOLONG,test_yaffs_rename_ENAMETOOLONG_clean,"test_yaffs_rename_ENAMETOOLONG"},
497 {test_yaffs_rename_ENAMETOOLONG2,test_yaffs_rename_ENAMETOOLONG2_clean,"test_yaffs_rename_ENAMETOOLONG2"},
498 {test_yaffs_rename_NULL,test_yaffs_rename_NULL_clean,"test_yaffs_rename_NULL"},
499 {test_yaffs_rename_NULL2,test_yaffs_rename_NULL2_clean,"test_yaffs_rename_NULL2"},
500 {test_yaffs_rename_to_null_file,test_yaffs_rename_to_null_file_clean,"test_yaffs_rename_to_null_file"},
501 {test_yaffs_rename_file_over_file,test_yaffs_rename_file_over_file_clean,"test_yaffs_rename_file_over_file"},
502 {test_yaffs_rename_dir_over_dir,test_yaffs_rename_dir_over_dir_clean,"test_yaffs_rename_dir_over_dir"},
503 {test_yaffs_rename_full_dir_over_dir,test_yaffs_rename_full_dir_over_dir_clean,"test_yaffs_rename_full_dir_over_dir"},
504 {test_yaffs_rename_ENOTEMPTY,test_yaffs_rename_ENOTEMPTY_clean,"test_yaffs_rename_ENOTEMPTY"},
506 {test_yaffs_lstat,test_yaffs_lstat_clean,"test_yaffs_lstat"},
507 {test_yaffs_lstat_ENOENT,test_yaffs_lstat_ENOENT_clean,"test_yaffs_lstat_ENOENT"},
508 {test_yaffs_lstat_ENOTDIR,test_yaffs_lstat_ENOTDIR_clean,"test_yaffs_lstat_ENOTDIR"},
509 {test_yaffs_lstat_ENAMETOOLONG,test_yaffs_lstat_ENAMETOOLONG_clean,"test_yaffs_lstat_ENAMETOOLONG"},
510 {test_yaffs_lstat_NULL,test_yaffs_lstat_NULL_clean,"test_yaffs_lstat_NULL"},
512 {test_yaffs_flush,test_yaffs_flush_clean,"test_yaffs_flush"},
513 {test_yaffs_flush_EBADF,test_yaffs_flush_EBADF_clean,"test_yaffs_flush_EBADF"},
514 {test_yaffs_flush_EROFS,test_yaffs_flush_EROFS_clean,"test_yaffs_flush_EROFS"},
516 {test_yaffs_dup,test_yaffs_dup_clean,"test_yaffs_dup"},
517 {test_yaffs_dup_EBADF,test_yaffs_dup_EBADF_clean,"test_yaffs_dup_EBADF"},
521 void logical_run_of_tests(void);
522 void init_quick_tests(int argc, char *argv[]);
523 void quit_quick_tests(int exit_code);
524 void get_error(void);
525 void run_random_test_loop(void);
526 void run_test(int x);