+ 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;
+
+}
+
+/*
+ * 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();
+ kprintf("%d ", test_disk[i]);
+ }
+ kprintf("\nend\n");
+
+ memset(test_buf, 0, sizeof(test_buf));
+ memset(test_buf_save, 0, sizeof(test_buf_save));
+}