RTC auf true

Committer:
kevman
Date:
Wed Mar 13 11:03:24 2019 +0000
Revision:
2:7aab896b1a3b
2019-03-13

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kevman 2:7aab896b1a3b 1 /* mbed Microcontroller Library
kevman 2:7aab896b1a3b 2 * Copyright (c) 2016 ARM Limited
kevman 2:7aab896b1a3b 3 *
kevman 2:7aab896b1a3b 4 * Licensed under the Apache License, Version 2.0 (the "License");
kevman 2:7aab896b1a3b 5 * you may not use this file except in compliance with the License.
kevman 2:7aab896b1a3b 6 * You may obtain a copy of the License at
kevman 2:7aab896b1a3b 7 *
kevman 2:7aab896b1a3b 8 * http://www.apache.org/licenses/LICENSE-2.0
kevman 2:7aab896b1a3b 9 *
kevman 2:7aab896b1a3b 10 * Unless required by applicable law or agreed to in writing, software
kevman 2:7aab896b1a3b 11 * distributed under the License is distributed on an "AS IS" BASIS,
kevman 2:7aab896b1a3b 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
kevman 2:7aab896b1a3b 13 * See the License for the specific language governing permissions and
kevman 2:7aab896b1a3b 14 * limitations under the License.
kevman 2:7aab896b1a3b 15 */
kevman 2:7aab896b1a3b 16
kevman 2:7aab896b1a3b 17 #include "mbed.h"
kevman 2:7aab896b1a3b 18 #include "greentea-client/test_env.h"
kevman 2:7aab896b1a3b 19 #include "unity.h"
kevman 2:7aab896b1a3b 20 #include "utest.h"
kevman 2:7aab896b1a3b 21 #include <stdlib.h>
kevman 2:7aab896b1a3b 22 #include <errno.h>
kevman 2:7aab896b1a3b 23
kevman 2:7aab896b1a3b 24 using namespace utest::v1;
kevman 2:7aab896b1a3b 25
kevman 2:7aab896b1a3b 26 // test configuration
kevman 2:7aab896b1a3b 27 #ifndef MBED_TEST_FILESYSTEM
kevman 2:7aab896b1a3b 28 #define MBED_TEST_FILESYSTEM FATFileSystem
kevman 2:7aab896b1a3b 29 #endif
kevman 2:7aab896b1a3b 30
kevman 2:7aab896b1a3b 31 #ifndef MBED_TEST_FILESYSTEM_DECL
kevman 2:7aab896b1a3b 32 #define MBED_TEST_FILESYSTEM_DECL MBED_TEST_FILESYSTEM fs("fs")
kevman 2:7aab896b1a3b 33 #endif
kevman 2:7aab896b1a3b 34
kevman 2:7aab896b1a3b 35 #ifndef MBED_TEST_BLOCKDEVICE
kevman 2:7aab896b1a3b 36 #define MBED_TEST_BLOCKDEVICE SDBlockDevice
kevman 2:7aab896b1a3b 37 #define MBED_TEST_BLOCKDEVICE_DECL SDBlockDevice bd(MBED_CONF_SD_SPI_MOSI, MBED_CONF_SD_SPI_MISO, MBED_CONF_SD_SPI_CLK, MBED_CONF_SD_SPI_CS);
kevman 2:7aab896b1a3b 38 #endif
kevman 2:7aab896b1a3b 39
kevman 2:7aab896b1a3b 40 #ifndef MBED_TEST_BLOCKDEVICE_DECL
kevman 2:7aab896b1a3b 41 #define MBED_TEST_BLOCKDEVICE_DECL MBED_TEST_BLOCKDEVICE bd
kevman 2:7aab896b1a3b 42 #endif
kevman 2:7aab896b1a3b 43
kevman 2:7aab896b1a3b 44 #ifndef MBED_TEST_FILES
kevman 2:7aab896b1a3b 45 #define MBED_TEST_FILES 4
kevman 2:7aab896b1a3b 46 #endif
kevman 2:7aab896b1a3b 47
kevman 2:7aab896b1a3b 48 #ifndef MBED_TEST_DIRS
kevman 2:7aab896b1a3b 49 #define MBED_TEST_DIRS 4
kevman 2:7aab896b1a3b 50 #endif
kevman 2:7aab896b1a3b 51
kevman 2:7aab896b1a3b 52 #ifndef MBED_TEST_BUFFER
kevman 2:7aab896b1a3b 53 #define MBED_TEST_BUFFER 8192
kevman 2:7aab896b1a3b 54 #endif
kevman 2:7aab896b1a3b 55
kevman 2:7aab896b1a3b 56 #ifndef MBED_TEST_TIMEOUT
kevman 2:7aab896b1a3b 57 #define MBED_TEST_TIMEOUT 120
kevman 2:7aab896b1a3b 58 #endif
kevman 2:7aab896b1a3b 59
kevman 2:7aab896b1a3b 60
kevman 2:7aab896b1a3b 61 // declarations
kevman 2:7aab896b1a3b 62 #define STRINGIZE(x) STRINGIZE2(x)
kevman 2:7aab896b1a3b 63 #define STRINGIZE2(x) #x
kevman 2:7aab896b1a3b 64 #define INCLUDE(x) STRINGIZE(x.h)
kevman 2:7aab896b1a3b 65
kevman 2:7aab896b1a3b 66 #include INCLUDE(MBED_TEST_FILESYSTEM)
kevman 2:7aab896b1a3b 67 #include INCLUDE(MBED_TEST_BLOCKDEVICE)
kevman 2:7aab896b1a3b 68
kevman 2:7aab896b1a3b 69 MBED_TEST_FILESYSTEM_DECL;
kevman 2:7aab896b1a3b 70 MBED_TEST_BLOCKDEVICE_DECL;
kevman 2:7aab896b1a3b 71
kevman 2:7aab896b1a3b 72 Dir dir[MBED_TEST_DIRS];
kevman 2:7aab896b1a3b 73 File file[MBED_TEST_FILES];
kevman 2:7aab896b1a3b 74 DIR *dd[MBED_TEST_DIRS];
kevman 2:7aab896b1a3b 75 FILE *fd[MBED_TEST_FILES];
kevman 2:7aab896b1a3b 76 struct dirent ent;
kevman 2:7aab896b1a3b 77 struct dirent *ed;
kevman 2:7aab896b1a3b 78 size_t size;
kevman 2:7aab896b1a3b 79 uint8_t buffer[MBED_TEST_BUFFER];
kevman 2:7aab896b1a3b 80 uint8_t rbuffer[MBED_TEST_BUFFER];
kevman 2:7aab896b1a3b 81 uint8_t wbuffer[MBED_TEST_BUFFER];
kevman 2:7aab896b1a3b 82
kevman 2:7aab896b1a3b 83
kevman 2:7aab896b1a3b 84 // tests
kevman 2:7aab896b1a3b 85
kevman 2:7aab896b1a3b 86 void test_seek_tests()
kevman 2:7aab896b1a3b 87 {
kevman 2:7aab896b1a3b 88 int res = bd.init();
kevman 2:7aab896b1a3b 89 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 90
kevman 2:7aab896b1a3b 91 {
kevman 2:7aab896b1a3b 92 res = MBED_TEST_FILESYSTEM::format(&bd);
kevman 2:7aab896b1a3b 93 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 94 res = fs.mount(&bd);
kevman 2:7aab896b1a3b 95 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 96 res = fs.mkdir("hello", 0777);
kevman 2:7aab896b1a3b 97 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 98 for (int i = 0; i < 132; i++) {
kevman 2:7aab896b1a3b 99 sprintf((char *)buffer, "hello/kitty%d", i);
kevman 2:7aab896b1a3b 100 res = file[0].open(&fs, (char *)buffer,
kevman 2:7aab896b1a3b 101 O_WRONLY | O_CREAT | O_APPEND);
kevman 2:7aab896b1a3b 102 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 103
kevman 2:7aab896b1a3b 104 size = strlen("kittycatcat");
kevman 2:7aab896b1a3b 105 memcpy(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 106 for (int j = 0; j < 132; j++) {
kevman 2:7aab896b1a3b 107 file[0].write(buffer, size);
kevman 2:7aab896b1a3b 108 }
kevman 2:7aab896b1a3b 109 res = file[0].close();
kevman 2:7aab896b1a3b 110 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 111 }
kevman 2:7aab896b1a3b 112 res = fs.unmount();
kevman 2:7aab896b1a3b 113 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 114 }
kevman 2:7aab896b1a3b 115
kevman 2:7aab896b1a3b 116 res = bd.deinit();
kevman 2:7aab896b1a3b 117 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 118 }
kevman 2:7aab896b1a3b 119
kevman 2:7aab896b1a3b 120 void test_simple_dir_seek()
kevman 2:7aab896b1a3b 121 {
kevman 2:7aab896b1a3b 122 int res = bd.init();
kevman 2:7aab896b1a3b 123 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 124
kevman 2:7aab896b1a3b 125 {
kevman 2:7aab896b1a3b 126 res = fs.mount(&bd);
kevman 2:7aab896b1a3b 127 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 128 res = dir[0].open(&fs, "hello");
kevman 2:7aab896b1a3b 129 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 130 #if (MBED_TEST_FILESYSTEM != FATFileSystem)
kevman 2:7aab896b1a3b 131 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 132 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 133 res = strcmp(ent.d_name, ".");
kevman 2:7aab896b1a3b 134 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 135 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 136 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 137 res = strcmp(ent.d_name, "..");
kevman 2:7aab896b1a3b 138 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 139 #endif
kevman 2:7aab896b1a3b 140
kevman 2:7aab896b1a3b 141 off_t pos;
kevman 2:7aab896b1a3b 142 int i;
kevman 2:7aab896b1a3b 143 for (i = 0; i < 4; i++) {
kevman 2:7aab896b1a3b 144 sprintf((char *)buffer, "kitty%d", i);
kevman 2:7aab896b1a3b 145 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 146 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 147 res = strcmp(ent.d_name, (char *)buffer);
kevman 2:7aab896b1a3b 148 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 149 pos = dir[0].tell();
kevman 2:7aab896b1a3b 150 }
kevman 2:7aab896b1a3b 151 res = pos >= 0;
kevman 2:7aab896b1a3b 152 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 153
kevman 2:7aab896b1a3b 154 dir[0].seek(pos);
kevman 2:7aab896b1a3b 155 sprintf((char *)buffer, "kitty%d", i);
kevman 2:7aab896b1a3b 156 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 157 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 158 res = strcmp(ent.d_name, (char *)buffer);
kevman 2:7aab896b1a3b 159 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 160
kevman 2:7aab896b1a3b 161 dir[0].rewind();
kevman 2:7aab896b1a3b 162 sprintf((char *)buffer, "kitty%d", 0);
kevman 2:7aab896b1a3b 163 #if (MBED_TEST_FILESYSTEM != FATFileSystem)
kevman 2:7aab896b1a3b 164 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 165 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 166 res = strcmp(ent.d_name, ".");
kevman 2:7aab896b1a3b 167 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 168 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 169 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 170 res = strcmp(ent.d_name, "..");
kevman 2:7aab896b1a3b 171 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 172 #endif
kevman 2:7aab896b1a3b 173 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 174 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 175 res = strcmp(ent.d_name, (char *)buffer);
kevman 2:7aab896b1a3b 176 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 177
kevman 2:7aab896b1a3b 178 dir[0].seek(pos);
kevman 2:7aab896b1a3b 179 sprintf((char *)buffer, "kitty%d", i);
kevman 2:7aab896b1a3b 180 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 181 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 182 res = strcmp(ent.d_name, (char *)buffer);
kevman 2:7aab896b1a3b 183 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 184 res = dir[0].close();
kevman 2:7aab896b1a3b 185 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 186 res = fs.unmount();
kevman 2:7aab896b1a3b 187 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 188 }
kevman 2:7aab896b1a3b 189
kevman 2:7aab896b1a3b 190 res = bd.deinit();
kevman 2:7aab896b1a3b 191 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 192 }
kevman 2:7aab896b1a3b 193
kevman 2:7aab896b1a3b 194 void test_large_dir_seek()
kevman 2:7aab896b1a3b 195 {
kevman 2:7aab896b1a3b 196 int res = bd.init();
kevman 2:7aab896b1a3b 197 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 198
kevman 2:7aab896b1a3b 199 {
kevman 2:7aab896b1a3b 200 res = fs.mount(&bd);
kevman 2:7aab896b1a3b 201 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 202 res = dir[0].open(&fs, "hello");
kevman 2:7aab896b1a3b 203 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 204 #if (MBED_TEST_FILESYSTEM != FATFileSystem)
kevman 2:7aab896b1a3b 205 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 206 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 207 res = strcmp(ent.d_name, ".");
kevman 2:7aab896b1a3b 208 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 209 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 210 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 211 res = strcmp(ent.d_name, "..");
kevman 2:7aab896b1a3b 212 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 213 #endif
kevman 2:7aab896b1a3b 214
kevman 2:7aab896b1a3b 215 off_t pos;
kevman 2:7aab896b1a3b 216 int i;
kevman 2:7aab896b1a3b 217 for (i = 0; i < 128; i++) {
kevman 2:7aab896b1a3b 218 sprintf((char *)buffer, "kitty%d", i);
kevman 2:7aab896b1a3b 219 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 220 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 221 res = strcmp(ent.d_name, (char *)buffer);
kevman 2:7aab896b1a3b 222 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 223 pos = dir[0].tell();
kevman 2:7aab896b1a3b 224 }
kevman 2:7aab896b1a3b 225 res = pos >= 0;
kevman 2:7aab896b1a3b 226 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 227
kevman 2:7aab896b1a3b 228 dir[0].seek(pos);
kevman 2:7aab896b1a3b 229 sprintf((char *)buffer, "kitty%d", i);
kevman 2:7aab896b1a3b 230 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 231 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 232 res = strcmp(ent.d_name, (char *)buffer);
kevman 2:7aab896b1a3b 233 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 234
kevman 2:7aab896b1a3b 235 dir[0].rewind();
kevman 2:7aab896b1a3b 236 sprintf((char *)buffer, "kitty%d", 0);
kevman 2:7aab896b1a3b 237 #if (MBED_TEST_FILESYSTEM != FATFileSystem)
kevman 2:7aab896b1a3b 238 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 239 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 240 res = strcmp(ent.d_name, ".");
kevman 2:7aab896b1a3b 241 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 242 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 243 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 244 res = strcmp(ent.d_name, "..");
kevman 2:7aab896b1a3b 245 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 246 #endif
kevman 2:7aab896b1a3b 247 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 248 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 249 res = strcmp(ent.d_name, (char *)buffer);
kevman 2:7aab896b1a3b 250 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 251
kevman 2:7aab896b1a3b 252 dir[0].seek(pos);
kevman 2:7aab896b1a3b 253 sprintf((char *)buffer, "kitty%d", i);
kevman 2:7aab896b1a3b 254 res = dir[0].read(&ent);
kevman 2:7aab896b1a3b 255 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 256 res = strcmp(ent.d_name, (char *)buffer);
kevman 2:7aab896b1a3b 257 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 258 res = dir[0].close();
kevman 2:7aab896b1a3b 259 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 260 res = fs.unmount();
kevman 2:7aab896b1a3b 261 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 262 }
kevman 2:7aab896b1a3b 263
kevman 2:7aab896b1a3b 264 res = bd.deinit();
kevman 2:7aab896b1a3b 265 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 266 }
kevman 2:7aab896b1a3b 267
kevman 2:7aab896b1a3b 268 void test_simple_file_seek()
kevman 2:7aab896b1a3b 269 {
kevman 2:7aab896b1a3b 270 int res = bd.init();
kevman 2:7aab896b1a3b 271 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 272
kevman 2:7aab896b1a3b 273 {
kevman 2:7aab896b1a3b 274 res = fs.mount(&bd);
kevman 2:7aab896b1a3b 275 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 276 res = file[0].open(&fs, "hello/kitty42", O_RDONLY);
kevman 2:7aab896b1a3b 277 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 278
kevman 2:7aab896b1a3b 279 off_t pos;
kevman 2:7aab896b1a3b 280 size = strlen("kittycatcat");
kevman 2:7aab896b1a3b 281 for (int i = 0; i < 4; i++) {
kevman 2:7aab896b1a3b 282 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 283 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 284 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 285 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 286 pos = file[0].tell();
kevman 2:7aab896b1a3b 287 }
kevman 2:7aab896b1a3b 288 res = pos >= 0;
kevman 2:7aab896b1a3b 289 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 290 res = file[0].seek(pos, SEEK_SET);
kevman 2:7aab896b1a3b 291 TEST_ASSERT_EQUAL(pos, res);
kevman 2:7aab896b1a3b 292 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 293 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 294 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 295 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 296
kevman 2:7aab896b1a3b 297 file[0].rewind();
kevman 2:7aab896b1a3b 298 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 299 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 300 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 301 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 302 res = file[0].seek(pos, SEEK_SET);
kevman 2:7aab896b1a3b 303 TEST_ASSERT_EQUAL(pos, res);
kevman 2:7aab896b1a3b 304 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 305 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 306 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 307 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 308 res = file[0].seek(-size, SEEK_CUR);
kevman 2:7aab896b1a3b 309 TEST_ASSERT_EQUAL(pos, res);
kevman 2:7aab896b1a3b 310 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 311 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 312 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 313 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 314 res = file[0].seek(-size, SEEK_END) >= 0;
kevman 2:7aab896b1a3b 315 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 316 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 317 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 318 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 319 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 320
kevman 2:7aab896b1a3b 321 size_t size = file[0].size();
kevman 2:7aab896b1a3b 322 res = file[0].seek(0, SEEK_CUR);
kevman 2:7aab896b1a3b 323 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 324 res = file[0].close();
kevman 2:7aab896b1a3b 325 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 326 res = fs.unmount();
kevman 2:7aab896b1a3b 327 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 328 }
kevman 2:7aab896b1a3b 329
kevman 2:7aab896b1a3b 330 res = bd.deinit();
kevman 2:7aab896b1a3b 331 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 332 }
kevman 2:7aab896b1a3b 333
kevman 2:7aab896b1a3b 334 void test_large_file_seek()
kevman 2:7aab896b1a3b 335 {
kevman 2:7aab896b1a3b 336 int res = bd.init();
kevman 2:7aab896b1a3b 337 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 338
kevman 2:7aab896b1a3b 339 {
kevman 2:7aab896b1a3b 340 res = fs.mount(&bd);
kevman 2:7aab896b1a3b 341 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 342 res = file[0].open(&fs, "hello/kitty42", O_RDONLY);
kevman 2:7aab896b1a3b 343 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 344
kevman 2:7aab896b1a3b 345 off_t pos;
kevman 2:7aab896b1a3b 346 size = strlen("kittycatcat");
kevman 2:7aab896b1a3b 347 for (int i = 0; i < 128; i++) {
kevman 2:7aab896b1a3b 348 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 349 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 350 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 351 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 352 pos = file[0].tell();
kevman 2:7aab896b1a3b 353 }
kevman 2:7aab896b1a3b 354 res = pos >= 0;
kevman 2:7aab896b1a3b 355 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 356 res = file[0].seek(pos, SEEK_SET);
kevman 2:7aab896b1a3b 357 TEST_ASSERT_EQUAL(pos, res);
kevman 2:7aab896b1a3b 358 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 359 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 360 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 361 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 362
kevman 2:7aab896b1a3b 363 file[0].rewind();
kevman 2:7aab896b1a3b 364 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 365 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 366 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 367 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 368 res = file[0].seek(pos, SEEK_SET);
kevman 2:7aab896b1a3b 369 TEST_ASSERT_EQUAL(pos, res);
kevman 2:7aab896b1a3b 370 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 371 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 372 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 373 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 374 res = file[0].seek(-size, SEEK_CUR);
kevman 2:7aab896b1a3b 375 TEST_ASSERT_EQUAL(pos, res);
kevman 2:7aab896b1a3b 376 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 377 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 378 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 379 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 380 res = file[0].seek(-size, SEEK_END) >= 0;
kevman 2:7aab896b1a3b 381 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 382 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 383 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 384 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 385 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 386
kevman 2:7aab896b1a3b 387 size_t size = file[0].size();
kevman 2:7aab896b1a3b 388 res = file[0].seek(0, SEEK_CUR);
kevman 2:7aab896b1a3b 389 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 390 res = file[0].close();
kevman 2:7aab896b1a3b 391 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 392 res = fs.unmount();
kevman 2:7aab896b1a3b 393 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 394 }
kevman 2:7aab896b1a3b 395
kevman 2:7aab896b1a3b 396 res = bd.deinit();
kevman 2:7aab896b1a3b 397 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 398 }
kevman 2:7aab896b1a3b 399
kevman 2:7aab896b1a3b 400 void test_simple_file_seek_and_write()
kevman 2:7aab896b1a3b 401 {
kevman 2:7aab896b1a3b 402 int res = bd.init();
kevman 2:7aab896b1a3b 403 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 404
kevman 2:7aab896b1a3b 405 {
kevman 2:7aab896b1a3b 406 res = fs.mount(&bd);
kevman 2:7aab896b1a3b 407 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 408 res = file[0].open(&fs, "hello/kitty42", O_RDWR);
kevman 2:7aab896b1a3b 409 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 410
kevman 2:7aab896b1a3b 411 off_t pos;
kevman 2:7aab896b1a3b 412 size = strlen("kittycatcat");
kevman 2:7aab896b1a3b 413 for (int i = 0; i < 4; i++) {
kevman 2:7aab896b1a3b 414 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 415 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 416 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 417 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 418 pos = file[0].tell();
kevman 2:7aab896b1a3b 419 }
kevman 2:7aab896b1a3b 420 res = pos >= 0;
kevman 2:7aab896b1a3b 421 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 422
kevman 2:7aab896b1a3b 423 memcpy(buffer, "doggodogdog", size);
kevman 2:7aab896b1a3b 424 res = file[0].seek(pos, SEEK_SET);
kevman 2:7aab896b1a3b 425 TEST_ASSERT_EQUAL(pos, res);
kevman 2:7aab896b1a3b 426 res = file[0].write(buffer, size);
kevman 2:7aab896b1a3b 427 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 428 res = file[0].seek(pos, SEEK_SET);
kevman 2:7aab896b1a3b 429 TEST_ASSERT_EQUAL(pos, res);
kevman 2:7aab896b1a3b 430 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 431 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 432 res = memcmp(buffer, "doggodogdog", size);
kevman 2:7aab896b1a3b 433 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 434
kevman 2:7aab896b1a3b 435 file[0].rewind();
kevman 2:7aab896b1a3b 436 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 437 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 438 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 439 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 440 res = file[0].seek(pos, SEEK_SET);
kevman 2:7aab896b1a3b 441 TEST_ASSERT_EQUAL(pos, res);
kevman 2:7aab896b1a3b 442 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 443 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 444 res = memcmp(buffer, "doggodogdog", size);
kevman 2:7aab896b1a3b 445 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 446 res = file[0].seek(-size, SEEK_END) >= 0;
kevman 2:7aab896b1a3b 447 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 448 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 449 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 450 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 451 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 452
kevman 2:7aab896b1a3b 453 size_t size = file[0].size();
kevman 2:7aab896b1a3b 454 res = file[0].seek(0, SEEK_CUR);
kevman 2:7aab896b1a3b 455 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 456 res = file[0].close();
kevman 2:7aab896b1a3b 457 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 458 res = fs.unmount();
kevman 2:7aab896b1a3b 459 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 460 }
kevman 2:7aab896b1a3b 461
kevman 2:7aab896b1a3b 462 res = bd.deinit();
kevman 2:7aab896b1a3b 463 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 464 }
kevman 2:7aab896b1a3b 465
kevman 2:7aab896b1a3b 466 void test_large_file_seek_and_write()
kevman 2:7aab896b1a3b 467 {
kevman 2:7aab896b1a3b 468 int res = bd.init();
kevman 2:7aab896b1a3b 469 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 470
kevman 2:7aab896b1a3b 471 {
kevman 2:7aab896b1a3b 472 res = fs.mount(&bd);
kevman 2:7aab896b1a3b 473 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 474 res = file[0].open(&fs, "hello/kitty42", O_RDWR);
kevman 2:7aab896b1a3b 475 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 476
kevman 2:7aab896b1a3b 477 off_t pos;
kevman 2:7aab896b1a3b 478 size = strlen("kittycatcat");
kevman 2:7aab896b1a3b 479 for (int i = 0; i < 128; i++) {
kevman 2:7aab896b1a3b 480 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 481 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 482 if (i != 4) {
kevman 2:7aab896b1a3b 483 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 484 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 485 }
kevman 2:7aab896b1a3b 486 pos = file[0].tell();
kevman 2:7aab896b1a3b 487 }
kevman 2:7aab896b1a3b 488 res = pos >= 0;
kevman 2:7aab896b1a3b 489 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 490
kevman 2:7aab896b1a3b 491 memcpy(buffer, "doggodogdog", size);
kevman 2:7aab896b1a3b 492 res = file[0].seek(pos, SEEK_SET);
kevman 2:7aab896b1a3b 493 TEST_ASSERT_EQUAL(pos, res);
kevman 2:7aab896b1a3b 494 res = file[0].write(buffer, size);
kevman 2:7aab896b1a3b 495 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 496 res = file[0].seek(pos, SEEK_SET);
kevman 2:7aab896b1a3b 497 TEST_ASSERT_EQUAL(pos, res);
kevman 2:7aab896b1a3b 498 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 499 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 500 res = memcmp(buffer, "doggodogdog", size);
kevman 2:7aab896b1a3b 501 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 502
kevman 2:7aab896b1a3b 503 file[0].rewind();
kevman 2:7aab896b1a3b 504 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 505 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 506 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 507 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 508 res = file[0].seek(pos, SEEK_SET);
kevman 2:7aab896b1a3b 509 TEST_ASSERT_EQUAL(pos, res);
kevman 2:7aab896b1a3b 510 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 511 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 512 res = memcmp(buffer, "doggodogdog", size);
kevman 2:7aab896b1a3b 513 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 514 res = file[0].seek(-size, SEEK_END) >= 0;
kevman 2:7aab896b1a3b 515 TEST_ASSERT_EQUAL(1, res);
kevman 2:7aab896b1a3b 516 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 517 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 518 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 519 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 520
kevman 2:7aab896b1a3b 521 size_t size = file[0].size();
kevman 2:7aab896b1a3b 522 res = file[0].seek(0, SEEK_CUR);
kevman 2:7aab896b1a3b 523 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 524 res = file[0].close();
kevman 2:7aab896b1a3b 525 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 526 res = fs.unmount();
kevman 2:7aab896b1a3b 527 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 528 }
kevman 2:7aab896b1a3b 529
kevman 2:7aab896b1a3b 530 res = bd.deinit();
kevman 2:7aab896b1a3b 531 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 532 }
kevman 2:7aab896b1a3b 533
kevman 2:7aab896b1a3b 534 void test_boundary_seek_and_write()
kevman 2:7aab896b1a3b 535 {
kevman 2:7aab896b1a3b 536 int res = bd.init();
kevman 2:7aab896b1a3b 537 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 538
kevman 2:7aab896b1a3b 539 {
kevman 2:7aab896b1a3b 540 res = fs.mount(&bd);
kevman 2:7aab896b1a3b 541 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 542 res = file[0].open(&fs, "hello/kitty42", O_RDWR);
kevman 2:7aab896b1a3b 543 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 544
kevman 2:7aab896b1a3b 545 size = strlen("hedgehoghog");
kevman 2:7aab896b1a3b 546 const off_t offsets[] = {512, 1020, 513, 1021, 511, 1019};
kevman 2:7aab896b1a3b 547
kevman 2:7aab896b1a3b 548 for (int i = 0; i < sizeof(offsets) / sizeof(offsets[0]); i++) {
kevman 2:7aab896b1a3b 549 off_t off = offsets[i];
kevman 2:7aab896b1a3b 550 memcpy(buffer, "hedgehoghog", size);
kevman 2:7aab896b1a3b 551 res = file[0].seek(off, SEEK_SET);
kevman 2:7aab896b1a3b 552 TEST_ASSERT_EQUAL(off, res);
kevman 2:7aab896b1a3b 553 res = file[0].write(buffer, size);
kevman 2:7aab896b1a3b 554 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 555 res = file[0].seek(off, SEEK_SET);
kevman 2:7aab896b1a3b 556 TEST_ASSERT_EQUAL(off, res);
kevman 2:7aab896b1a3b 557 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 558 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 559 res = memcmp(buffer, "hedgehoghog", size);
kevman 2:7aab896b1a3b 560 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 561 res = file[0].seek(0, SEEK_SET);
kevman 2:7aab896b1a3b 562 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 563 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 564 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 565 res = memcmp(buffer, "kittycatcat", size);
kevman 2:7aab896b1a3b 566 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 567 res = file[0].sync();
kevman 2:7aab896b1a3b 568 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 569 }
kevman 2:7aab896b1a3b 570 res = file[0].close();
kevman 2:7aab896b1a3b 571 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 572 res = fs.unmount();
kevman 2:7aab896b1a3b 573 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 574 }
kevman 2:7aab896b1a3b 575
kevman 2:7aab896b1a3b 576 res = bd.deinit();
kevman 2:7aab896b1a3b 577 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 578 }
kevman 2:7aab896b1a3b 579
kevman 2:7aab896b1a3b 580 void test_out_of_bounds_seek()
kevman 2:7aab896b1a3b 581 {
kevman 2:7aab896b1a3b 582 int res = bd.init();
kevman 2:7aab896b1a3b 583 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 584
kevman 2:7aab896b1a3b 585 {
kevman 2:7aab896b1a3b 586 res = fs.mount(&bd);
kevman 2:7aab896b1a3b 587 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 588 res = file[0].open(&fs, "hello/kitty42", O_RDWR);
kevman 2:7aab896b1a3b 589 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 590
kevman 2:7aab896b1a3b 591 size = strlen("kittycatcat");
kevman 2:7aab896b1a3b 592 res = file[0].size();
kevman 2:7aab896b1a3b 593 TEST_ASSERT_EQUAL(132 * size, res);
kevman 2:7aab896b1a3b 594 res = file[0].seek((132 + 4) * size,
kevman 2:7aab896b1a3b 595 SEEK_SET);
kevman 2:7aab896b1a3b 596 TEST_ASSERT_EQUAL((132 + 4)*size, res);
kevman 2:7aab896b1a3b 597 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 598 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 599
kevman 2:7aab896b1a3b 600 memcpy(buffer, "porcupineee", size);
kevman 2:7aab896b1a3b 601 res = file[0].write(buffer, size);
kevman 2:7aab896b1a3b 602 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 603 res = file[0].seek((132 + 4) * size,
kevman 2:7aab896b1a3b 604 SEEK_SET);
kevman 2:7aab896b1a3b 605 TEST_ASSERT_EQUAL((132 + 4)*size, res);
kevman 2:7aab896b1a3b 606 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 607 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 608 res = memcmp(buffer, "porcupineee", size);
kevman 2:7aab896b1a3b 609 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 610 res = file[0].seek(132 * size,
kevman 2:7aab896b1a3b 611 SEEK_SET);
kevman 2:7aab896b1a3b 612 TEST_ASSERT_EQUAL(132 * size, res);
kevman 2:7aab896b1a3b 613 res = file[0].read(buffer, size);
kevman 2:7aab896b1a3b 614 TEST_ASSERT_EQUAL(size, res);
kevman 2:7aab896b1a3b 615 #if (MBED_TEST_FILESYSTEM != FATFileSystem)
kevman 2:7aab896b1a3b 616 // FatFs does not guarantee empty expanded buffer
kevman 2:7aab896b1a3b 617 res = memcmp(buffer, "\0\0\0\0\0\0\0\0\0\0\0", size);
kevman 2:7aab896b1a3b 618 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 619 #endif
kevman 2:7aab896b1a3b 620 res = file[0].close();
kevman 2:7aab896b1a3b 621 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 622 res = fs.unmount();
kevman 2:7aab896b1a3b 623 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 624 }
kevman 2:7aab896b1a3b 625
kevman 2:7aab896b1a3b 626 res = bd.deinit();
kevman 2:7aab896b1a3b 627 TEST_ASSERT_EQUAL(0, res);
kevman 2:7aab896b1a3b 628 }
kevman 2:7aab896b1a3b 629
kevman 2:7aab896b1a3b 630
kevman 2:7aab896b1a3b 631
kevman 2:7aab896b1a3b 632 // test setup
kevman 2:7aab896b1a3b 633 utest::v1::status_t test_setup(const size_t number_of_cases)
kevman 2:7aab896b1a3b 634 {
kevman 2:7aab896b1a3b 635 GREENTEA_SETUP(MBED_TEST_TIMEOUT, "default_auto");
kevman 2:7aab896b1a3b 636 return verbose_test_setup_handler(number_of_cases);
kevman 2:7aab896b1a3b 637 }
kevman 2:7aab896b1a3b 638
kevman 2:7aab896b1a3b 639 Case cases[] = {
kevman 2:7aab896b1a3b 640 Case("Seek tests", test_seek_tests),
kevman 2:7aab896b1a3b 641 Case("Simple dir seek", test_simple_dir_seek),
kevman 2:7aab896b1a3b 642 Case("Large dir seek", test_large_dir_seek),
kevman 2:7aab896b1a3b 643 Case("Simple file seek", test_simple_file_seek),
kevman 2:7aab896b1a3b 644 Case("Large file seek", test_large_file_seek),
kevman 2:7aab896b1a3b 645 Case("Simple file seek and write", test_simple_file_seek_and_write),
kevman 2:7aab896b1a3b 646 Case("Large file seek and write", test_large_file_seek_and_write),
kevman 2:7aab896b1a3b 647 Case("Boundary seek and write", test_boundary_seek_and_write),
kevman 2:7aab896b1a3b 648 Case("Out-of-bounds seek", test_out_of_bounds_seek),
kevman 2:7aab896b1a3b 649 };
kevman 2:7aab896b1a3b 650
kevman 2:7aab896b1a3b 651 Specification specification(test_setup, cases);
kevman 2:7aab896b1a3b 652
kevman 2:7aab896b1a3b 653 int main()
kevman 2:7aab896b1a3b 654 {
kevman 2:7aab896b1a3b 655 return !Harness::run(specification);
kevman 2:7aab896b1a3b 656 }