From f9f19819ef86d2471aca57149f83aabec4029680 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Fri, 24 Jun 2016 17:50:10 -0500 Subject: [PATCH] Made file store IO test test 16, 32, and 64 bit file systems. --- src/filestore.hpp | 7 ++++--- src/filesystem.hpp | 10 +++++++++- test/filestoreio.cpp | 18 +++++++++++------- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/filestore.hpp b/src/filestore.hpp index d5834fcd4..95c344a16 100644 --- a/src/filestore.hpp +++ b/src/filestore.hpp @@ -13,18 +13,19 @@ namespace wombat { namespace fs { -template +template class FileStore { public: + typedef uint16_t InodeId_t; + typedef FsT FsSize_t; + struct FsHeader { uint32_t version; FsSize_t size; FsSize_t rootInode; }; - typedef uint16_t InodeId_t; - struct StatInfo { InodeId_t inodeId; FsSize_t size; diff --git a/src/filesystem.hpp b/src/filesystem.hpp index e1a98da26..bd27b7706 100644 --- a/src/filesystem.hpp +++ b/src/filesystem.hpp @@ -30,12 +30,20 @@ class FileSystem { int read(const char *path, void *buffer); FileStat stat(const char *path); + + FileStat stat(typename FileStore::InodeId_t inode); }; template FileStat FileSystem::stat(const char *path) { FileStat stat; - auto s = store->stat(path); + return stat; +} + +template +FileStat FileSystem::stat(typename FileStore::InodeId_t inode) { + FileStat stat; + auto s = store->stat(inode); stat.size = s.size; stat.inode = s.inodeId; return stat; diff --git a/test/filestoreio.cpp b/test/filestoreio.cpp index 88c78028f..343947a40 100644 --- a/test/filestoreio.cpp +++ b/test/filestoreio.cpp @@ -10,14 +10,15 @@ using namespace wombat::fs; -int main() { - const auto size = 1 << 16; +template +int test() { + const auto size = 65535; uint8_t volume[size]; char out[6]; uint32_t err; - FileStore32::format(volume, size); - FileStore32 fs(volume, volume + size, &err); - uint32_t outSize; + typename FileStore::FsSize_t outSize; + FileStore::format(volume, size); + FileStore fs(volume, volume + size, &err); if (fs.write(1, (void*) "Hello", 6) || fs.read(1, (char*) out, &outSize) || @@ -26,7 +27,7 @@ int main() { } if (fs.write(2, (void*) "World", 6) || - fs.read(2, (char*) out, nullptr) || + fs.read(2, (char*) out, &outSize) || strcmp("World", out)) { return 1; } @@ -37,6 +38,9 @@ int main() { return 1; } - return 0; } + +int main() { + return test() | test() | test(); +}