yaffs Fixed some tests in direct/timothy_tests/quick_tests
[yaffs2.git] / direct / timothy_tests / quick_tests / test_yaffs_open_EINVAL.c
1 /*
2  * YAFFS: Yet another FFS. A NAND-flash specific file system.
3  *
4  * Copyright (C) 2002-2010 Aleph One Ltd.
5  *   for Toby Churchill Ltd and Brightstar Engineering
6  *
7  * Created by Timothy Manning <timothy@yaffs.net>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License version 2 as
11  * published by the Free Software Foundation.
12  */
13
14 #include "test_yaffs_open_EINVAL.h"
15
16 static int handle = -1;
17
18 int test_yaffs_open_EINVAL(void)
19 {
20         int error_code = 0;
21
22         handle=yaffs_open(FILE_PATH, 255,FILE_MODE);
23         if (handle == -1){
24                 error_code = yaffs_get_error();
25                 if (abs(error_code) == EEXIST){ /* yaffs open does not check the mode which is passed into the functon. 
26                                                 so yaffs open does not return EINVAL.
27                                                 This causes the error EEXIST to happen instead
28                                                 because both O_CREAT and O_EXCL are set */ 
29                         return 1;
30                 } else {
31                         print_message("different error than expected\n",2);
32                         return -1;
33                 }
34         } else {
35                 print_message(" file opened with bad mode.(which is a bad thing)\n",2);
36                 return -1;
37         }
38 }
39
40 int test_yaffs_open_EINVAL_clean(void)
41 {
42         if (handle >= 0){
43                 return yaffs_close(handle);
44         } else {
45                 return 1;       /* the file failed to open so there is no need to close it*/
46         }
47 }
48