]>
git.gir.st - tmk_keyboard.git/blob - tmk_core/tool/mbed/mbed-sdk/libraries/tests/utest/semihost_fs/semihost_fs.cpp
1 #include "TestHarness.h"
3 #include "semihost_api.h"
6 #define FILENAME "/local/out.txt"
7 #define TEST_STRING "Hello World!"
9 TEST_GROUP(FirstTestGroup
)
12 FILE *test_open(const char *mode
) {
13 FILE *f
= fopen(FILENAME
, mode
);
17 bool test_write(FILE *f
, char *str
, int str_len
) {
18 int n
= fprintf(f
, str
);
19 return (n
== str_len
) ? true : false;
22 bool test_read(FILE *f
, char *str
, int str_len
) {
23 int n
= fread(str
, sizeof(unsigned char), str_len
, f
);
24 return (n
== str_len
) ? true : false;
27 bool test_close(FILE *f
) {
29 return rc
? true : false;
34 TEST(FirstTestGroup
, FirstTest
)
36 CHECK_TEXT(semihost_connected(), "Semihost not connected")
38 LocalFileSystem
local("local");
40 char *str
= TEST_STRING
;
41 char *buffer
= (char *)malloc(sizeof(unsigned char) * strlen(TEST_STRING
));
42 int str_len
= strlen(TEST_STRING
);
44 CHECK_TEXT(buffer
!= NULL
, "Buffer allocation failed");
45 CHECK_TEXT(str_len
> 0, "Test string is empty (len <= 0)");
48 // Perform write / read tests
52 CHECK_TEXT(f
!= NULL
, "Error opening file for writing")
53 CHECK_TEXT(test_write(f
, str
, str_len
), "Error writing file");
54 CHECK_TEXT(test_close(f
) != EOF
, "Error closing file after write");
58 CHECK_TEXT(f
!= NULL
, "Error opening file for reading")
59 CHECK_TEXT(test_read(f
, buffer
, str_len
), "Error reading file");
60 CHECK_TEXT(test_close(f
) != EOF
, "Error closing file after read");
62 CHECK(strncmp(buffer
, str
, str_len
) == 0);