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 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
+
+
+
+ There may be a bug with trying to chmoding a file with the mode set to 0.
+ The chmod function does not return an error which means that it is unknown what modes the file is chmoded to.
+ When yaffs_open is used on the file the error EACCES is returned. It is possible that yaffs has changed the mode
+ to read only.
+
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
- <<WHAT FUNCTIONS>>
WARNING- If yaffs is unmounted then most of yaffs' functions return ENODIR.
- some function return EBADF instead.
+ 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.