- Test and fix library, so that it will also compile under linux
- Provide necessary fallback stuff, so that library can also be used without c library
- Finish FAT library read support
- Finish implementation of
fat_file_read
- Finish implementation of
- Add FAT library write support
- Add test where cluster chain needs to be extended <= Within truncate tests
- Extend test creating a folder to fail on second try
- Add test creating a directory with long name
- Add file write support
- Add tests for file truncate
- Add logic to support O_TRUNC on open
- Add test for creating a plain file with O_CREAT
- Add test for file truncation on open with O_TRUNC
- Add test to ensure that read only is working correctly
- Add test to read a write only opened file
- Add test for write append with O_APPEND
- Add test for writing a file
- Add test creating a file with short name
- Add test creating a file with long name
- Add test creating a file with short name but long extension, e.g. foo.jpeg
- Fix read out of directory via fat directory next when switching to new cluster
- Implement fat_file_move
- Implement fat_file_remove
- Implement fat_directory_remove
- Implement fat_directory_move
- Check and add proper handling for empty files, which means start cluster is 0
- Truncate with size 0 should free cluster chain
- Write needs to be adjusted so that it requests a cluster on demand
- Fix directory deletion to set deletion value instead of 0 overwrite
- Copy file entry information on move like creation date
- Adjust cluster of directory entry
..on folder move - Add test to ensure
..is changed correctly - Something in the implementation destroys the fat image
- Add write transaction instead of direct writing with some sort of cache accessed
- Add proper locking to library functions
-
Optimizations-
Introduce some sort of read/write cache instead of transactions caching blocks until drain / flush
-
- Cleanup
- Check written code and simplify it once everything works
- Check code and deduplicate similar code like file move or folder move
- Extend functions by transactions where it might be necessary
- Split up tests in single files
- Create unit tests
- Prepare unit testing with cmake and ctest
- Prepare a test blockdev driver for unit testing
- Add unit tests for specific functions
- Add support for ext2
- Fix and complete documentation
- Add custom commands to test folder to create necessary images for tests
- Check usages of block size and evaluate whether automatical adjustment is meaningful for fat
- Add code coverage collection
- Get ctest coverage command to run
- Get html coverage output