159f135e7f82f0ab899f9d27bbfc687ac1881d5e
[yaffs2.git] / direct / timothy_tests / quick_tests / test_yaffs_fchmod_EBADF.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_fchmod_EBADF.h"
15
16 static int handle = -1;
17
18 int test_yaffs_fchmod_EBADF(void)
19 {
20         int error = 0;
21         int output = 0;
22         
23         handle = test_yaffs_open();
24
25         if (handle < 0){
26                 print_message("failed to open file\n",2);
27                 return -1;
28         }
29
30         output = yaffs_fchmod(-1,S_IREAD||S_IWRITE);
31
32         if (output<0){
33                 error=yaffs_get_error();
34                 if (abs(error)==EBADF){
35                         return 1;
36                 } else {
37                         print_message("different error than expected\n",2);
38                         return -1;
39                 }
40         } else {
41                 print_message("chmoded an non-existing file (which is a bad thing)\n",2);
42                 return -1;
43         }
44
45
46 }
47
48 int test_yaffs_fchmod_EBADF_clean(void)
49 {
50         if (handle >= 0) {
51                 printf("handle %d\n",handle);
52                 return yaffs_close(handle);
53         }
54         return 1;
55
56 }