Merge remote-tracking branch 'upstream/master'
[lwext4.git] / blockdev / test_lwext4.c
index 061ee8ede155b8b5b876cba2780166155fe935a3..cb2b7e18dda3f8e20a19944357b00c3b41035f5c 100644 (file)
@@ -36,7 +36,7 @@
 #include "test_lwext4.h"
 
 /**@brief   Read-write size*/
-#define READ_MAX_WRITE_SZIZE 1024 * 8
+#define READ_MAX_WRITE_SZIZE 1024 * 16
 
 /**@brief   File read/write buffer*/
 static uint8_t rw_buff[READ_MAX_WRITE_SZIZE];
@@ -77,6 +77,9 @@ static clock_t get_ms(void) { return tim_get_ms(); }
 static void printf_io_timings(clock_t diff)
 {
        const struct ext4_io_stats *stats = io_timings_get(diff);
+       if (!stats)
+               return;
+
        printf("io_timings:\n");
        printf("  io_read: %.3f%%\n", stats->io_read);
        printf("  io_write: %.3f%%\n", stats->io_write);
@@ -201,7 +204,7 @@ bool test_lwext4_dir_test(int len)
        diff = stop - start;
        test_lwext4_dir_ls("/mp/dir1");
        printf("test_lwext4_dir_test: time: %d ms\n", (int)diff);
-       printf("test_lwext4_dir_test: av: %d ms/entry\n", (int)diff / len);
+       printf("test_lwext4_dir_test: av: %d ms/entry\n", (int)diff / (len + 1));
        printf_io_timings(diff);
        return true;
 }
@@ -217,7 +220,7 @@ static int verify_buf(const unsigned char *b, size_t len, unsigned char c)
        return 0;
 }
 
-bool test_lwext4_file_test(uint32_t rw_szie, uint32_t rw_count)
+bool test_lwext4_file_test(uint32_t rw_size, uint32_t rw_count)
 {
        int r;
        size_t size;
@@ -230,8 +233,11 @@ bool test_lwext4_file_test(uint32_t rw_szie, uint32_t rw_count)
 
        ext4_file f;
 
+       if (rw_size > READ_MAX_WRITE_SZIZE)
+               return false;
+
        printf("file_test:\n");
-       printf("  rw size: %" PRIu32 "\n", rw_szie);
+       printf("  rw size: %" PRIu32 "\n", rw_size);
        printf("  rw count: %" PRIu32 "\n", rw_count);
 
        /*Add hello world file.*/
@@ -247,15 +253,15 @@ bool test_lwext4_file_test(uint32_t rw_szie, uint32_t rw_count)
                return false;
        }
 
-       printf("ext4_write: %" PRIu32 " * %" PRIu32 " ...\n", rw_szie,
+       printf("ext4_write: %" PRIu32 " * %" PRIu32 " ...\n", rw_size,
               rw_count);
        for (i = 0; i < rw_count; ++i) {
 
-               memset(rw_buff, i % 10 + '0', rw_szie);
+               memset(rw_buff, i % 10 + '0', rw_size);
 
-               r = ext4_fwrite(&f, rw_buff, rw_szie, &size);
+               r = ext4_fwrite(&f, rw_buff, rw_size, &size);
 
-               if ((r != EOK) || (size != rw_szie))
+               if ((r != EOK) || (size != rw_size))
                        break;
        }
 
@@ -266,7 +272,7 @@ bool test_lwext4_file_test(uint32_t rw_szie, uint32_t rw_count)
 
        stop = get_ms();
        diff = stop - start;
-       size_bytes = rw_szie * rw_count;
+       size_bytes = rw_size * rw_count;
        size_bytes = (size_bytes * 1000) / 1024;
        kbps = (size_bytes) / (diff + 1);
        printf("  write time: %d ms\n", (int)diff);
@@ -282,15 +288,15 @@ bool test_lwext4_file_test(uint32_t rw_szie, uint32_t rw_count)
                return false;
        }
 
-       printf("ext4_read: %" PRIu32 " * %" PRIu32 " ...\n", rw_szie, rw_count);
+       printf("ext4_read: %" PRIu32 " * %" PRIu32 " ...\n", rw_size, rw_count);
 
        for (i = 0; i < rw_count; ++i) {
-               r = ext4_fread(&f, rw_buff, rw_szie, &size);
+               r = ext4_fread(&f, rw_buff, rw_size, &size);
 
-               if ((r != EOK) || (size != rw_szie))
+               if ((r != EOK) || (size != rw_size))
                        break;
 
-               if (verify_buf(rw_buff, rw_szie, i % 10 + '0'))
+               if (verify_buf(rw_buff, rw_size, i % 10 + '0'))
                        break;
        }
 
@@ -301,7 +307,7 @@ bool test_lwext4_file_test(uint32_t rw_szie, uint32_t rw_count)
 
        stop = get_ms();
        diff = stop - start;
-       size_bytes = rw_szie * rw_count;
+       size_bytes = rw_size * rw_count;
        size_bytes = (size_bytes * 1000) / 1024;
        kbps = (size_bytes) / (diff + 1);
        printf("  read time: %d ms\n", (int)diff);