From: Timothy Manning Date: Mon, 8 Nov 2010 00:05:40 +0000 (+1300) Subject: yaffs Added some new tests to quick tests. X-Git-Tag: linux-mainline-patchset-4~110^2~8 X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=commitdiff_plain;h=9f631b4e43d0b0832ebbe2bd0dc5977186567806 yaffs Added some new tests to quick tests. Signed-off-by: Timothy Manning --- diff --git a/direct/timothy_tests/quick_tests/Makefile b/direct/timothy_tests/quick_tests/Makefile index 0ff1c06..b69ee0a 100644 --- a/direct/timothy_tests/quick_tests/Makefile +++ b/direct/timothy_tests/quick_tests/Makefile @@ -45,7 +45,7 @@ COMMONTESTOBJS = yaffscfg2k.o yaffs_ecc.o yaffs_fileem.o yaffs_fileem2k.o yaffsf # yaffs_checkptrwtest.o\ TESTFILES = quick_tests.o lib.o \ - test_yaffs_mount.o test_yaffs_mount_ENODEV.o test_yaffs_mount_ENAMETOOLONG.o \ + test_yaffs_mount.o test_yaffs_mount_ENODEV.o test_yaffs_mount_ENAMETOOLONG.o test_yaffs_mount_ENOENT.o\ test_yaffs_unmount.o\ test_yaffs_open.o test_yaffs_open_ENOENT.o test_yaffs_open_ENOTDIR.o test_yaffs_open_EEXIST.o test_yaffs_open_EISDIR.o test_yaffs_open_ENAMETOOLONG.o \ test_yaffs_unlink.o test_yaffs_unlink_EISDIR.o test_yaffs_unlink_ENOENT.o test_yaffs_unlink_ENAMETOOLONG.o test_yaffs_unlink_ENOTDIR.o\ diff --git a/direct/timothy_tests/quick_tests/README.txt b/direct/timothy_tests/quick_tests/README.txt index 7fc7d57..a6b984e 100644 --- a/direct/timothy_tests/quick_tests/README.txt +++ b/direct/timothy_tests/quick_tests/README.txt @@ -9,6 +9,7 @@ tests made test_yaffs_mount test_yaffs_mount_ENODEV test_yaffs_mount_ENAMETOOLONG + test_yaffs_mount_ENOENT test_yaffs_access test_yaffs_close_EBADF test_yaffs_ftruncate @@ -37,7 +38,7 @@ tests to add test_yaffs_mount_ELOOP //Cannot be generated with yaffs. test_yaffs_mount_EMFILE //Cannot be generated with yaffs. - test_yaffs_mount_ENOENT + test_yaffs_mount_ENOTDIR //Cannot be generated with yaffs. test_yaffs_mount_EBUSY //called when trying to mount a new mount point with a mount point already mounted. @@ -127,12 +128,14 @@ How to add a test BUGS AND WARNINGS - remove the printf which prints yaffs_mounting. bug with opening a file with a name of 1,000,000 char long with no errors. bug with unlinking a file with 1,000,000 get the error ENOENT but should be geting ENAMETOOLONG. + bug with mounting a too long non-existant mount point. there are two errors here, ENOENT and ENAMETOOLONG. + bug with mounting a non-existing mount point get the error ENODEV. should be getting ENOENT. WARNING- If yaffs is unmounted then most functions return ENODIR. + FIXED-remove the printf which prints yaffs_mounting. FIXED-ENOSPC error in programs test_yaffs_open_ENOTDIR and test_yaffs_open_ENOENT. FIXED-ENOENT been returned by yaffs_read but the handle is good and the yaffs_open function does not return an error. diff --git a/direct/timothy_tests/quick_tests/quick_tests.h b/direct/timothy_tests/quick_tests/quick_tests.h index 8360e85..429771d 100644 --- a/direct/timothy_tests/quick_tests/quick_tests.h +++ b/direct/timothy_tests/quick_tests/quick_tests.h @@ -20,6 +20,7 @@ #include "test_yaffs_mount.h" #include "test_yaffs_mount_ENODEV.h" #include "test_yaffs_mount_ENAMETOOLONG.h" +#include "test_yaffs_mount_ENOENT.h" #include "test_yaffs_unmount.h" @@ -65,6 +66,7 @@ test_template test_list[]={ {test_yaffs_mount,test_yaffs_mount_clean,"test_yaffs_mount"}, {test_yaffs_mount_ENODEV,test_yaffs_mount_ENODEV_clean,"test_yaffs_mount_ENODEV"}, {test_yaffs_mount_ENAMETOOLONG,test_yaffs_mount_ENAMETOOLONG_clean,"test_yaffs_mount_ENAMETOOLONG"}, + {test_yaffs_mount_ENOENT,test_yaffs_mount_ENOENT_clean,"test_yaffs_mount_ENOENT"}, {test_yaffs_unmount,test_yaffs_unmount_clean,"test_yaffs_unmount"}, diff --git a/direct/timothy_tests/quick_tests/test_yaffs_mount_ENAMETOOLONG.c b/direct/timothy_tests/quick_tests/test_yaffs_mount_ENAMETOOLONG.c index a61d0b3..99102c9 100644 --- a/direct/timothy_tests/quick_tests/test_yaffs_mount_ENAMETOOLONG.c +++ b/direct/timothy_tests/quick_tests/test_yaffs_mount_ENAMETOOLONG.c @@ -23,6 +23,13 @@ int test_yaffs_mount_ENAMETOOLONG(void){ int file_name_length=1000000; char file_name[file_name_length]; + /* if a second file system is mounted then yaffs will return EBUSY. so first unmount yaffs */ + output=test_yaffs_unmount(); + if (output<0){ + printf("yaffs failed to unmount\n"); + return -1; + } + strcat(file_name,YAFFS_MOUNT_POINT); for (x=strlen(YAFFS_MOUNT_POINT); x + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include "test_yaffs_mount_ENOENT.h" + + +int test_yaffs_mount_ENOENT(void){ + int output=0; + int error_code=0; + /*printf("path %s\n",path); */ + + + /* if a second file system is mounted then yaffs will return EBUSY. so first unmount yaffs */ + output=test_yaffs_unmount(); + if (output<0){ + printf("yaffs failed to unmount\n"); + return -1; + } + + output=yaffs_mount("/non_existaint_mount_point/"); + if (output==-1){ + error_code=yaffs_get_error(); + if (abs(error_code)==ENOENT){ + return 1; + } + else { + printf("different error than expected\n"); + return -1; + } + } + else { + printf("non existant mount point mounted.(which is a bad thing)\n"); + return -1; + } + +} +int test_yaffs_mount_ENOENT_clean(void){ + return test_yaffs_mount(); +} + diff --git a/direct/timothy_tests/quick_tests/test_yaffs_mount_ENOENT.h b/direct/timothy_tests/quick_tests/test_yaffs_mount_ENOENT.h new file mode 100644 index 0000000..e0e7ad6 --- /dev/null +++ b/direct/timothy_tests/quick_tests/test_yaffs_mount_ENOENT.h @@ -0,0 +1,26 @@ +/* + * YAFFS: Yet another Flash File System . A NAND-flash specific file system. + * + * Copyright (C) 2002-2010 Aleph One Ltd. + * for Toby Churchill Ltd and Brightstar Engineering + * + * Created by Timothy Manning + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 2.1 as + * published by the Free Software Foundation. + * + * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL. + */ + +#ifndef __test_yaffs_mount_ENOENT_h__ +#define __test_yaffs_mount_ENOENT_h__ + +#include "lib.h" +#include "yaffsfs.h" +#include "test_yaffs_unmount.h" +#include "test_yaffs_mount.h" + +int test_yaffs_mount_ENOENT(void); +int test_yaffs_mount_ENOENT_clean(void); +#endif