X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Ftimothy_tests%2Fquick_tests%2Flib.c;h=e29764565337d63412b29e24768985b74c8930d8;hp=e5a8859d3c358992e6d6cd44c9d21a6be87b2629;hb=716faf42637fc29ca3d2510d8a47fb2516f794e1;hpb=26592c53da98ac887099559afbcb8dda05264e1c diff --git a/direct/timothy_tests/quick_tests/lib.c b/direct/timothy_tests/quick_tests/lib.c index e5a8859..e297645 100644 --- a/direct/timothy_tests/quick_tests/lib.c +++ b/direct/timothy_tests/quick_tests/lib.c @@ -1,7 +1,95 @@ +/* + * YAFFS: Yet another FFS. A NAND-flash specific file system. + * + * Copyright (C) 2002-2010 Aleph One Ltd. + * for Toby Churchill Ltd and Brightstar Engineering + * + * Created by Timothy Manning + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + #include "lib.h" +static int EXIT_ON_ERROR = 1; +static int PRINT_LEVEL = 2; //This sets the level of detail which is printed. There are 3 levels 0,1,2 and 3 + //0 just prints the number of tests passed and failed. + //1 is the basic print level. it will print the details of a failed test. + //2 will print if a test passes and cleans. +void set_print_level(int new_level) +{ + PRINT_LEVEL=new_level; +} + +void set_exit_on_error(int num) +{ + EXIT_ON_ERROR=num; +} + +int get_exit_on_error(void) +{ + return EXIT_ON_ERROR; +} + -void join_paths(char *path1,char *path2,char *new_path ){ +int EROFS_setup(void) +{ + int output= -1; + output=yaffs_remount(YAFFS_MOUNT_POINT,1,1); + if (output<0){ + print_message("failed to remount yaffs\n",2); + return -1; + } + return 1; +} + +int EROFS_clean(void) +{ + int output=-1; + output= yaffs_remount(YAFFS_MOUNT_POINT,1,0); + if (output<0){ + print_message("failed to remount yaffs\n",2); + return -1; + } + return 1; +} + + +int set_up_ELOOP(void){ + int output1=1; + int output2=1; + int error =0; + + output1=yaffs_symlink(ELOOP_PATH,ELOOP2_PATH); + if (output1 <0){ + error=yaffs_get_error(); + if (abs(error)==EEXIST){ + output1= 1; + } else { + output1=-1; + } + } + + output2=yaffs_symlink(ELOOP2_PATH,ELOOP_PATH); + + if (output2 <0){ + error=yaffs_get_error(); + if (abs(error)==EEXIST){ + output2= 1; + } else { + output2=-1; + } + } + + + yaffs_set_error(0); /*reset the last error to 0 */ + return (output1|output2); +} + +void join_paths(char *path1,char *path2,char *new_path ) +{ //strcat(new_path,path1); /*since all functions have this then pull it out*/ if ( (path1[(sizeof(path1)/sizeof(char))-2]=='/') && path2[0]!='/') { @@ -11,31 +99,35 @@ void join_paths(char *path1,char *path2,char *new_path ){ //char new_path[(sizeof(path1)/sizeof(char))+(sizeof(path2)/sizeof(char))]; //strcpy(new_path,strcat(path1,path2)); //return new_path; - } - else if ((path1[(sizeof(path1)/sizeof(char))-2]!='/') && path2[0]=='/') { + } else if ((path1[(sizeof(path1)/sizeof(char))-2]!='/') && path2[0]=='/') { /*paths are compatiable. concatanate them*/ strcat(new_path,path1); strcat(new_path,path2); - } - else if ((path1[(sizeof(path1)/sizeof(char))-2]!='/') && path2[0]!='/') { + } else if ((path1[(sizeof(path1)/sizeof(char))-2]!='/') && path2[0]!='/') { /*need to add a "/". */ strcat(new_path,path1); strcat(new_path,"/"); strcat(new_path,path2); - - } - else if ((path1[(sizeof(path1)/sizeof(char))-2]=='/') && path2[0]=='/') { + } else if ((path1[(sizeof(path1)/sizeof(char))-2]=='/') && path2[0]=='/') { /*need to remove a "/". */ /*yaffs does not mind the extra slash. */ strcat(new_path,path1); strcat(new_path,path2); - } - else{ + } else { //error //return -1; } } +void print_message(char *message,char print_level) +{ + if (print_level <= PRINT_LEVEL){ + printf(message); + } +} + + +