mirror of https://github.com/ARMmbed/mbed-os.git
83 lines
1.7 KiB
C++
83 lines
1.7 KiB
C++
#include "mbed.h"
|
|
|
|
#if !DEVICE_LOCALFILESYSTEM
|
|
#error [NOT_SUPPORTED] LocalFileSystem not supported
|
|
#endif
|
|
|
|
void led_blink(PinName led) {
|
|
DigitalOut myled(led);
|
|
while (1) {
|
|
myled = !myled;
|
|
wait(1.0);
|
|
}
|
|
}
|
|
|
|
void notify_completion(bool success) {
|
|
if (success) {
|
|
printf("{success}\n");
|
|
} else {
|
|
printf("{failure}\n");
|
|
}
|
|
|
|
printf("{end}\n");
|
|
led_blink(success ? LED1 : LED4);
|
|
}
|
|
|
|
#define TEST_STRING "Hello World!"
|
|
|
|
FILE* test_open(char* path, const char* mode) {
|
|
FILE *f;
|
|
f = fopen(path, mode);
|
|
if (f == NULL) {
|
|
printf("Error opening file\n");
|
|
notify_completion(false);
|
|
}
|
|
|
|
return f;
|
|
}
|
|
|
|
void test_write(FILE* f, const char* str) {
|
|
int n = fprintf(f, str);
|
|
if (n != strlen(str)) {
|
|
printf("Error writing file\n");
|
|
notify_completion(false);
|
|
}
|
|
}
|
|
|
|
void test_close(FILE* f) {
|
|
int rc = fclose(f);
|
|
if (rc != 0) {
|
|
printf("Error closing file\n");
|
|
notify_completion(false);
|
|
}
|
|
}
|
|
|
|
int main() {
|
|
LocalFileSystem local("local");
|
|
|
|
FILE *f;
|
|
char* str = TEST_STRING;
|
|
char* buffer = (char*) malloc(sizeof(unsigned char)*strlen(TEST_STRING));
|
|
int str_len = strlen(TEST_STRING);
|
|
|
|
printf("Write files\n");
|
|
char filename[32];
|
|
for (int i=0; i<10; i++) {
|
|
sprintf(filename, "/local/test_%d.txt", i);
|
|
printf("Creating file: %s\n", filename);
|
|
f = test_open(filename, "w");
|
|
test_write(f, str);
|
|
test_close(f);
|
|
}
|
|
|
|
printf("List files:\n");
|
|
DIR *d = opendir("/local");
|
|
struct dirent *p;
|
|
while((p = readdir(d)) != NULL) {
|
|
printf("%s\n", p->d_name);
|
|
}
|
|
closedir(d);
|
|
|
|
notify_completion(true);
|
|
}
|