seek test (-25) failed sometimes because it assumed a default file size of 8kb. reserve the file instead so the default doesn't matter.
This commit is contained in:
parent
ffcf7fc43b
commit
a2d651af72
1 changed files with 22 additions and 17 deletions
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: test-coffee.c,v 1.6 2008/12/12 13:24:42 nvt-se Exp $
|
* $Id: test-coffee.c,v 1.7 2009/02/17 15:08:01 nvt-se Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -50,7 +50,9 @@
|
||||||
PROCESS(testcoffee_process, "Test CFS/Coffee process");
|
PROCESS(testcoffee_process, "Test CFS/Coffee process");
|
||||||
AUTOSTART_PROCESSES(&testcoffee_process);
|
AUTOSTART_PROCESSES(&testcoffee_process);
|
||||||
|
|
||||||
#define FAIL(x) error = (x); goto end;
|
#define FAIL(x) error = (x); goto end;
|
||||||
|
|
||||||
|
#define FILE_SIZE 4096
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static int
|
static int
|
||||||
|
@ -216,41 +218,44 @@ coffee_file_test(void)
|
||||||
cfs_close(rfd);
|
cfs_close(rfd);
|
||||||
cfs_close(wfd);
|
cfs_close(wfd);
|
||||||
|
|
||||||
|
if(cfs_coffee_reserve("T2", FILE_SIZE) < 0) {
|
||||||
|
FAIL(-24);
|
||||||
|
}
|
||||||
|
|
||||||
/* Test 16: Test multiple writes at random offset. */
|
/* Test 16: Test multiple writes at random offset. */
|
||||||
for(r = 0; r < 100; r++) {
|
for(r = 0; r < 100; r++) {
|
||||||
wfd = cfs_open("T2", CFS_WRITE | CFS_READ);
|
wfd = cfs_open("T2", CFS_WRITE | CFS_READ);
|
||||||
if(wfd < 0) {
|
if(wfd < 0) {
|
||||||
FAIL(-24);
|
FAIL(-25);
|
||||||
}
|
}
|
||||||
|
|
||||||
offset = random_rand() % 8192;
|
offset = random_rand() % FILE_SIZE;
|
||||||
|
|
||||||
for(r = 0; r < sizeof(buf); r++) {
|
for(r = 0; r < sizeof(buf); r++) {
|
||||||
buf[r] = r;
|
buf[r] = r;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cfs_seek(wfd, offset) != offset) {
|
if(cfs_seek(wfd, offset) != offset) {
|
||||||
FAIL(-25);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(cfs_write(wfd, buf, sizeof(buf)) != sizeof(buf)) {
|
|
||||||
FAIL(-26);
|
FAIL(-26);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(cfs_seek(wfd, offset) != offset) {
|
if(cfs_write(wfd, buf, sizeof(buf)) != sizeof(buf)) {
|
||||||
printf("offset = %u\n", offset);
|
|
||||||
FAIL(-27);
|
FAIL(-27);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(cfs_seek(wfd, offset) != offset) {
|
||||||
|
FAIL(-28);
|
||||||
|
}
|
||||||
|
|
||||||
memset(buf, 0, sizeof(buf));
|
memset(buf, 0, sizeof(buf));
|
||||||
if(cfs_read(wfd, buf, sizeof(buf)) != sizeof(buf)) {
|
if(cfs_read(wfd, buf, sizeof(buf)) != sizeof(buf)) {
|
||||||
FAIL(-28);
|
FAIL(-29);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i = 0; i < sizeof(buf); i++) {
|
for(i = 0; i < sizeof(buf); i++) {
|
||||||
if(buf[i] != i) {
|
if(buf[i] != i) {
|
||||||
printf("buf[%d] != %d\n", i, buf[i]);
|
printf("buf[%d] != %d\n", i, buf[i]);
|
||||||
FAIL(-29);
|
FAIL(-30);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -261,14 +266,14 @@ coffee_file_test(void)
|
||||||
for(i = 0; i < APPEND_BYTES; i += BULK_SIZE) {
|
for(i = 0; i < APPEND_BYTES; i += BULK_SIZE) {
|
||||||
afd = cfs_open("T3", CFS_WRITE | CFS_APPEND);
|
afd = cfs_open("T3", CFS_WRITE | CFS_APPEND);
|
||||||
if(afd < 0) {
|
if(afd < 0) {
|
||||||
FAIL(-30);
|
FAIL(-31);
|
||||||
}
|
}
|
||||||
for(j = 0; j < BULK_SIZE; j++) {
|
for(j = 0; j < BULK_SIZE; j++) {
|
||||||
buf[j] = 1 + ((i + j) & 0x7f);
|
buf[j] = 1 + ((i + j) & 0x7f);
|
||||||
}
|
}
|
||||||
if((r = cfs_write(afd, buf, BULK_SIZE)) != BULK_SIZE) {
|
if((r = cfs_write(afd, buf, BULK_SIZE)) != BULK_SIZE) {
|
||||||
printf("r=%d\n", r);
|
printf("r=%d\n", r);
|
||||||
FAIL(-31);
|
FAIL(-32);
|
||||||
}
|
}
|
||||||
cfs_close(afd);
|
cfs_close(afd);
|
||||||
}
|
}
|
||||||
|
@ -277,19 +282,19 @@ coffee_file_test(void)
|
||||||
is correct. */
|
is correct. */
|
||||||
afd = cfs_open("T3", CFS_READ);
|
afd = cfs_open("T3", CFS_READ);
|
||||||
if(afd < 0) {
|
if(afd < 0) {
|
||||||
FAIL(-32);
|
FAIL(-33);
|
||||||
}
|
}
|
||||||
total_read = 0;
|
total_read = 0;
|
||||||
while((r = cfs_read(afd, buf2, sizeof(buf2))) > 0) {
|
while((r = cfs_read(afd, buf2, sizeof(buf2))) > 0) {
|
||||||
for(j = 0; j < r; j++) {
|
for(j = 0; j < r; j++) {
|
||||||
if(buf2[j] != 1 + ((total_read + j) & 0x7f)) {
|
if(buf2[j] != 1 + ((total_read + j) & 0x7f)) {
|
||||||
FAIL(-33);
|
FAIL(-34);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
total_read += r;
|
total_read += r;
|
||||||
}
|
}
|
||||||
if(r < 0) {
|
if(r < 0) {
|
||||||
FAIL(-34);
|
FAIL(-35);
|
||||||
}
|
}
|
||||||
if(total_read != APPEND_BYTES) {
|
if(total_read != APPEND_BYTES) {
|
||||||
FAIL(-35);
|
FAIL(-35);
|
||||||
|
|
Loading…
Reference in a new issue