yaffs: More clean up
[yaffs2.git] / direct / basic-test / dtest.c
index 3ac5604284dbd3c3a577aabc19c48d47f9685861..e6a0a146916cc38be18b08fa0f20022b20d48487 100644 (file)
 #include <string.h>
 #include <unistd.h>
 #include <fcntl.h>
+#include <time.h>
 
 #include "yaffsfs.h"
 
 #include "yaffs_guts.h" /* Only for dumping device innards */
 
-extern int yaffs_traceMask;
+extern int yaffs_trace_mask;
 
 void dumpDir(const char *dname);
 
-char xx[600];
-
-void copy_in_a_file(char *yaffsName,char *inName)
+void copy_in_a_file(const char *yaffsName,const char *inName)
 {
        int inh,outh;
        unsigned char buffer[100];
@@ -52,7 +51,7 @@ void copy_in_a_file(char *yaffsName,char *inName)
        close(inh);
 }
 
-void make_a_file(char *yaffsName,char bval,int sizeOfFile)
+void make_a_file(const char *yaffsName,char bval,int sizeOfFile)
 {
        int outh;
        int i;
@@ -279,7 +278,7 @@ void yaffs_backward_scan_test(const char *path)
 {
        char fn[100];
        
-       yaffs_StartUp();        
+       yaffs_start_up();       
        
        yaffs_mount(path);
        
@@ -300,7 +299,7 @@ void null_name_test(const char *path)
 {
        char fn[100];
        int h;
-       yaffs_StartUp();
+       yaffs_start_up();
 
        yaffs_mount(path);
 
@@ -321,7 +320,7 @@ void yaffs_device_flush_test(const char *path)
        int h;
        int i;
        
-       yaffs_StartUp();        
+       yaffs_start_up();       
        
        yaffs_mount(path);
        
@@ -350,7 +349,7 @@ void short_scan_test(const char *path, int fsize, int niterations)
        
        sprintf(fn,"%s/%s",path,"f1");
        
-       yaffs_StartUp();
+       yaffs_start_up();
        for(i = 0; i < niterations; i++)
        {
                printf("\n*****************\nIteration %d\n",i);
@@ -375,7 +374,7 @@ void scan_pattern_test(const char *path, int fsize, int niterations)
        sprintf(fn[1],"%s/%s",path,"f1");
        sprintf(fn[2],"%s/%s",path,"f2");
        
-       yaffs_StartUp();
+       yaffs_start_up();
        
        for(i = 0; i < niterations; i++)
        {
@@ -401,7 +400,8 @@ void fill_disk(const char *path,int nfiles)
        int n;
        int result;
        int f;
-       
+
+        static char xx[600];   
        char str[50];
        
        for(n = 0; n < nfiles; n++)
@@ -481,7 +481,7 @@ void fill_files(const char *path,int flags, int maxIterations,int siz)
        }
 }
 
-void leave_unlinked_file(char *path,int maxIterations,int siz)
+void leave_unlinked_file(const char *path,int maxIterations,int siz)
 {
        int i;
        char str[50];
@@ -531,7 +531,7 @@ void dumpDirFollow(const char *dname)
                {
                        sprintf(str,"%s/%s",dname,de->d_name);
                        
-                       yaffs_stat(str,&s);
+                       yaffs_lstat(str,&s);
                        
                        printf("%s ino %d length %d mode %X ",de->d_name,(int)s.st_ino,(int)s.st_size,s.st_mode);
                        switch(s.st_mode & S_IFMT)
@@ -656,7 +656,7 @@ int long_test(int argc, char *argv[])
        mode_t temp_mode;
        struct yaffs_stat ystat;
        
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount("/boot");
        yaffs_mount("/data");
@@ -741,7 +741,7 @@ int long_test(int argc, char *argv[])
        dumpDir("/boot");
 
        // Check stat
-       r = yaffs_stat("/boot/file with a long name",&ystat);
+       r = yaffs_lstat("/boot/file with a long name",&ystat);
        
        // Check rename
        
@@ -828,7 +828,7 @@ int long_test(int argc, char *argv[])
        
        // Check chmod
        
-       yaffs_stat("/boot/yyfile",&ystat);
+       yaffs_lstat("/boot/yyfile",&ystat);
        temp_mode = ystat.st_mode;
        
        yaffs_chmod("/boot/yyfile",0x55555);
@@ -866,11 +866,11 @@ int long_test(int argc, char *argv[])
        yaffs_unlink("/boot/zlf");
        
        
-       yaffs_DumpDevStruct("/boot");
+       yaffs_dump_dev("/boot");
        
        fill_disk_and_delete("/boot",20,20);
        
-       yaffs_DumpDevStruct("/boot");
+       yaffs_dump_dev("/boot");
        
        fill_files("/boot",1,10000,0);
        fill_files("/boot",1,10000,5000);
@@ -884,8 +884,8 @@ int long_test(int argc, char *argv[])
        leave_unlinked_file("/data",20000,5000);
        leave_unlinked_file("/data",20000,5000);
        
-       yaffs_DumpDevStruct("/boot");
-       yaffs_DumpDevStruct("/data");
+       yaffs_dump_dev("/boot");
+       yaffs_dump_dev("/data");
        
                
                
@@ -909,7 +909,7 @@ int huge_directory_test_on_path(char *path)
        char str[100];
 
        
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount(path);
        
@@ -967,7 +967,7 @@ void rename_over_test(const char *mountpt)
        sprintf(b,"%s/b",mountpt);
        sprintf(c,"%s/c",mountpt);
        
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount(mountpt);
        
@@ -1004,7 +1004,7 @@ int resize_stress_test(const char *path)
    char abuffer[1000];
    char bbuffer[1000];
    
-   yaffs_StartUp();
+   yaffs_start_up();
    
    yaffs_mount(path);
    
@@ -1065,7 +1065,7 @@ int overwrite_test(const char *path)
    int j;   
    int a;
    int b;
-   yaffs_StartUp();
+   yaffs_start_up();
    
    yaffs_mount(path);
    
@@ -1090,16 +1090,16 @@ int root_perm_remount(const char *path)
 {
    struct yaffs_stat s;
    
-   yaffs_StartUp();
+   yaffs_start_up();
    
    yaffs_mount(path);
    
-   yaffs_stat(path,&s);
+   yaffs_lstat(path,&s);
    printf("root perms after mount %x\n",s.st_mode);
    
    yaffs_chmod(path, 0777);
 
-   yaffs_stat(path,&s);
+   yaffs_lstat(path,&s);
    printf("root perms after setting to 0777 is  %x\n",s.st_mode);
    
    yaffs_unmount(path);
@@ -1121,7 +1121,7 @@ int resize_stress_test_no_grow_complex(const char *path,int iters)
    char bbuffer[1000];
 
    
-   yaffs_StartUp();
+   yaffs_start_up();
    
    yaffs_mount(path);
    
@@ -1195,7 +1195,7 @@ int resize_stress_test_no_grow(const char *path,int iters)
    char abuffer[1000];
    char bbuffer[1000];
    
-   yaffs_StartUp();
+   yaffs_start_up();
    
    yaffs_mount(path);
    
@@ -1260,7 +1260,7 @@ int resize_stress_test_no_grow(const char *path,int iters)
 int directory_rename_test(void)
 {
        int r;
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount("/ram");
        yaffs_mkdir("/ram/a",0);
@@ -1300,7 +1300,7 @@ int cache_read_test(void)
        int sizeOfFiles = 500000;
        char buffer[100];
        
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount("/boot");
        
@@ -1339,7 +1339,7 @@ int cache_bypass_bug_test(void)
        memset(buffer1,0,sizeof(buffer1));
        memset(buffer2,0,sizeof(buffer2));
                
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount("/boot");
        
@@ -1379,7 +1379,7 @@ int free_space_check(void)
 {
        int f;
        
-               yaffs_StartUp();
+               yaffs_start_up();
                yaffs_mount("/boot");
            fill_disk("/boot/",2);
            f = yaffs_freespace("/boot");
@@ -1397,7 +1397,7 @@ int truncate_test(void)
 
        char y[10];
 
-       yaffs_StartUp();
+       yaffs_start_up();
        yaffs_mount("/boot");
 
        yaffs_unlink("/boot/trunctest");
@@ -1435,7 +1435,7 @@ int truncate_test(void)
 void fill_disk_test(const char *mountpt)
 {
        int i;
-       yaffs_StartUp();
+       yaffs_start_up();
        
        for(i = 0; i < 5; i++)
        {
@@ -1450,7 +1450,7 @@ void fill_disk_test(const char *mountpt)
 void fill_files_test(const char *mountpt)
 {
        int i;
-       yaffs_StartUp();
+       yaffs_start_up();
        
        for(i = 0; i < 5; i++)
        {
@@ -1464,7 +1464,7 @@ void fill_files_test(const char *mountpt)
 void fill_empty_files_test(const char *mountpt)
 {
        int i;
-       yaffs_StartUp();
+       yaffs_start_up();
        char name[100];
        int result = 0;
        
@@ -1493,12 +1493,12 @@ void fill_empty_files_test(const char *mountpt)
 void long_name_test(const char *mountpt)
 {
        int i;
-       yaffs_StartUp();
+       yaffs_start_up();
        char fullName[1000];
        char name[300];
        int result = 0;
        
-       int d,f;
+       int f;
        
        // Make a 256 byte name
        memset(name,0,sizeof(name));
@@ -1548,7 +1548,7 @@ void lookup_test(const char *mountpt)
        yaffs_DIR *d;
        yaffs_dirent *de;
 
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount(mountpt);
                                
@@ -1602,13 +1602,12 @@ void lookup_test(const char *mountpt)
 
 void link_test0(const char *mountpt)
 {
-       int i;
        char namea[300];
        char nameb[300];
        int result = 0;
        
 
-       yaffs_StartUp();
+       yaffs_start_up();
        yaffs_mount(mountpt);
        
                
@@ -1657,7 +1656,7 @@ void link_test1(const char *mountpt)
        sprintf(b,"%s/bbb",mountpt);
        sprintf(c,"%s/ccc",mountpt);
        
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount(mountpt);
        
@@ -1692,7 +1691,7 @@ void handle_test(const char *mountpt)
 
        sprintf(a,"%s/aaa",mountpt);
        
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount(mountpt);
 
@@ -1726,7 +1725,7 @@ void freespace_test(const char *mountpt)
        int f3;
        sprintf(a,"%s/aaa",mountpt);
        
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount(mountpt);
        
@@ -1767,7 +1766,7 @@ void simple_rw_test(const char *mountpt)
 
        sprintf(a,"%s/aaa",mountpt);
        
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount(mountpt);
        
@@ -1820,7 +1819,7 @@ void scan_deleted_files_test(const char *mountpt)
        int h;
        
        sprintf(sub,"%s/sdir",mountpt);
-       yaffs_StartUp();
+       yaffs_start_up();
        
        for(j = 0; j < 10; j++)
        {
@@ -1953,7 +1952,7 @@ void check_resize_gc_bug(const char *mountpt)
 
        
        
-       yaffs_StartUp();
+       yaffs_start_up();
        yaffs_mount(mountpt);
        yaffs_unlink(a);
        yaffs_unlink(b);
@@ -1983,7 +1982,7 @@ void multi_mount_test(const char *mountpt,int nmounts)
        
        sprintf(a,"%s/a",mountpt);
 
-       yaffs_StartUp();
+       yaffs_start_up();
        
        for(i = 0; i < nmounts; i++){
                int h0;
@@ -2060,7 +2059,7 @@ void small_mount_test(const char *mountpt,int nmounts)
        
        sprintf(a,"%s/a",mountpt);
 
-       yaffs_StartUp();
+       yaffs_start_up();
        
        
        
@@ -2132,7 +2131,7 @@ void small_overwrite_test(const char *mountpt,int nmounts)
        
        sprintf(a,"%s/a",mountpt);
 
-       yaffs_StartUp();
+       yaffs_start_up();
        
        
        
@@ -2176,7 +2175,7 @@ void small_overwrite_test(const char *mountpt,int nmounts)
 
 void seek_overwrite_test(const char *mountpt,int nmounts)
 {
-
+        static char xx[5000];
        char a[30];
        
        int i;
@@ -2187,7 +2186,7 @@ void seek_overwrite_test(const char *mountpt,int nmounts)
        
        sprintf(a,"%s/f",mountpt);
 
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount(mountpt);
        
@@ -2233,7 +2232,7 @@ void checkpoint_fill_test(const char *mountpt,int nmounts)
 
        
        
-       yaffs_StartUp();
+       yaffs_start_up();
        
        for(i = 0; i < nmounts; i++){
                printf("############### Iteration %d   Start\n",i);
@@ -2307,7 +2306,7 @@ void checkpoint_upgrade_test(const char *mountpt,int nmounts)
        
        
        printf("Create start condition\n");
-       yaffs_StartUp();
+       yaffs_start_up();
        yaffs_mount(mountpt);
        yaffs_mkdir(a,0);
        sprintf(b,"%s/zz",a);
@@ -2362,7 +2361,7 @@ void huge_array_test(const char *mountpt,int n)
        
 
        
-       yaffs_StartUp();
+       yaffs_start_up();
 
        yaffs_mount(mountpt);
        
@@ -2437,7 +2436,7 @@ void random_small_file_test(const char *mountpt,int iterations)
        int r;
        
        
-       yaffs_StartUp();
+       yaffs_start_up();
 
        yaffs_mount(mountpt);
        
@@ -2496,7 +2495,7 @@ void random_small_file_test(const char *mountpt,int iterations)
 void rmdir_test(const char *mountpt)
 {
        char name[100];
-       yaffs_StartUp();
+       yaffs_start_up();
        
        yaffs_mount(mountpt);
        
@@ -2517,7 +2516,7 @@ static void print_xattrib_val(const char *path, const char *name)
 
        n = yaffs_getxattr(path,name,buffer,sizeof(buffer));
        if(n >= 0){
-               __u8 *b = (__u8 *)buffer;
+               u8 *b = (u8 *)buffer;
 
                printf("%d bytes:",n);
                if(n > 10)
@@ -2556,9 +2555,8 @@ void basic_xattr_test(const char *mountpt)
        int h;
        int result;
        int val1;
-       int valread;
 
-       yaffs_StartUp();
+       yaffs_start_up();
 
        yaffs_mount(mountpt);
 
@@ -2607,9 +2605,8 @@ void big_xattr_test(const char *mountpt)
        int h;
        int result;
        char val[1000];
-       char valread[1000];
 
-       yaffs_StartUp();
+       yaffs_start_up();
 
        yaffs_mount(mountpt);
 
@@ -2645,15 +2642,15 @@ void big_xattr_test(const char *mountpt)
 }
 
 
-void dump_dev_stats(yaffs_Device *dev, const char * str)
+void dump_dev_stats(struct yaffs_dev *dev, const char * str)
 {
        printf("%s\n",str);
        printf( "space free %d erased %d "
                "nand reads %d writes %d erases %d "
                "gc all %d passive %d oldestdirty %d blocks %d copies %d \n",
-               dev->nFreeChunks, dev->nErasedBlocks * dev->param.nChunksPerBlock,
-               dev->nPageReads, dev->nPageWrites, dev->nBlockErasures,
-               dev->allGCs, dev->passiveGCs, dev->oldestDirtyGCs, dev->nGCBlocks, dev->nGCCopies);
+               dev->n_free_chunks, dev->n_erased_blocks * dev->param.chunks_per_block,
+               dev->n_page_reads, dev->n_page_writes, dev->n_erasures,
+               dev->all_gcs, dev->passive_gc_count, dev->oldest_dirty_gc_count, dev->n_gc_blocks, dev->n_gc_copies);
 }
 
 void test_flash_traffic(const char *mountpt)
@@ -2661,11 +2658,11 @@ void test_flash_traffic(const char *mountpt)
        char name0[100];
        char name1[100];
        int i;
-       yaffs_Device *dev;
+       struct yaffs_dev *dev;
 
-       yaffs_traceMask = 0;
+       yaffs_trace_mask = 0;
 
-       yaffs_StartUp();
+       yaffs_start_up();
 
        yaffs_mount(mountpt);
        
@@ -2686,6 +2683,34 @@ void test_flash_traffic(const char *mountpt)
 
 }
 
+void link_follow_test(const char *mountpt)
+{
+       char fn[100];
+       char sn[100];
+       char hn[100];
+       int result;
+       int h;
+       
+       yaffs_trace_mask = 0;
+
+       yaffs_start_up();
+
+       yaffs_mount(mountpt);
+
+       sprintf(fn,"%s/file",mountpt);
+       sprintf(sn,"%s/sym",mountpt);
+       sprintf(hn,"%s/hl-sym",mountpt);
+       
+       h = yaffs_open(fn,O_CREAT| O_RDWR, S_IREAD | S_IWRITE);
+       result = yaffs_close(h);
+
+       result = yaffs_symlink(fn,sn);
+       result = yaffs_link(sn,hn);
+
+       h =yaffs_open(hn,O_RDWR,0);
+
+}
+
 int random_seed;
 int simulate_power_failure;
 
@@ -2750,6 +2775,7 @@ int main(int argc, char *argv[])
         //null_name_test("yaffs2");
 
         test_flash_traffic("yaffs2");
+        link_follow_test("/yaffs2");
 
         return 0;