yaffs Trying to find a bug in timothy quick tests.
[yaffs2.git] / direct / timothy_tests / quick_tests / test_yaffs_close_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 /* generates a EBADF error by closing a handle twice */
15
16 #include "test_yaffs_open.h"
17
18 static int handle=0;
19
20 int test_yaffs_close_EBADF(void){
21         int output=0;
22         int error_code=0;
23         handle=test_yaffs_open();
24         if (handle>=0){
25                 output=yaffs_close(handle);
26                 if (output>=0){
27                         output=yaffs_close(handle);
28                         if (output<0){
29                                 /*error has happened */
30                                 error_code=yaffs_get_error();
31                                 //printf("EBADF def %d, Error code %d\n",(- EBADF),error_code);
32                                 if (abs(error_code)== EBADF){
33                                         return 1;
34                                 }
35                                 else {
36                                         printf("different error than expected\n");
37                                         return -1;
38                                 }
39                         }
40                         else {
41                                 printf("closed the same handle twice. (which is a bad thing)\n");
42                                 return -1;
43                         }
44                 }
45                 else {
46                         printf("failed to close the handle the firs time\n");
47                         return -1;
48                 }       
49         }
50         else {
51                 printf("failed to open file\n");
52                 return -1;
53         }
54
55 }
56
57
58 int test_yaffs_close_EBADF_clean(void){
59         /* there is nothing that needs to be recreated */       
60         return 1;
61 }
62