*** empty log message ***
[yaffs/.git] / direct / dtest.c
index 7f6963823aebe1aa1540fe8b3a809fa0d58e682f..de1eaa2d66fb7776ca60bcf2e1220b6c799b0a38 100644 (file)
@@ -35,7 +35,6 @@ void copy_in_a_file(char *yaffsName,char *inName)
 
 
 
-
 void fill_disk(char *path,int nfiles)
 {
        int h;
@@ -268,7 +267,7 @@ static void PermissionsCheck(const char *path, mode_t tmode, int tflags,int expe
        
 }
 
-int main(int argc, char *argv[])
+int long_test(int argc, char *argv[])
 {
 
        int f;
@@ -286,6 +285,7 @@ int main(int argc, char *argv[])
        yaffs_mount("/boot");
        yaffs_mount("/data");
        yaffs_mount("/flash");
+       yaffs_mount("/ram");
        
        printf("\nDirectory look-up of /boot\n");
        dumpDir("/boot");
@@ -294,14 +294,17 @@ int main(int argc, char *argv[])
        printf("\nDirectory look-up of /flash\n");
        dumpDir("/flash");
 
-       leave_unlinked_file("/flash",20000,0);
-       leave_unlinked_file("/data",20000,0);
+       //leave_unlinked_file("/flash",20000,0);
+       //leave_unlinked_file("/data",20000,0);
+       
+       leave_unlinked_file("/ram",20,0);
+       
 
        f = yaffs_open("/boot/b1", O_RDONLY,0);
        
        printf("open /boot/b1 readonly, f=%d\n",f);
        
-       f = yaffs_open("/boot/b1", O_CREAT,0);
+       f = yaffs_open("/boot/b1", O_CREAT,S_IREAD | S_IWRITE);
        
        printf("open /boot/b1 O_CREAT, f=%d\n",f);
        
@@ -323,12 +326,12 @@ int main(int argc, char *argv[])
        r = yaffs_write(f,"world",3);
        printf("write %d attempted to write to a writeable file\n",r);
        
-       r= yaffs_lseek(f,SEEK_END,0);
+       r= yaffs_lseek(f,0,SEEK_END);
        printf("seek end %d\n",r);
        memset(buffer,0,20);
        r = yaffs_read(f,buffer,10);
        printf("read %d \"%s\"\n",r,buffer);
-       r= yaffs_lseek(f,SEEK_SET,0);
+       r= yaffs_lseek(f,0,SEEK_SET);
        printf("seek set %d\n",r);
        memset(buffer,0,20);
        r = yaffs_read(f,buffer,10);
@@ -336,7 +339,16 @@ int main(int argc, char *argv[])
        memset(buffer,0,20);
        r = yaffs_read(f,buffer,10);
        printf("read %d \"%s\"\n",r,buffer);
-       
+
+       // Check values reading at end.
+       // A read past end of file should return 0 for 0 bytes read.
+               
+       r= yaffs_lseek(f,0,SEEK_END);
+       r = yaffs_read(f,buffer,10);
+       printf("read at end returned  %d\n",r); 
+       r= yaffs_lseek(f,500,SEEK_END);
+       r = yaffs_read(f,buffer,10);
+       printf("read past end returned  %d\n",r);       
        
        r = yaffs_close(f);
        
@@ -504,3 +516,49 @@ int main(int argc, char *argv[])
        return 0;
 
 }
+
+
+
+int directory_rename_test(void)
+{
+       int r;
+       yaffs_StartUp();
+       
+       yaffs_mount("/ram");
+       yaffs_mkdir("/ram/a",0);
+       yaffs_mkdir("/ram/a/b",0);
+       yaffs_mkdir("/ram/c",0);
+       
+       printf("\nDirectory look-up of /ram\n");
+       dumpDir("/ram");
+       dumpDir("/ram/a");
+       dumpDir("/ram/a/b");
+
+       printf("Do rename (should fail)\n");
+               
+       r = yaffs_rename("/ram/a","/ram/a/b/d");
+       printf("\nDirectory look-up of /ram\n");
+       dumpDir("/ram");
+       dumpDir("/ram/a");
+       dumpDir("/ram/a/b");
+
+       printf("Do rename (should not fail)\n");
+               
+       r = yaffs_rename("/ram/c","/ram/a/b/d");
+       printf("\nDirectory look-up of /ram\n");
+       dumpDir("/ram");
+       dumpDir("/ram/a");
+       dumpDir("/ram/a/b");
+       
+       
+       return 1;
+       
+}
+
+int main(int argc, char *argv[])
+{
+       //return long_test(argc,argv);
+       
+       return directory_rename_test();
+       
+}