mirror of
				https://github.com/eledio-devices/thirdparty-littlefs.git
				synced 2025-10-31 16:14:16 +01:00 
			
		
		
		
	No longer need to be stored on disk, can be simulated on the chip side. As mentioned in other commits, the parent entries had dozens of problems with atomic updates, as well as making everything just a bit more complex than is needed.
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| set -eu
 | |
| 
 | |
| echo "=== Orphan tests ==="
 | |
| rm -rf blocks
 | |
| tests/test.py << TEST
 | |
|     lfs_format(&lfs, &config) => 0;
 | |
| TEST
 | |
| 
 | |
| echo "--- Orphan test ---"
 | |
| tests/test.py << TEST
 | |
|     lfs_mount(&lfs, &config) => 0;
 | |
|     lfs_mkdir(&lfs, "parent") => 0;
 | |
|     lfs_mkdir(&lfs, "parent/orphan") => 0;
 | |
|     lfs_mkdir(&lfs, "parent/child") => 0;
 | |
|     lfs_remove(&lfs, "parent/orphan") => 0;
 | |
| TEST
 | |
| # remove most recent file, this should be the update to the previous
 | |
| # linked-list entry and should orphan the child
 | |
| rm -v blocks/8
 | |
| tests/test.py << TEST
 | |
|     lfs_mount(&lfs, &config) => 0;
 | |
|     lfs_stat(&lfs, "parent/orphan", &info) => LFS_ERROR_NO_ENTRY;
 | |
|     unsigned before = 0;
 | |
|     lfs_traverse(&lfs, test_count, &before) => 0;
 | |
|     test_log("before", before);
 | |
| 
 | |
|     lfs_deorphan(&lfs) => 0;
 | |
| 
 | |
|     lfs_stat(&lfs, "parent/orphan", &info) => LFS_ERROR_NO_ENTRY;
 | |
|     unsigned after = 0;
 | |
|     lfs_traverse(&lfs, test_count, &after) => 0;
 | |
|     test_log("after", after);
 | |
| 
 | |
|     int diff = before - after;
 | |
|     diff => 2;
 | |
|     lfs_unmount(&lfs) => 0;
 | |
| TEST
 | |
| 
 | |
| echo "--- Results ---"
 | |
| tests/stats.py
 |