Made by Timothy Manning on 08/11/2010 Current BUGS NAME SIZE Bug with opening a file with a name of 1,000,000 char long with no errors. The open function should be returning ENAMETOOLONG. Bug with unlinking a file with 1,000,000 get the error ENOENT but should be geting ENAMETOOLONG. Bug with mounting a too long non-existant mount point is returning ENODEV. yaffs_mount should be returning ENAMETOOLONG. When the name is passed into the yaffs_mount function the length of the mount point decreases from around 10000000 to 200. This needs to be investigated. Bug with unmounting a too long non-existing mountpoint. The error returned is ENODEV. It should be ENAMETOOLONG. ENOTDIR ERRORS Bug when trying to access a non-existing directory the error ENOENT is returned. It should be ENOTDIR. Bug when trying to truncate a file in a non-existing directory. The error returned is ENOENT it should be ENOTDIR. Bug when trying to stat a file in a non-existing directory. The error returned is ENOENT, it should be ENOTDIR Bug when trying to chmod a file in a non-existing directory. The error returned is ENOENT, it should be ENOTDIR Bug when trying to mkdir on top of a non-existing directory. The error returned is ENOENT, it should be ENOTDIR. yaffs_mkdir should never return ENOENT. Bug with truncating to a very large size. The yaffs_truncate function truncates the file to a massive size without any errors. The function should return the error EINVAL. Bug with lseeking to a very large size (size =100000000000000000000000000000000000000) without causing an error. Should cause the error EINVAL. Bug with unmounting a non-existing mountpoint. The function returns ENODEV but should be returning EINVAL. Unmount2 forcing the unmount needs to break the handles so they return EBADF. Bug with reading -1 bytes of a file without an error (test is in test_yaffs_read_EINVAL). It should return EINVAL. This is because it was reading an empty file. When text is added to the file a read of -1 bytes tries to read 4 gig of data Bug when writing a file. The writing to the file causes the file size to exceed the size of yaffs file system memory. Output of test: test_yaffs_write_EFBIG AddrToChunk of offset -2147483648 gives chunk -1048576 start 0 AddrToChunk of offset -2147481600 gives chunk -1048575 start 0 AddrToChunk of offset -2147479552 gives chunk -1048574 start 0 AddrToChunk of offset -2147477504 gives chunk -1048573 start 0 AddrToChunk of offset -2147475456 gives chunk -1048572 start 0 AddrToChunk of offset -2147473408 gives chunk -1048571 start 0 AddrToChunk of offset -2147471360 gives chunk -1048570 start 0 AddrToChunk of offset -2147469312 gives chunk -1048569 start 0 AddrToChunk of offset -2147467264 gives chunk -1048568 start 0 AddrToChunk of offset -2147465216 gives chunk -1048567 start 0 wrote a large amount of text to a file.(which is a bad thing) test: test_yaffs_write_EFBIG failed yaffs_error code 0 error is : Unknown error code Current WARNINGS WARNING- If yaffs is unmounted then most of yaffs' functions return ENODIR. But some function return EBADF instead. Functions which return ENOTDIR: open, close, access, unlink, lseek, write, read Functions which return ENOENT: access, stat WARNING-the function yaffs_open does not check the mode passed to it. This means that yaffs open does not return EINVAL if a bad mode is passed to it. However this causes the error EEXIST to happen instead, because both O_CREAT and O_EXCL flags are set. WARNING- yaffs_open will work with either of the two mode set to 255. However there are only 4 or 5 flags that can be set for each of the modes. This means that the programmer may not be setting the flags properly. WARNING- When mounting a non-existing mount point the error ENODEV is returned. The quick tests have been altered to accommodate this error code. With standard access function in linux the error returned is ENOENT.