Silence warning.
[bertos.git] / bertos / kern / kfile_test.c
index 21fc3d3bf73255aa8f4537c97dc67a50f5387b6b..410243e6bb97bc73b00c7ab71d2daf534c7b5553 100644 (file)
@@ -41,6 +41,7 @@
 
 
 #include "kfile.h"
+#include <struct/kfile_mem.h>
 
 #include "cfg/cfg_kfile.h"
 #include <cfg/debug.h>
 
 MOD_DEFINE(kfile_test);
 
+// Size of the "virtual" disk that
+// we want to test.
 #define BUF_TEST_LEN     3209
 
-typedef uint8_t fake_t;
-fake_t test_buf[BUF_TEST_LEN];
-fake_t test_buf_save[BUF_TEST_LEN];
-fake_t test_disk[BUF_TEST_LEN];
+// Buffer for test
+uint8_t test_buf[BUF_TEST_LEN];
+uint8_t test_buf_save[BUF_TEST_LEN];
 
-KFile fd;
-
-static int fake_close(KFile *fd)
-{
-       (void)fd;
-       return 0;
-}
-
-static size_t fake_read(KFile *fd, void *buf, size_t size)
-{
-       fake_t *dest = (fake_t *)buf;
-       size_t rd_len;
-
-       rd_len = MIN((kfile_off_t)size, fd->size - fd->seek_pos);
-
-       memcpy(dest, test_disk, size);
-       fd->seek_pos += rd_len;
-
-       LOG_INFO("Read: real[%ld] expected[%ld]\n", rd_len, size);
-
-       return rd_len;
-}
-
-static size_t fake_write(KFile *fd, const void *buf, size_t size)
-{
-       fake_t *src = (fake_t *)buf;
-       size_t wr_len;
-
-       wr_len = MIN((kfile_off_t)size, fd->size - fd->seek_pos);
-
-       memcpy(test_disk, src, wr_len);
-       fd->seek_pos += wr_len;
-
-       LOG_INFO("Write: real[%ld] expected[%ld]\n", wr_len, size);
-
-       return wr_len;
-}
-
-int fake_flush(KFile *fd)
-{
-       (void)fd;
-
-       return 0;
-}
-
-void fake_kfileInit(void)
-{
-       // Setup data flash programming functions.
-       fd.reopen = kfile_genericReopen;
-       fd.close = fake_close;
-       fd.read = fake_read;
-       fd.write = fake_write;
-       fd.seek = kfile_genericSeek;
-       fd.flush = fake_flush;
-
-       fd.seek_pos = 0;
-       fd.size = BUF_TEST_LEN;
-
-}
+uint8_t test_disk[BUF_TEST_LEN];
+KFileMem mem;
 
+/*
+ * Help function to init disk and the buffers.
+ */
 static void init_testBuf(void)
 {
-       #include <stdlib.h>
 
        kprintf("Init fake buffer..\n");
        for (int i = 0; i < BUF_TEST_LEN; i++)
        {
-               test_disk[i] = random();
+               test_disk[i] = i;
                kprintf("%d ", test_disk[i]);
        }
        kprintf("\nend\n");
@@ -158,7 +105,10 @@ static bool kfile_rwTest(KFile *f, uint8_t *buf, size_t size)
         * Write test buffer
         */
        if (kfile_write(f, buf, size) != size)
+       {
+               LOG_ERR("error writing buf");
                return false;
+       }
 
        kfile_seek(f, -(kfile_off_t)size, KSM_SEEK_CUR);
 
@@ -171,7 +121,11 @@ static bool kfile_rwTest(KFile *f, uint8_t *buf, size_t size)
         * Read file in test buffer
         */
        if (kfile_read(f, buf, size) != size)
+       {
+               LOG_ERR("error reading buf");
                return false;
+       }
+
 
        kfile_seek(f, -(kfile_off_t)size, KSM_SEEK_CUR);
 
@@ -179,8 +133,13 @@ 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))
+               {
+                       LOG_ERR("error comparing at index [%d] read [%02x] expected [%02x]\n", i, buf[i], i);
                        return false;
+               }
+       }
 
        return true;
 }
@@ -212,7 +171,7 @@ int kfile_testRunGeneric(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t
         */
        if (save_buf)
        {
-               LOG_INFO("Saved content..form [%d] to [%ld]\n", fd->seek_pos, fd->seek_pos + size);
+               LOG_INFO("Saved content..form [%ld] to [%ld]\n", fd->seek_pos, fd->seek_pos + size);
                kfile_read(fd, save_buf, size);
        }
 
@@ -243,12 +202,12 @@ int kfile_testRunGeneric(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t
                if (kfile_write(fd, save_buf, size) != size)
                        goto kfile_test_end;
 
-               LOG_INFO("Restore content..form [%d] to [%ld]\n", fd->seek_pos, fd->seek_pos + size);
+               LOG_INFO("Restore content..form [%ld] to [%ld]\n", fd->seek_pos, fd->seek_pos + size);
        }
        /* TEST 1 END. */
 
        /* TEST 2 BEGIN. */
-       LOG_INFO("Test 2: write from pos [%d] to [%ld]\n", fd->size/2 , fd->size/2 + size);
+       LOG_INFO("Test 2: write from pos [%ld] to [%ld]\n", fd->size/2 , fd->size/2 + size);
 
        /*
         * Go to half test size.
@@ -263,7 +222,7 @@ int kfile_testRunGeneric(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t
        {
                kfile_read(fd, save_buf, size);
                kfile_seek(fd, -(kfile_off_t)size, KSM_SEEK_CUR);
-               LOG_INFO("Saved content..form [%d] to [%ld]\n", fd->seek_pos, fd->seek_pos + size);
+               LOG_INFO("Saved content..form [%ld] to [%ld]\n", fd->seek_pos, fd->seek_pos + size);
        }
 
        /*
@@ -284,14 +243,13 @@ int kfile_testRunGeneric(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t
                if (kfile_write(fd, save_buf, size) != size)
                        goto kfile_test_end;
 
-               LOG_INFO("Restore content..form [%d] to [%ld]\n", fd->seek_pos, fd->seek_pos + size);
+               LOG_INFO("Restore content..form [%ld] to [%ld]\n", fd->seek_pos, fd->seek_pos + size);
        }
 
        /* TEST 2 END. */
 
        /* TEST 3 BEGIN. */
-       LOG_INFO("Test 3: write outside of fd->size limit [%d]\n", fd->size);
-       LOG_INFO("This test should FAIL!, you must see an assertion fail message.\n");
+       LOG_INFO("Test 3: write outside of fd->size limit [%ld]\n", fd->size);
 
        /*
         * Go to the Flash end
@@ -306,7 +264,7 @@ int kfile_testRunGeneric(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t
        {
                kfile_read(fd, save_buf, len);
                kfile_seek(fd, -len, KSM_SEEK_CUR);
-               LOG_INFO("Saved content..form [%d] to [%d]\n", fd->seek_pos, fd->seek_pos + len);
+               LOG_INFO("Saved content..form [%ld] to [%ld]\n", fd->seek_pos, fd->seek_pos + len);
        }
 
        /*
@@ -327,7 +285,7 @@ int kfile_testRunGeneric(KFile *fd, uint8_t *test_buf, uint8_t *save_buf, size_t
                if ((kfile_off_t)kfile_write(fd, save_buf, len) != len)
                        goto kfile_test_end;
 
-               LOG_INFO("Restore content..form [%d] to [%d]\n", fd->seek_pos, fd->seek_pos + len);
+               LOG_INFO("Restore content..form [%ld] to [%ld]\n", fd->seek_pos, fd->seek_pos + len);
        }
 
        /* TEST 3 END. */
@@ -352,7 +310,8 @@ int kfile_testSetup(void)
         MOD_INIT(kfile_test);
         LOG_INFO("Mod init..ok\n");
 
-               fake_kfileInit();
+               // Init our backend and the buffers
+               kfilemem_init(&mem, test_disk, BUF_TEST_LEN);
                init_testBuf();
 
         return 0;
@@ -360,7 +319,7 @@ int kfile_testSetup(void)
 
 int kfile_testRun(void)
 {
-       return kfile_testRunGeneric(&fd, test_buf, test_buf_save, BUF_TEST_LEN);
+       return kfile_testRunGeneric(&mem.fd, test_buf, test_buf_save, BUF_TEST_LEN);
 }
 
 /**
@@ -373,3 +332,4 @@ int kfile_testTearDown(void)
 }
 
 TEST_MAIN(kfile);
+