From 50fe8ae258b8e80c04a3c64e6d91885287c49aa5 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Tue, 18 Feb 2020 18:08:24 -0600 Subject: [PATCH] Renamed test_format -> test_superblocks, tweaked superblock tests With the superblock expansion stuff, the test_format tests have grown to test more advanced superblock-related features. This is fine but deserves a rename so it's more clear. Also fixed a typo that meant tests never ran with block cycles. --- ...test_format.toml => test_superblocks.toml} | 46 ++++++++++++++----- 1 file changed, 35 insertions(+), 11 deletions(-) rename tests/{test_format.toml => test_superblocks.toml} (62%) diff --git a/tests/test_format.toml b/tests/test_superblocks.toml similarity index 62% rename from tests/test_format.toml rename to tests/test_superblocks.toml index 7932d54..407c845 100644 --- a/tests/test_format.toml +++ b/tests/test_superblocks.toml @@ -27,41 +27,55 @@ code = ''' ''' [[case]] # expanding superblock -define.BLOCK_CYCLES = [32, 33, 1] +define.LFS_BLOCK_CYCLES = [32, 33, 1] define.N = [10, 100, 1000] code = ''' lfs_format(&lfs, &cfg) => 0; lfs_mount(&lfs, &cfg) => 0; for (int i = 0; i < N; i++) { - lfs_mkdir(&lfs, "dummy") => 0; + lfs_file_open(&lfs, &file, "dummy", + LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_stat(&lfs, "dummy", &info) => 0; assert(strcmp(info.name, "dummy") == 0); + assert(info.type == LFS_TYPE_REG); lfs_remove(&lfs, "dummy") => 0; } lfs_unmount(&lfs) => 0; // one last check after power-cycle lfs_mount(&lfs, &cfg) => 0; - lfs_mkdir(&lfs, "dummy") => 0; + lfs_file_open(&lfs, &file, "dummy", + LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_stat(&lfs, "dummy", &info) => 0; assert(strcmp(info.name, "dummy") == 0); + assert(info.type == LFS_TYPE_REG); lfs_unmount(&lfs) => 0; ''' [[case]] # expanding superblock with power cycle -define.BLOCK_CYCLES = [32, 33, 1] +define.LFS_BLOCK_CYCLES = [32, 33, 1] define.N = [10, 100, 1000] code = ''' lfs_format(&lfs, &cfg) => 0; for (int i = 0; i < N; i++) { lfs_mount(&lfs, &cfg) => 0; // remove lingering dummy? - err = lfs_remove(&lfs, "dummy"); + err = lfs_stat(&lfs, "dummy", &info); assert(err == 0 || (err == LFS_ERR_NOENT && i == 0)); - - lfs_mkdir(&lfs, "dummy") => 0; + if (!err) { + assert(strcmp(info.name, "dummy") == 0); + assert(info.type == LFS_TYPE_REG); + lfs_remove(&lfs, "dummy") => 0; + } + + lfs_file_open(&lfs, &file, "dummy", + LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_stat(&lfs, "dummy", &info) => 0; assert(strcmp(info.name, "dummy") == 0); + assert(info.type == LFS_TYPE_REG); lfs_unmount(&lfs) => 0; } @@ -69,11 +83,12 @@ code = ''' lfs_mount(&lfs, &cfg) => 0; lfs_stat(&lfs, "dummy", &info) => 0; assert(strcmp(info.name, "dummy") == 0); + assert(info.type == LFS_TYPE_REG); lfs_unmount(&lfs) => 0; ''' [[case]] # reentrant expanding superblock -define.BLOCK_CYCLES = [2, 1] +define.LFS_BLOCK_CYCLES = [2, 1] define.N = 24 reentrant = true code = ''' @@ -85,12 +100,20 @@ code = ''' for (int i = 0; i < N; i++) { // remove lingering dummy? - err = lfs_remove(&lfs, "dummy"); + err = lfs_stat(&lfs, "dummy", &info); assert(err == 0 || (err == LFS_ERR_NOENT && i == 0)); - - lfs_mkdir(&lfs, "dummy") => 0; + if (!err) { + assert(strcmp(info.name, "dummy") == 0); + assert(info.type == LFS_TYPE_REG); + lfs_remove(&lfs, "dummy") => 0; + } + + lfs_file_open(&lfs, &file, "dummy", + LFS_O_WRONLY | LFS_O_CREAT | LFS_O_EXCL) => 0; + lfs_file_close(&lfs, &file) => 0; lfs_stat(&lfs, "dummy", &info) => 0; assert(strcmp(info.name, "dummy") == 0); + assert(info.type == LFS_TYPE_REG); } lfs_unmount(&lfs) => 0; @@ -99,5 +122,6 @@ code = ''' lfs_mount(&lfs, &cfg) => 0; lfs_stat(&lfs, "dummy", &info) => 0; assert(strcmp(info.name, "dummy") == 0); + assert(info.type == LFS_TYPE_REG); lfs_unmount(&lfs) => 0; '''