X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fkern%2Fkfile_test.c;h=050f499375801e8fd0dbe30c390df1be357ce869;hb=48fa213cd00cd385ee7274baf83761099a6ceead;hp=20da9ec91057f100766cbeb88470d62ccf3943a6;hpb=60d54449c12ed139911df35a9983c14019262d37;p=bertos.git diff --git a/bertos/kern/kfile_test.c b/bertos/kern/kfile_test.c index 20da9ec9..050f4993 100644 --- a/bertos/kern/kfile_test.c +++ b/bertos/kern/kfile_test.c @@ -31,23 +31,33 @@ * --> * * \brief Test suite for virtual KFile I/O interface. + * * This module implements a test for some generic I/O interfaces for kfile. * * \version $Id$ * \author Francesco Sacchi * \author Daniele Basile - * */ #include "kfile.h" -#include +#include "cfg/cfg_kfile.h" #include +#include + +// Define logging setting (for cfg/log.h module). +#define LOG_LEVEL KFILE_LOG_LEVEL +#define LOG_FORMAT KFILE_LOG_FORMAT +#include + #include + #include -#warning TODO:Refactor this module.. + +MOD_DEFINE(kfile_test); + /** * KFile read/write subtest. @@ -85,21 +95,34 @@ static bool kfile_rwTest(KFile *f, uint8_t *buf, size_t size) /* * Check test result */ - for (size_t i = 0; i < size; i++) - if (buf[i] != (i & 0xff)) + for (size_t i = 0; i < size; i++) + if (buf[i] != (i & 0xff)) return false; return true; } +/** + * Setup all needed for kfile test + */ +int kfile_testSetUp(void) +{ + MOD_INIT(kfile_test); + LOG_INFO("Mod init..ok\n"); + + return 0; +} + + /** * KFile read/write test. * This function write and read \a test_buf long \a size * on \a fd handler. * \a save_buf can be NULL or a buffer where to save previous file content. */ -bool kfile_test(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size) +int kfile_testRun(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size) { + /* * Part of test buf size that you would write. * This var is used in test 3 to check kfile_write @@ -109,8 +132,8 @@ bool kfile_test(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size) /* Fill test buffer */ - for (size_t i = 0; i < size; i++) - test_buf[i] = (i & 0xff); + for (size_t i = 0; i < size; i++) + test_buf[i] = (i & 0xff); /* * If necessary, user can save content, @@ -119,11 +142,11 @@ bool kfile_test(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size) if (save_buf) { kfile_read(fd, save_buf, size); - kprintf("Saved content..form [%lu] to [%lu]\n", fd->seek_pos, fd->seek_pos + size); + LOG_INFO("Saved content..form [%lu] to [%lu]\n", fd->seek_pos, fd->seek_pos + size); } /* TEST 1 BEGIN. */ - kprintf("Test 1: write from pos 0 to [%lu]\n", size); + LOG_INFO("Test 1: write from pos 0 to [%lu]\n", size); /* * Seek to addr 0. @@ -137,7 +160,7 @@ bool kfile_test(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size) if (!kfile_rwTest(fd, test_buf, size)) goto kfile_test_end; - kprintf("Test 1: ok!\n"); + LOG_INFO("Test 1: ok!\n"); /* * Restore previous read content. @@ -149,12 +172,12 @@ bool kfile_test(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size) if (kfile_write(fd, save_buf, size) != size) goto kfile_test_end; - kprintf("Restore content..form [%lu] to [%lu]\n", fd->seek_pos, fd->seek_pos + size); + LOG_INFO("Restore content..form [%lu] to [%lu]\n", fd->seek_pos, fd->seek_pos + size); } /* TEST 1 END. */ /* TEST 2 BEGIN. */ - kprintf("Test 2: write from pos [%lu] to [%lu]\n", fd->size/2 , fd->size/2 + size); + LOG_INFO("Test 2: write from pos [%lu] to [%lu]\n", fd->size/2 , fd->size/2 + size); /* * Go to half test size. @@ -169,7 +192,7 @@ bool kfile_test(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size) { kfile_read(fd, save_buf, size); kfile_seek(fd, -(kfile_off_t)size, KSM_SEEK_CUR); - kprintf("Saved content..form [%lu] to [%lu]\n", fd->seek_pos, fd->seek_pos + size); + LOG_INFO("Saved content..form [%lu] to [%lu]\n", fd->seek_pos, fd->seek_pos + size); } /* @@ -178,7 +201,7 @@ bool kfile_test(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size) if (!kfile_rwTest(fd, test_buf, size)) goto kfile_test_end; - kprintf("Test 2: ok!\n"); + LOG_INFO("Test 2: ok!\n"); /* * Restore previous content. @@ -190,14 +213,14 @@ bool kfile_test(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size) if (kfile_write(fd, save_buf, size) != size) goto kfile_test_end; - kprintf("Restore content..form [%lu] to [%lu]\n", fd->seek_pos, fd->seek_pos + size); + LOG_INFO("Restore content..form [%lu] to [%lu]\n", fd->seek_pos, fd->seek_pos + size); } /* TEST 2 END. */ /* TEST 3 BEGIN. */ - kprintf("Test 3: write outside of fd->size limit [%lu]\n", fd->size); - kprintf("This test should FAIL!, you must see an assertion fail message.\n"); + LOG_INFO("Test 3: write outside of fd->size limit [%lu]\n", fd->size); + LOG_INFO("This test should FAIL!, you must see an assertion fail message.\n"); /* * Go to the Flash end @@ -212,7 +235,7 @@ bool kfile_test(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size) { kfile_read(fd, save_buf, len); kfile_seek(fd, -len, KSM_SEEK_CUR); - kprintf("Saved content..form [%lu] to [%lu]\n", fd->seek_pos, fd->seek_pos + len); + LOG_INFO("Saved content..form [%lu] to [%lu]\n", fd->seek_pos, fd->seek_pos + len); } /* @@ -230,21 +253,29 @@ bool kfile_test(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t size) { kfile_seek(fd, -len, KSM_SEEK_END); - if (kfile_write(fd, save_buf, len) != len) + if ((kfile_off_t)kfile_write(fd, save_buf, len) != len) goto kfile_test_end; - kprintf("Restore content..form [%lu] to [%lu]\n", fd->seek_pos, fd->seek_pos + len); + LOG_INFO("Restore content..form [%lu] to [%lu]\n", fd->seek_pos, fd->seek_pos + len); } /* TEST 3 END. */ kfile_close(fd); - return true; + return 0; kfile_test_end: kfile_close(fd); - return false; + LOG_ERR("One kfile_test fail!\n"); + return EOF; } - - +/** + * End a dataflash Test. + * (Unused) + */ +int kfile_testTearDown(void) +{ + /* */ + return 0; +}