MemFilesystem_test

Dependencies:   SDFileSystem mbed

Committer:
mzta
Date:
Wed Apr 01 16:33:30 2015 +0000
Revision:
0:f1015c4245f6
Child:
1:48383762a1ff
MemFileSystem test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mzta 0:f1015c4245f6 1 #include "mbed.h"
mzta 0:f1015c4245f6 2 #include "MemFileSystem.h"
mzta 0:f1015c4245f6 3 #include "SDFileSystem.h"
mzta 0:f1015c4245f6 4
mzta 0:f1015c4245f6 5 SDFileSystem sd(P8_5, P8_6, P8_3, P8_4, "sd");
mzta 0:f1015c4245f6 6
mzta 0:f1015c4245f6 7 namespace {
mzta 0:f1015c4245f6 8 const char *mem_file_path = "/ram/out.txt";
mzta 0:f1015c4245f6 9 const char *sd_file_path = "/sd/fatdump";
mzta 0:f1015c4245f6 10 const int DATA_SIZE = 10 * 1024;
mzta 0:f1015c4245f6 11 }
mzta 0:f1015c4245f6 12
mzta 0:f1015c4245f6 13 int main()
mzta 0:f1015c4245f6 14 {
mzta 0:f1015c4245f6 15 uint8_t data_written[DATA_SIZE] = { 0 };
mzta 0:f1015c4245f6 16 bool result = true;
mzta 0:f1015c4245f6 17
mzta 0:f1015c4245f6 18 MemFileSystem *ramfs1 = new MemFileSystem("ram");
mzta 0:f1015c4245f6 19 ramfs1->format();
mzta 0:f1015c4245f6 20 {
mzta 0:f1015c4245f6 21 FILE *f = fopen(mem_file_path, "w");
mzta 0:f1015c4245f6 22
mzta 0:f1015c4245f6 23 printf("Mem: Writing ... ");
mzta 0:f1015c4245f6 24 for (int i = 0; i < DATA_SIZE; i++) {
mzta 0:f1015c4245f6 25 data_written[i] = rand() % 0XFF;
mzta 0:f1015c4245f6 26 fprintf(f, "%c", data_written[i]);
mzta 0:f1015c4245f6 27 }
mzta 0:f1015c4245f6 28 printf("[OK]\r\n");
mzta 0:f1015c4245f6 29 fclose(f);
mzta 0:f1015c4245f6 30 }
mzta 0:f1015c4245f6 31
mzta 0:f1015c4245f6 32 {
mzta 0:f1015c4245f6 33 FILE *f = fopen(mem_file_path, "r");
mzta 0:f1015c4245f6 34 printf("Mem: Reading data ... ");
mzta 0:f1015c4245f6 35 for (int i = 0; i < DATA_SIZE; i++) {
mzta 0:f1015c4245f6 36 uint8_t data = fgetc(f);
mzta 0:f1015c4245f6 37 if (data != data_written[i]) {
mzta 0:f1015c4245f6 38 result = false;
mzta 0:f1015c4245f6 39 break;
mzta 0:f1015c4245f6 40 }
mzta 0:f1015c4245f6 41 }
mzta 0:f1015c4245f6 42 printf("[%s]\r\n", result ? "OK" : "FAIL");
mzta 0:f1015c4245f6 43 fclose(f);
mzta 0:f1015c4245f6 44 }
mzta 0:f1015c4245f6 45
mzta 0:f1015c4245f6 46 {
mzta 0:f1015c4245f6 47 FILE *f = fopen(sd_file_path, "w");
mzta 0:f1015c4245f6 48 printf("Dump from MemFs to SDFs ... ");
mzta 0:f1015c4245f6 49 ramfs1->dump(f);
mzta 0:f1015c4245f6 50 printf("[OK]\r\n");
mzta 0:f1015c4245f6 51 fclose(f);
mzta 0:f1015c4245f6 52 }
mzta 0:f1015c4245f6 53
mzta 0:f1015c4245f6 54 delete ramfs1;
mzta 0:f1015c4245f6 55 MemFileSystem *ramfs2 = new MemFileSystem("ram");
mzta 0:f1015c4245f6 56
mzta 0:f1015c4245f6 57 {
mzta 0:f1015c4245f6 58 FILE *f = fopen(sd_file_path, "r");
mzta 0:f1015c4245f6 59 printf("Load from SDFs to MemFs ... ");
mzta 0:f1015c4245f6 60 ramfs2->load(f);
mzta 0:f1015c4245f6 61 printf("[OK]\r\n");
mzta 0:f1015c4245f6 62 fclose(f);
mzta 0:f1015c4245f6 63 }
mzta 0:f1015c4245f6 64
mzta 0:f1015c4245f6 65 {
mzta 0:f1015c4245f6 66 FILE *f = fopen(mem_file_path, "r");
mzta 0:f1015c4245f6 67 printf("Mem: Reading data ... ");
mzta 0:f1015c4245f6 68 for (int i = 0; i < DATA_SIZE; i++) {
mzta 0:f1015c4245f6 69 uint8_t data = fgetc(f);
mzta 0:f1015c4245f6 70 if (data != data_written[i]) {
mzta 0:f1015c4245f6 71 result = false;
mzta 0:f1015c4245f6 72 break;
mzta 0:f1015c4245f6 73 }
mzta 0:f1015c4245f6 74 }
mzta 0:f1015c4245f6 75 printf("[%s]\r\n", result ? "OK" : "FAIL");
mzta 0:f1015c4245f6 76 fclose(f);
mzta 0:f1015c4245f6 77 }
mzta 0:f1015c4245f6 78 }