SDHI_driver patch (mbedOS 5.11.5)

Committer:
tvendov
Date:
Fri Mar 29 19:47:34 2019 +0200
Revision:
2:7c75ab32d7c9
Fix: Folder structure changed. All SD Auto tests pass with OK!

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tvendov 2:7c75ab32d7c9 1 /* mbed Microcontroller Library
tvendov 2:7c75ab32d7c9 2 * Copyright (c) 2016 ARM Limited
tvendov 2:7c75ab32d7c9 3 *
tvendov 2:7c75ab32d7c9 4 * Licensed under the Apache License, Version 2.0 (the "License");
tvendov 2:7c75ab32d7c9 5 * you may not use this file except in compliance with the License.
tvendov 2:7c75ab32d7c9 6 * You may obtain a copy of the License at
tvendov 2:7c75ab32d7c9 7 *
tvendov 2:7c75ab32d7c9 8 * http://www.apache.org/licenses/LICENSE-2.0
tvendov 2:7c75ab32d7c9 9 *
tvendov 2:7c75ab32d7c9 10 * Unless required by applicable law or agreed to in writing, software
tvendov 2:7c75ab32d7c9 11 * distributed under the License is distributed on an "AS IS" BASIS,
tvendov 2:7c75ab32d7c9 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
tvendov 2:7c75ab32d7c9 13 * See the License for the specific language governing permissions and
tvendov 2:7c75ab32d7c9 14 * limitations under the License.
tvendov 2:7c75ab32d7c9 15 */
tvendov 2:7c75ab32d7c9 16
tvendov 2:7c75ab32d7c9 17 #include "mbed.h"
tvendov 2:7c75ab32d7c9 18 #include "greentea-client/test_env.h"
tvendov 2:7c75ab32d7c9 19 #include "unity.h"
tvendov 2:7c75ab32d7c9 20 #include "utest.h"
tvendov 2:7c75ab32d7c9 21 #include <stdlib.h>
tvendov 2:7c75ab32d7c9 22 #include <errno.h>
tvendov 2:7c75ab32d7c9 23
tvendov 2:7c75ab32d7c9 24 using namespace utest::v1;
tvendov 2:7c75ab32d7c9 25
tvendov 2:7c75ab32d7c9 26 // test configuration
tvendov 2:7c75ab32d7c9 27 #ifndef MBED_TEST_FILESYSTEM
tvendov 2:7c75ab32d7c9 28 #define MBED_TEST_FILESYSTEM FATFileSystem
tvendov 2:7c75ab32d7c9 29 #endif
tvendov 2:7c75ab32d7c9 30
tvendov 2:7c75ab32d7c9 31 #ifndef MBED_TEST_FILESYSTEM_DECL
tvendov 2:7c75ab32d7c9 32 #define MBED_TEST_FILESYSTEM_DECL MBED_TEST_FILESYSTEM fs("fs")
tvendov 2:7c75ab32d7c9 33 #endif
tvendov 2:7c75ab32d7c9 34
tvendov 2:7c75ab32d7c9 35 #ifndef MBED_TEST_BLOCKDEVICE
tvendov 2:7c75ab32d7c9 36 #define MBED_TEST_BLOCKDEVICE RZ_SDHIBlockDevice
tvendov 2:7c75ab32d7c9 37 #define MBED_TEST_BLOCKDEVICE_DECL SDHIBlockDevice bd(MBED_CONF_RZ_SDHI_CH);
tvendov 2:7c75ab32d7c9 38 #endif
tvendov 2:7c75ab32d7c9 39
tvendov 2:7c75ab32d7c9 40 #ifndef MBED_TEST_BLOCKDEVICE_DECL
tvendov 2:7c75ab32d7c9 41 #define MBED_TEST_BLOCKDEVICE_DECL MBED_TEST_BLOCKDEVICE bd
tvendov 2:7c75ab32d7c9 42 #endif
tvendov 2:7c75ab32d7c9 43
tvendov 2:7c75ab32d7c9 44 #ifndef MBED_TEST_FILES
tvendov 2:7c75ab32d7c9 45 #define MBED_TEST_FILES 4
tvendov 2:7c75ab32d7c9 46 #endif
tvendov 2:7c75ab32d7c9 47
tvendov 2:7c75ab32d7c9 48 #ifndef MBED_TEST_DIRS
tvendov 2:7c75ab32d7c9 49 #define MBED_TEST_DIRS 4
tvendov 2:7c75ab32d7c9 50 #endif
tvendov 2:7c75ab32d7c9 51
tvendov 2:7c75ab32d7c9 52 #ifndef MBED_TEST_BUFFER
tvendov 2:7c75ab32d7c9 53 #define MBED_TEST_BUFFER 8192
tvendov 2:7c75ab32d7c9 54 #endif
tvendov 2:7c75ab32d7c9 55
tvendov 2:7c75ab32d7c9 56 #ifndef MBED_TEST_TIMEOUT
tvendov 2:7c75ab32d7c9 57 #define MBED_TEST_TIMEOUT 120
tvendov 2:7c75ab32d7c9 58 #endif
tvendov 2:7c75ab32d7c9 59
tvendov 2:7c75ab32d7c9 60
tvendov 2:7c75ab32d7c9 61 // declarations
tvendov 2:7c75ab32d7c9 62 #define STRINGIZE(x) STRINGIZE2(x)
tvendov 2:7c75ab32d7c9 63 #define STRINGIZE2(x) #x
tvendov 2:7c75ab32d7c9 64 #define INCLUDE(x, ext) STRINGIZE(x.ext)
tvendov 2:7c75ab32d7c9 65
tvendov 2:7c75ab32d7c9 66 #include INCLUDE(MBED_TEST_FILESYSTEM, h)
tvendov 2:7c75ab32d7c9 67 #include INCLUDE(MBED_TEST_BLOCKDEVICE, hpp)
tvendov 2:7c75ab32d7c9 68
tvendov 2:7c75ab32d7c9 69 MBED_TEST_FILESYSTEM_DECL;
tvendov 2:7c75ab32d7c9 70 MBED_TEST_BLOCKDEVICE_DECL;
tvendov 2:7c75ab32d7c9 71
tvendov 2:7c75ab32d7c9 72 Dir dir[MBED_TEST_DIRS];
tvendov 2:7c75ab32d7c9 73 File file[MBED_TEST_FILES];
tvendov 2:7c75ab32d7c9 74 DIR *dd[MBED_TEST_DIRS];
tvendov 2:7c75ab32d7c9 75 FILE *fd[MBED_TEST_FILES];
tvendov 2:7c75ab32d7c9 76 struct dirent ent;
tvendov 2:7c75ab32d7c9 77 struct dirent *ed;
tvendov 2:7c75ab32d7c9 78 uint8_t buffer[MBED_TEST_BUFFER];
tvendov 2:7c75ab32d7c9 79 uint8_t rbuffer[MBED_TEST_BUFFER];
tvendov 2:7c75ab32d7c9 80 uint8_t wbuffer[MBED_TEST_BUFFER];
tvendov 2:7c75ab32d7c9 81
tvendov 2:7c75ab32d7c9 82 static char file_counter = 0;
tvendov 2:7c75ab32d7c9 83 const char *filenames[] = {"smallavacado", "mediumavacado", "largeavacado",
tvendov 2:7c75ab32d7c9 84 "blockfile", "bigblockfile", "hello", ".", ".."
tvendov 2:7c75ab32d7c9 85 };
tvendov 2:7c75ab32d7c9 86
tvendov 2:7c75ab32d7c9 87 // tests
tvendov 2:7c75ab32d7c9 88
tvendov 2:7c75ab32d7c9 89 void test_file_tests()
tvendov 2:7c75ab32d7c9 90 {
tvendov 2:7c75ab32d7c9 91 int res = bd.init();
tvendov 2:7c75ab32d7c9 92 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 93
tvendov 2:7c75ab32d7c9 94 {
tvendov 2:7c75ab32d7c9 95 res = MBED_TEST_FILESYSTEM::format(&bd);
tvendov 2:7c75ab32d7c9 96 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 97 }
tvendov 2:7c75ab32d7c9 98
tvendov 2:7c75ab32d7c9 99 res = bd.deinit();
tvendov 2:7c75ab32d7c9 100 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 101 }
tvendov 2:7c75ab32d7c9 102
tvendov 2:7c75ab32d7c9 103 void test_simple_file_test()
tvendov 2:7c75ab32d7c9 104 {
tvendov 2:7c75ab32d7c9 105 int res = bd.init();
tvendov 2:7c75ab32d7c9 106 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 107
tvendov 2:7c75ab32d7c9 108 {
tvendov 2:7c75ab32d7c9 109 size_t size;
tvendov 2:7c75ab32d7c9 110 res = fs.mount(&bd);
tvendov 2:7c75ab32d7c9 111 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 112 res = file[0].open(&fs, "hello", O_WRONLY | O_CREAT);
tvendov 2:7c75ab32d7c9 113 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 114 size = strlen("Hello World!\n");
tvendov 2:7c75ab32d7c9 115 memcpy(wbuffer, "Hello World!\n", size);
tvendov 2:7c75ab32d7c9 116 res = file[0].write(wbuffer, size);
tvendov 2:7c75ab32d7c9 117 TEST_ASSERT_EQUAL(size, res);
tvendov 2:7c75ab32d7c9 118 res = file[0].close();
tvendov 2:7c75ab32d7c9 119 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 120 res = file[0].open(&fs, "hello", O_RDONLY);
tvendov 2:7c75ab32d7c9 121 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 122 size = strlen("Hello World!\n");
tvendov 2:7c75ab32d7c9 123 res = file[0].read(rbuffer, size);
tvendov 2:7c75ab32d7c9 124 TEST_ASSERT_EQUAL(size, res);
tvendov 2:7c75ab32d7c9 125 res = memcmp(rbuffer, wbuffer, size);
tvendov 2:7c75ab32d7c9 126 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 127 res = file[0].close();
tvendov 2:7c75ab32d7c9 128 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 129 res = fs.unmount();
tvendov 2:7c75ab32d7c9 130 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 131 }
tvendov 2:7c75ab32d7c9 132
tvendov 2:7c75ab32d7c9 133 res = bd.deinit();
tvendov 2:7c75ab32d7c9 134 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 135 }
tvendov 2:7c75ab32d7c9 136
tvendov 2:7c75ab32d7c9 137 template <int file_size, int write_size, int read_size>
tvendov 2:7c75ab32d7c9 138 void test_write_file_test()
tvendov 2:7c75ab32d7c9 139 {
tvendov 2:7c75ab32d7c9 140 int res = bd.init();
tvendov 2:7c75ab32d7c9 141 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 142
tvendov 2:7c75ab32d7c9 143 {
tvendov 2:7c75ab32d7c9 144 size_t size = file_size;
tvendov 2:7c75ab32d7c9 145 size_t chunk = write_size;
tvendov 2:7c75ab32d7c9 146 srand(0);
tvendov 2:7c75ab32d7c9 147 res = fs.mount(&bd);
tvendov 2:7c75ab32d7c9 148 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 149 res = file[0].open(&fs, filenames[file_counter], O_WRONLY | O_CREAT);
tvendov 2:7c75ab32d7c9 150 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 151 for (size_t i = 0; i < size; i += chunk) {
tvendov 2:7c75ab32d7c9 152 chunk = (chunk < size - i) ? chunk : size - i;
tvendov 2:7c75ab32d7c9 153 for (size_t b = 0; b < chunk; b++) {
tvendov 2:7c75ab32d7c9 154 buffer[b] = rand() & 0xff;
tvendov 2:7c75ab32d7c9 155 }
tvendov 2:7c75ab32d7c9 156 res = file[0].write(buffer, chunk);
tvendov 2:7c75ab32d7c9 157 TEST_ASSERT_EQUAL(chunk, res);
tvendov 2:7c75ab32d7c9 158 }
tvendov 2:7c75ab32d7c9 159 res = file[0].close();
tvendov 2:7c75ab32d7c9 160 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 161 res = fs.unmount();
tvendov 2:7c75ab32d7c9 162 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 163 }
tvendov 2:7c75ab32d7c9 164
tvendov 2:7c75ab32d7c9 165 {
tvendov 2:7c75ab32d7c9 166 size_t size = file_size;
tvendov 2:7c75ab32d7c9 167 size_t chunk = read_size;
tvendov 2:7c75ab32d7c9 168 srand(0);
tvendov 2:7c75ab32d7c9 169 res = fs.mount(&bd);
tvendov 2:7c75ab32d7c9 170 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 171 res = file[0].open(&fs, filenames[file_counter], O_RDONLY);
tvendov 2:7c75ab32d7c9 172 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 173 for (size_t i = 0; i < size; i += chunk) {
tvendov 2:7c75ab32d7c9 174 chunk = (chunk < size - i) ? chunk : size - i;
tvendov 2:7c75ab32d7c9 175 res = file[0].read(buffer, chunk);
tvendov 2:7c75ab32d7c9 176 TEST_ASSERT_EQUAL(chunk, res);
tvendov 2:7c75ab32d7c9 177 for (size_t b = 0; b < chunk && i + b < size; b++) {
tvendov 2:7c75ab32d7c9 178 res = buffer[b];
tvendov 2:7c75ab32d7c9 179 TEST_ASSERT_EQUAL(rand() & 0xff, res);
tvendov 2:7c75ab32d7c9 180 }
tvendov 2:7c75ab32d7c9 181 }
tvendov 2:7c75ab32d7c9 182 res = file[0].close();
tvendov 2:7c75ab32d7c9 183 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 184 res = fs.unmount();
tvendov 2:7c75ab32d7c9 185 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 186 }
tvendov 2:7c75ab32d7c9 187
tvendov 2:7c75ab32d7c9 188 file_counter++;
tvendov 2:7c75ab32d7c9 189 res = bd.deinit();
tvendov 2:7c75ab32d7c9 190 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 191 }
tvendov 2:7c75ab32d7c9 192
tvendov 2:7c75ab32d7c9 193 void test_non_overlap_check()
tvendov 2:7c75ab32d7c9 194 {
tvendov 2:7c75ab32d7c9 195 int res = bd.init();
tvendov 2:7c75ab32d7c9 196 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 197
tvendov 2:7c75ab32d7c9 198 {
tvendov 2:7c75ab32d7c9 199 size_t size = 32;
tvendov 2:7c75ab32d7c9 200 size_t chunk = 29;
tvendov 2:7c75ab32d7c9 201 srand(0);
tvendov 2:7c75ab32d7c9 202 res = fs.mount(&bd);
tvendov 2:7c75ab32d7c9 203 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 204 res = file[0].open(&fs, "smallavacado", O_RDONLY);
tvendov 2:7c75ab32d7c9 205 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 206 for (size_t i = 0; i < size; i += chunk) {
tvendov 2:7c75ab32d7c9 207 chunk = (chunk < size - i) ? chunk : size - i;
tvendov 2:7c75ab32d7c9 208 res = file[0].read(buffer, chunk);
tvendov 2:7c75ab32d7c9 209 TEST_ASSERT_EQUAL(chunk, res);
tvendov 2:7c75ab32d7c9 210 for (size_t b = 0; b < chunk && i + b < size; b++) {
tvendov 2:7c75ab32d7c9 211 res = buffer[b];
tvendov 2:7c75ab32d7c9 212 TEST_ASSERT_EQUAL(rand() & 0xff, res);
tvendov 2:7c75ab32d7c9 213 }
tvendov 2:7c75ab32d7c9 214 }
tvendov 2:7c75ab32d7c9 215 res = file[0].close();
tvendov 2:7c75ab32d7c9 216 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 217 res = fs.unmount();
tvendov 2:7c75ab32d7c9 218 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 219 }
tvendov 2:7c75ab32d7c9 220
tvendov 2:7c75ab32d7c9 221 {
tvendov 2:7c75ab32d7c9 222 size_t size = 8192;
tvendov 2:7c75ab32d7c9 223 size_t chunk = 29;
tvendov 2:7c75ab32d7c9 224 srand(0);
tvendov 2:7c75ab32d7c9 225 res = fs.mount(&bd);
tvendov 2:7c75ab32d7c9 226 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 227 res = file[0].open(&fs, "mediumavacado", O_RDONLY);
tvendov 2:7c75ab32d7c9 228 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 229 for (size_t i = 0; i < size; i += chunk) {
tvendov 2:7c75ab32d7c9 230 chunk = (chunk < size - i) ? chunk : size - i;
tvendov 2:7c75ab32d7c9 231 res = file[0].read(buffer, chunk);
tvendov 2:7c75ab32d7c9 232 TEST_ASSERT_EQUAL(chunk, res);
tvendov 2:7c75ab32d7c9 233 for (size_t b = 0; b < chunk && i + b < size; b++) {
tvendov 2:7c75ab32d7c9 234 res = buffer[b];
tvendov 2:7c75ab32d7c9 235 TEST_ASSERT_EQUAL(rand() & 0xff, res);
tvendov 2:7c75ab32d7c9 236 }
tvendov 2:7c75ab32d7c9 237 }
tvendov 2:7c75ab32d7c9 238 res = file[0].close();
tvendov 2:7c75ab32d7c9 239 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 240 res = fs.unmount();
tvendov 2:7c75ab32d7c9 241 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 242 }
tvendov 2:7c75ab32d7c9 243
tvendov 2:7c75ab32d7c9 244 {
tvendov 2:7c75ab32d7c9 245 size_t size = 262144;
tvendov 2:7c75ab32d7c9 246 size_t chunk = 29;
tvendov 2:7c75ab32d7c9 247 srand(0);
tvendov 2:7c75ab32d7c9 248 res = fs.mount(&bd);
tvendov 2:7c75ab32d7c9 249 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 250 res = file[0].open(&fs, "largeavacado", O_RDONLY);
tvendov 2:7c75ab32d7c9 251 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 252 for (size_t i = 0; i < size; i += chunk) {
tvendov 2:7c75ab32d7c9 253 chunk = (chunk < size - i) ? chunk : size - i;
tvendov 2:7c75ab32d7c9 254 res = file[0].read(buffer, chunk);
tvendov 2:7c75ab32d7c9 255 TEST_ASSERT_EQUAL(chunk, res);
tvendov 2:7c75ab32d7c9 256 for (size_t b = 0; b < chunk && i + b < size; b++) {
tvendov 2:7c75ab32d7c9 257 res = buffer[b];
tvendov 2:7c75ab32d7c9 258 TEST_ASSERT_EQUAL(rand() & 0xff, res);
tvendov 2:7c75ab32d7c9 259 }
tvendov 2:7c75ab32d7c9 260 }
tvendov 2:7c75ab32d7c9 261 res = file[0].close();
tvendov 2:7c75ab32d7c9 262 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 263 res = fs.unmount();
tvendov 2:7c75ab32d7c9 264 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 265 }
tvendov 2:7c75ab32d7c9 266
tvendov 2:7c75ab32d7c9 267 res = bd.deinit();
tvendov 2:7c75ab32d7c9 268 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 269 }
tvendov 2:7c75ab32d7c9 270
tvendov 2:7c75ab32d7c9 271 void test_dir_check()
tvendov 2:7c75ab32d7c9 272 {
tvendov 2:7c75ab32d7c9 273
tvendov 2:7c75ab32d7c9 274 int res = bd.init();
tvendov 2:7c75ab32d7c9 275 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 276
tvendov 2:7c75ab32d7c9 277 {
tvendov 2:7c75ab32d7c9 278 res = fs.mount(&bd);
tvendov 2:7c75ab32d7c9 279 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 280 res = dir[0].open(&fs, "/");
tvendov 2:7c75ab32d7c9 281 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 282 int numFiles = sizeof(filenames) / sizeof(filenames[0]);
tvendov 2:7c75ab32d7c9 283 // Check the filenames in directory
tvendov 2:7c75ab32d7c9 284 while (1) {
tvendov 2:7c75ab32d7c9 285 res = dir[0].read(&ent);
tvendov 2:7c75ab32d7c9 286 if (0 == res) {
tvendov 2:7c75ab32d7c9 287 break;
tvendov 2:7c75ab32d7c9 288 }
tvendov 2:7c75ab32d7c9 289 for (int i = 0; i < numFiles ; i++) {
tvendov 2:7c75ab32d7c9 290 res = strcmp(ent.d_name, filenames[i]);
tvendov 2:7c75ab32d7c9 291 if (0 == res) {
tvendov 2:7c75ab32d7c9 292 res = ent.d_type;
tvendov 2:7c75ab32d7c9 293 if ((DT_REG != res) && (DT_DIR != res)) {
tvendov 2:7c75ab32d7c9 294 TEST_ASSERT(1);
tvendov 2:7c75ab32d7c9 295 }
tvendov 2:7c75ab32d7c9 296 break;
tvendov 2:7c75ab32d7c9 297 } else if (i == numFiles) {
tvendov 2:7c75ab32d7c9 298 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 299 }
tvendov 2:7c75ab32d7c9 300 }
tvendov 2:7c75ab32d7c9 301 }
tvendov 2:7c75ab32d7c9 302 res = dir[0].close();
tvendov 2:7c75ab32d7c9 303 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 304 res = fs.unmount();
tvendov 2:7c75ab32d7c9 305 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 306 }
tvendov 2:7c75ab32d7c9 307
tvendov 2:7c75ab32d7c9 308 res = bd.deinit();
tvendov 2:7c75ab32d7c9 309 TEST_ASSERT_EQUAL(0, res);
tvendov 2:7c75ab32d7c9 310 }
tvendov 2:7c75ab32d7c9 311
tvendov 2:7c75ab32d7c9 312
tvendov 2:7c75ab32d7c9 313 // test setup
tvendov 2:7c75ab32d7c9 314 utest::v1::status_t test_setup(const size_t number_of_cases)
tvendov 2:7c75ab32d7c9 315 {
tvendov 2:7c75ab32d7c9 316 GREENTEA_SETUP(MBED_TEST_TIMEOUT, "default_auto");
tvendov 2:7c75ab32d7c9 317 return verbose_test_setup_handler(number_of_cases);
tvendov 2:7c75ab32d7c9 318 }
tvendov 2:7c75ab32d7c9 319
tvendov 2:7c75ab32d7c9 320 Case cases[] = {
tvendov 2:7c75ab32d7c9 321 Case("File tests", test_file_tests),
tvendov 2:7c75ab32d7c9 322 Case("Simple file test", test_simple_file_test),
tvendov 2:7c75ab32d7c9 323 Case("Small file test", test_write_file_test<32, 31, 29>),
tvendov 2:7c75ab32d7c9 324 Case("Medium file test", test_write_file_test<8192, 31, 29>),
tvendov 2:7c75ab32d7c9 325 Case("Large file test", test_write_file_test<262144, 31, 29>),
tvendov 2:7c75ab32d7c9 326 Case("Block Size file test", test_write_file_test<9000, 512, 512>),
tvendov 2:7c75ab32d7c9 327 Case("Multiple block size file test", test_write_file_test<26215, MBED_TEST_BUFFER, MBED_TEST_BUFFER>),
tvendov 2:7c75ab32d7c9 328 Case("Non-overlap check", test_non_overlap_check),
tvendov 2:7c75ab32d7c9 329 Case("Dir check", test_dir_check),
tvendov 2:7c75ab32d7c9 330 };
tvendov 2:7c75ab32d7c9 331
tvendov 2:7c75ab32d7c9 332 Specification specification(test_setup, cases);
tvendov 2:7c75ab32d7c9 333
tvendov 2:7c75ab32d7c9 334 int main()
tvendov 2:7c75ab32d7c9 335 {
tvendov 2:7c75ab32d7c9 336 return !Harness::run(specification);
tvendov 2:7c75ab32d7c9 337 }