yaffs Trying to find a bug in direct/timothy_tests/mirror_tests
[yaffs2.git] / direct / timothy_tests / mirror_tests / yaffs_test_write.c
index eaa97da34ec66112f990393d3b9307a80eb0698f..690fea6c526c61f8dc2bda0d2105ed378c4911f0 100644 (file)
@@ -17,19 +17,67 @@ int yaffs_test_write(arg_temp *args_struct)
 {
        char path[200];
        char message[200];
 {
        char path[200];
        char message[200];
-       int output=0;
+       int output=0,output2=0;
        int handle;
        int handle;
+       struct yaffs_stat yaffs_stat_struct;
        join_paths(yaffs_struct.root_path,args_struct->string1, path );
        sprintf(message,"trying to write to: %s\nwith mode set to %o \n",path,args_struct->char1);
        print_message(3,message);
        join_paths(yaffs_struct.root_path,args_struct->string1, path );
        sprintf(message,"trying to write to: %s\nwith mode set to %o \n",path,args_struct->char1);
        print_message(3,message);
-       handle=yaffs_open(path,args_struct->char1 &(O_TRUNC|O_EXCL|O_CREAT|O_APPEND),args_struct->char2&(S_IREAD|S_IWRITE));
+       printf("mode S_IREAD %d S_IWRITE %d\n",(args_struct->char2 & S_IREAD),(args_struct->char2 & S_IWRITE));
+       handle=yaffs_open(path,(args_struct->char1 &(O_TRUNC|O_EXCL|O_CREAT|O_APPEND)),(args_struct->char2&(S_IREAD|S_IWRITE)));
+       printf("handle %d\n",handle);
        if (handle<0){
                print_message(3,"failed to open a handle\n");
                return -1; //handle failed to open
        }
        if (handle<0){
                print_message(3,"failed to open a handle\n");
                return -1; //handle failed to open
        }
+       output=yaffs_fstat(handle,&yaffs_stat_struct);
+       if (output < 0){
+               sprintf(message,"failed to stat the file\n");
+               print_message(3,message);
+               get_error_yaffs();
+       } else {
+               sprintf(message,"stated the file\n");
+               print_message(3,message);
+               sprintf(message," yaffs file mode is %d\n",(yaffs_stat_struct.st_mode & (S_IREAD| S_IWRITE)));
+               print_message(3,message);
+               sprintf(message,"mode S_IREAD %d S_IWRITE %d\n",(yaffs_stat_struct.st_mode & S_IREAD),(yaffs_stat_struct.st_mode & S_IWRITE));
+               print_message(3,message);       
+       }
+
        sprintf(message,"trying to write: %d bytes into the file\n",strlen(args_struct->string2));
        print_message(3,message);
        output=yaffs_write(handle,args_struct->string2,strlen(args_struct->string2));
        sprintf(message,"trying to write: %d bytes into the file\n",strlen(args_struct->string2));
        print_message(3,message);
        output=yaffs_write(handle,args_struct->string2,strlen(args_struct->string2));
+
+       print_message(3,"\n wrote to the file\n");
+       output2=yaffs_fstat(handle,&yaffs_stat_struct);
+       if (output2 < 0){
+               sprintf(message,"failed to stat the file\n");
+               print_message(3,message);
+               get_error_yaffs();
+       } else {
+               sprintf(message,"stated the file\n");
+               print_message(3,message);
+               sprintf(message," yaffs file mode is %d\n",(yaffs_stat_struct.st_mode & (S_IREAD| S_IWRITE)));
+               print_message(3,message);
+               sprintf(message,"mode S_IREAD %d S_IWRITE %d\n",(yaffs_stat_struct.st_mode & S_IREAD),(yaffs_stat_struct.st_mode & S_IWRITE));
+               print_message(3,message);       
+       }
        yaffs_close(handle);
        yaffs_close(handle);
+       print_message(3,"\n closing the file\n");
+       output2=yaffs_stat(path,&yaffs_stat_struct);
+       if (output2 < 0){
+               sprintf(message,"failed to stat the file\n");
+               print_message(3,message);
+               get_error_yaffs();
+       } else {
+               sprintf(message,"stated the file\n");
+               print_message(3,message);
+               sprintf(message," yaffs file mode is %d\n",(yaffs_stat_struct.st_mode & (S_IREAD| S_IWRITE)));
+               print_message(3,message);
+               sprintf(message,"mode S_IREAD %d S_IWRITE %d\n",(yaffs_stat_struct.st_mode & S_IREAD),(yaffs_stat_struct.st_mode & S_IWRITE));
+               print_message(3,message);       
+       }
+
+
        return output;
 }
        return output;
 }