diff options
author | Keith Packard <keithp@keithp.com> | 2013-03-31 12:39:32 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2013-03-31 12:39:32 -0700 |
commit | 144b44e13ce3361ff59cbb555e84d542455a4e17 (patch) | |
tree | cf56246bea404fbe23f35a800ed0013260d454b9 | |
parent | a70139c9a8a177df8f20f525703b13c0aec0fbc7 (diff) |
altos: Unmount file system after each testing pass in ao_fat_test
Otherwise, we use stale data and 'bad things' happen.
Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r-- | src/drivers/ao_fat.c | 6 | ||||
-rw-r--r-- | src/drivers/ao_fat.h | 3 | ||||
-rw-r--r-- | src/test/ao_fat_test.c | 10 |
3 files changed, 15 insertions, 4 deletions
diff --git a/src/drivers/ao_fat.c b/src/drivers/ao_fat.c index bb0aa7a2..9cd3d34b 100644 --- a/src/drivers/ao_fat.c +++ b/src/drivers/ao_fat.c @@ -608,6 +608,12 @@ ao_fat_setup(void) return ao_filesystem_status; } +void +ao_fat_unmount(void) +{ + ao_filesystem_setup = 0; +} + /* * Basic file operations */ diff --git a/src/drivers/ao_fat.h b/src/drivers/ao_fat.h index 40786990..36aec7df 100644 --- a/src/drivers/ao_fat.h +++ b/src/drivers/ao_fat.h @@ -63,6 +63,9 @@ ao_fat_init(void); void ao_fat_sync(void); +void +ao_fat_unmount(void); + int8_t ao_fat_full(void); diff --git a/src/test/ao_fat_test.c b/src/test/ao_fat_test.c index 48d5d8a4..eb55d9c8 100644 --- a/src/test/ao_fat_test.c +++ b/src/test/ao_fat_test.c @@ -226,14 +226,15 @@ fatal(char *msg, ...) void check_fat(void) { - int e; - int f; + cluster_t e; + int f; for (e = 0; e < number_cluster; e++) { cluster_t v = ao_fat_entry_raw_read(e, 0); for (f = 1; f < number_fat; f++) { - if (ao_fat_entry_raw_read(e, f) != v) - fatal ("fats differ at %d\n", e); + cluster_t o = ao_fat_entry_raw_read(e, f); + if (o != v) + fatal ("fats differ at %08x (0 %08x %d %08x)\n", e, v, f, o); } } } @@ -490,6 +491,7 @@ main(int argc, char **argv) #else long_test_fs(); #endif + ao_fat_unmount(); } return 0; |