yaffs Are trapping a suspeced bug in quick_tests.
[yaffs2.git] / direct / timothy_tests / quick_tests / test_yaffs_stat.c
diff --git a/direct/timothy_tests/quick_tests/test_yaffs_stat.c b/direct/timothy_tests/quick_tests/test_yaffs_stat.c
new file mode 100644 (file)
index 0000000..d6c0eff
--- /dev/null
@@ -0,0 +1,67 @@
+#include "test_yaffs_stat.h"
+
+int test_yaffs_stat(void){
+       int mode=0;
+       int size=0;
+       mode =yaffs_test_stat_mode();
+       printf("\nmode %o\n",mode);
+       printf("expected mode %o \n",FILE_MODE);
+       printf("anding together %o\n",FILE_MODE & mode);
+       printf("%d\n",FILE_MODE == (FILE_MODE & mode));
+       if (FILE_MODE == (FILE_MODE & mode)){
+               mode=1;
+       }
+       else {
+               printf("mode did not match expected file mode\n");
+               return -1;
+       }
+       if (yaffs_test_stat_size()==FILE_SIZE){
+               size=1;
+       }
+       else {
+               printf("mode did not match expected file mode\n");
+               return -1;
+       }
+       
+       if (mode && size){
+               return 1;
+       }
+       else {
+               /* a test failed*/
+               return -1;
+       }
+
+}
+
+int test_yaffs_stat_clean(void){
+       return test_open_file();
+}
+
+int yaffs_test_stat_mode(void){
+       struct yaffs_stat stat;
+       int output=0;
+       output=yaffs_stat(FILE_PATH, &stat);
+       printf("output: %d\n",output);
+       if (output>=0){
+               return stat.st_mode;    
+       }
+       else {
+               printf("failed to stat file\n") ;
+               return -1;
+       }
+}
+
+int yaffs_test_stat_size(void){
+       struct yaffs_stat stat;
+       int output=0;
+       output=yaffs_stat(FILE_PATH, &stat); 
+       if (output>=0){
+               return stat.st_size;    
+       }
+       else {
+               printf("failed to stat file\n") ;
+               return -1;
+       }
+}
+
+