yaffs More tests for quick tests.
[yaffs2.git] / direct / timothy_tests / quick_tests / current_bugs.txt
1
2 Made by Timothy Manning <timothy@yaffs.net> on 08/11/2010
3
4
5 Current BUGS 
6
7         NAME SIZE
8                 Bug with opening a file with a name of 1,000,000 char long with no errors.
9                 The open function should be returning ENAMETOOLONG.
10
11                 Bug with unlinking a file with 1,000,000 get the error ENOENT but should
12                 be geting ENAMETOOLONG. 
13
14                 Bug with mounting a too long non-existant mount point is returning 
15                 ENODEV. yaffs_mount should be returning ENAMETOOLONG.
16                 When the name is passed into the yaffs_mount function the length of the
17                 mount point decreases from around 10000000 to 200. This needs to be investigated.
18                 
19                 Bug with unmounting a too long non-existing mountpoint. 
20                 The error returned is ENODEV. It should be ENAMETOOLONG.
21
22
23         ENOTDIR ERRORS
24                 Bug when trying to access a non-existing directory the error ENOENT is 
25                 returned. It should be ENOTDIR.
26
27                 Bug when trying to truncate a file in a non-existing directory. The error
28                 returned is ENOENT it should be ENOTDIR.
29
30                 Bug when trying to stat a file in a non-existing directory. The error 
31                 returned is ENOENT, it should be ENOTDIR 
32
33                 Bug when trying to chmod a file in a non-existing directory. The error 
34                 returned is ENOENT, it should be ENOTDIR 
35
36                 Bug when trying to mkdir on top of a non-existing directory. The error 
37                 returned is ENOENT, it should be ENOTDIR. yaffs_mkdir should never return ENOENT.
38
39
40         Bug with truncating to a very large size. The yaffs_truncate function truncates the file to a massive size without any errors.
41         The function should return the error EINVAL. 
42
43         Bug with lseeking to a very large size (size =100000000000000000000000000000000000000) without causing an error.
44         Should cause the error EINVAL.
45
46         Bug with unmounting a non-existing mountpoint. The function returns ENODEV 
47         but should be returning EINVAL.
48
49         Unmount2 forcing the unmount needs to break the handles so they return EBADF.
50
51         Bug with reading -1 bytes of a file without an error (test is in test_yaffs_read_EINVAL).
52         It should return EINVAL. This is because it was reading an empty file. 
53         When text is added to the file a read of -1 bytes tries to read 4 gig of data 
54
55         Bug when writing a file. The writing to the file causes the file size to exceed the size of yaffs file system memory.
56         Output of test:
57                 test_yaffs_write_EFBIG 
58                 AddrToChunk of offset -2147483648 gives chunk -1048576 start 0
59                 AddrToChunk of offset -2147481600 gives chunk -1048575 start 0
60                 AddrToChunk of offset -2147479552 gives chunk -1048574 start 0  
61                 AddrToChunk of offset -2147477504 gives chunk -1048573 start 0
62                 AddrToChunk of offset -2147475456 gives chunk -1048572 start 0
63                 AddrToChunk of offset -2147473408 gives chunk -1048571 start 0
64                 AddrToChunk of offset -2147471360 gives chunk -1048570 start 0
65                 AddrToChunk of offset -2147469312 gives chunk -1048569 start 0  
66                 AddrToChunk of offset -2147467264 gives chunk -1048568 start 0
67                 AddrToChunk of offset -2147465216 gives chunk -1048567 start 0
68                 wrote a large amount of text to a file.(which is a bad thing)
69                 test: test_yaffs_write_EFBIG failed
70                 yaffs_error code 0
71                 error is : Unknown error code
72
73
74 Current WARNINGS
75         
76         WARNING- If yaffs is unmounted then most of yaffs' functions return ENODIR. 
77         But some function return EBADF instead.
78         Functions which return ENOTDIR: open, close, access, unlink, lseek, write, read
79
80         Functions which return ENOENT: access, stat
81         
82
83
84         WARNING-the function yaffs_open does not check the mode passed to it. 
85         This means that yaffs open does not return EINVAL if a bad mode is passed to it.
86         However this causes the error EEXIST to happen instead, because both O_CREAT and O_EXCL  flags are set.
87
88         WARNING- yaffs_open will work with either of the two mode set to 255.
89         However there are only 4 or 5 flags that can be set for each of the modes.
90         This means that the programmer may not be setting the flags properly.  
91
92         WARNING- When mounting a non-existing mount point the error ENODEV is returned.
93         The quick tests have been altered to accommodate this error code.    
94         With standard access function in linux the error returned is ENOENT.