From: Timothy Manning Date: Tue, 29 Jun 2021 03:24:57 +0000 (+1200) Subject: Removed obsolete test from linux_tests. X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=commitdiff_plain;h=d7ff9c5dcf569713f0de064332cb290fafafabd2 Removed obsolete test from linux_tests. Signed-off-by: Timothy Manning --- diff --git a/direct/test-framework/timothy_tests/linux_tests/Makefile b/direct/test-framework/timothy_tests/linux_tests/Makefile deleted file mode 100644 index 4034b1d..0000000 --- a/direct/test-framework/timothy_tests/linux_tests/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -# Makefile for linux_test -# -# -# YAFFS: Yet another Flash File System. A NAND-flash specific file system. -# -# Copyright (C) 2002-2018 Aleph One Ltd. -# -# -# 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. -# -# NB Warning this Makefile does not include header dependencies. -# - -YDI_DIR = ../../../ -YDI_FRAMEWORK_DIR = ../../ -CLEAN_OBJS = linux_test emfile-2k-0 - -TESTFILES = linux_test.o lib.o - -all: linux_test - -YAFFS_TEST_OBJS = $(COMMONTESTOBJS) $(TESTFILES) - - -ALL_UNSORTED_OBJS += $(YAFFS_TEST_OBJS) $(FUZZER_OBJS) - -include $(YDI_FRAMEWORK_DIR)/FrameworkRules.mk - - -yaffs_test: $(FRAMEWORK_SOURCES) $(YAFFS_TEST_OBJS) - gcc $(CFLAGS) -o $@ $(YAFFS_TEST_OBJS) - - - -linux_test: $(FRAMEWORK_SOURCES) $(YAFFS_TEST_OBJS) - gcc $(CFLAGS) -o $@ $(YAFFS_TEST_OBJS) - diff --git a/direct/test-framework/timothy_tests/linux_tests/README.txt b/direct/test-framework/timothy_tests/linux_tests/README.txt deleted file mode 100644 index be8b831..0000000 --- a/direct/test-framework/timothy_tests/linux_tests/README.txt +++ /dev/null @@ -1,48 +0,0 @@ - -linux_test.c tests yaffs running under linux using the nandsim generator. - - -If a segmentation fault happens during the test then check that -the nandsim has been initilised properly. - -How to initilise the nandsim - -$ make - -$ sudo -s -...password.. -# now you have a root shell -$ ./linux-tests/initnandsim 128MiB-2048 -$ insmod yaffs2multi.ko -$ mkdir /mnt/y -$ mount -t yaffs2 /dev/mtdblock0 /mnt/y - - - -How to change the permissions on the nandsim partition - -$ sudo chmod a+wr /mnt/y/ -#check the permission change -$ touch /mnt/y/test_file - -How to clean the folder - -$ rm -rf /mnt/y - - -The test must be run in sudo to work to allow the files to be -created in the root folders. - -compile command: make -run command: sudo ./linux_test - -command line options: - -h display the command line options. - -s [number] seeds the rand with the number. - -p [number] sets the print level to the number. - the higher the number the more low level commands are printed. - the number should be between 0 and 5. - -v verbose mode. everything is printed. - -q quite mode. nothing is printed. - - diff --git a/direct/test-framework/timothy_tests/linux_tests/lib.c b/direct/test-framework/timothy_tests/linux_tests/lib.c deleted file mode 100644 index 769eebf..0000000 --- a/direct/test-framework/timothy_tests/linux_tests/lib.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * YAFFS: Yet another FFS. A NAND-flash specific file system. - * - * Copyright (C) 2002-2018 Aleph One Ltd. - * - * 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 char message[200]; -static int PRINT_LEVEL = 3; -static int exit_on_error_val =1; -char string[FILE_NAME_LENGTH+1]; - - -int get_exit_on_error(void) -{ - return exit_on_error_val; -} - -void set_exit_on_error(int val) -{ - exit_on_error_val=val; -} - -node * linked_list_add_node(int pos,node *head_node) -{ - node *new_node=NULL; - if (pos==HEAD){ - new_node=malloc(sizeof(node)); - memset(new_node, 0, sizeof(node)); - new_node->string=NULL; - new_node->next=head_node; - return new_node; - } - return NULL; -} - -void node_print_pointers(node *current_node) -{ - while (current_node != NULL){ - sprintf(message,"current_node: %p, string: %s next_node: %p\n",current_node,current_node->string,current_node->next); - print_message(3,message); - current_node=current_node->next; - } -} - -int delete_linked_list(node *head_node) -{ - node *next_node=NULL; - node *current_node=head_node; - - while (current_node != NULL){ - next_node=current_node->next; - free(current_node); - current_node=next_node; - } - - return 1; -} - -char * generate_random_string(unsigned int length) -{ - - unsigned int x; - for (x=0;x<(length-1);x++) - { - string[x]=(rand() % NAME_RANGE)+65; - } - string[x]='\0'; - return string; -} - -void set_print_level(int new_level) -{ - PRINT_LEVEL=new_level; -} -int get_print_level(void) -{ - return PRINT_LEVEL; -} -void print_message(char print_level,char *message) -{ - if (print_level <= PRINT_LEVEL){ - printf("%s",message); - } -} -int random_int(void) -{ - return (random()%1000000); -} - -void check_function(int output) -{ - if (output>=0){ - print_message(3,"test_passed\n"); - } else { - print_message(3,"test_failed\n"); - get_error_linux(); - } -} - -void get_error_linux(void) -{ - int error_code=0; - char message[30]; - message[0]='\0'; - - error_code=errno; - sprintf(message,"linux_error code %d\n",error_code); - print_message(1,message); - - strcpy(message,"error is"); - perror(message); -// sprintf(message,"error is : %s\n",yaffs_error_to_str(error_code)); - //perror(message); - //print_message(1,message); -} diff --git a/direct/test-framework/timothy_tests/linux_tests/lib.h b/direct/test-framework/timothy_tests/linux_tests/lib.h deleted file mode 100644 index 9d3350e..0000000 --- a/direct/test-framework/timothy_tests/linux_tests/lib.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * YAFFS: Yet another Flash File System . A NAND-flash specific file system. - * - * Copyright (C) 2002-2018 Aleph One Ltd. - * - * Created by Timothy Manning - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2.1 as - * published by the Free Software Foundation. - * - * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL. - */ - -#ifndef __lib_h__ -#define __lib_h__ -#include -#include -#include -#include - -#define NAME_RANGE 10 -#define ROOT_PATH "/mnt/y/" -#define FILE_NAME_LENGTH 3 -#define HEAD 0 -#define TAIL 1 - -typedef struct node_temp{ - char *string; - struct node_temp *next; -}node; - -int get_exit_on_error(void); -void set_exit_on_error(int val); -int delete_linked_list(node *head_node); -node * linked_list_add_node(int pos,node *head_node); -int random_int(void); -char * generate_random_string(unsigned int length); -void get_error_linux(void); -void check_function(int output); -void print_message(char print_level, char *message); -void set_print_level(int new_level); -int get_print_level(void); -void node_print_pointers(node *current_node); -#endif diff --git a/direct/test-framework/timothy_tests/linux_tests/linux_test.c b/direct/test-framework/timothy_tests/linux_tests/linux_test.c deleted file mode 100644 index b32dab6..0000000 --- a/direct/test-framework/timothy_tests/linux_tests/linux_test.c +++ /dev/null @@ -1,318 +0,0 @@ -/* - * YAFFS: Yet another FFS. A NAND-flash specific file system. - * - * Copyright (C) 2002-2018 Aleph One Ltd. - * - * 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 "linux_test.h" - -int random_seed; -int simulate_power_failure = 1; - -char message[400]; //this is used for storing print messages. - - - -const struct option long_options[]={ - {"help", 0,NULL,'h'}, - - - {"print_level", 1,NULL,'p'}, - {"quiet", 0,NULL,'q'}, - - {"seed", 1,NULL,'s'}, - - {"verbose", 0,NULL,'v'} -}; - -const char short_options[]="hp:qs:v"; - - -void init(int argc, char *argv[]) -{ - char dir[200]; - dir[0]='\0'; - int x=-1; - char message[100]; - int new_option; - - x=(unsigned)time(NULL); - sprintf(message,"seeding srand with: %d\n",x); - print_message(2,message); - srand(x); - - - - do { - new_option=getopt_long(argc,argv,short_options,long_options,NULL); - if (new_option=='h'){ - printf("mirror_tests help\n"); - printf("arguments:\n"); - printf("\t-p [NUMBER] //sets the print level for mirror_tests.\n"); - printf("\t-v //verbose mode everything is printed\n"); - printf("\t-q //quiet mode nothing is printed.\n"); - printf("\t-s [number] //seeds rand with the number\n"); - - exit(0); - - } else if (new_option=='p'){ - set_print_level(atoi(optarg)); - } else if (new_option=='v'){ - set_print_level(5); - } else if (new_option=='q'){ - set_print_level(-1); - } else if (new_option=='s'){ - srand(atoi(argv[x+1])); - - } else if (new_option==-1){ - - } else if (new_option=='?') { - printf("bad argument\n"); - exit(0); - } - }while(new_option!=-1); -} - -int main(int argc, char *argv[]) -{ - dir_struct *scanned_dir=NULL; - int output=0; - int break_bool=0; - int x=5; - - init(argc,argv); - while( 1){ - while (break_bool!=1){ - //printf("x %d\n",x); - x--; - if (x<0 &&(break_bool!=1)){ - output=mkdir_test(); - break_bool=1; - } - x--; - if (x<0 &&(break_bool!=1)){ - output=rmdir_test(); - break_bool=1; - } - x--; - if (x<0 &&(break_bool!=1)){ - output=mknod_test(); - break_bool=1; - } - x--; - if (x<0 &&(break_bool!=1)){ - output=symlink_test(); - break_bool=1; - } - x--; - if (x<0 &&(break_bool!=1)){ - output=link_test(); - break_bool=1; - } - x--; - if (x<0 &&(break_bool!=1)){ - output=rename_test(); - break_bool=1; - } - x--; - if (x<0 &&(break_bool!=1)){ - scanned_dir=scan_dir(); - - output=remount_test(); - check_dir(scanned_dir); - scanned_dir=NULL; //the scanned dir has been freed in check_dir. - break_bool=1; - } - } - //printf("resetting x\n"); - check_function(output); - break_bool=0; - x=(rand()% 99); - } - return 0; -} - -dir_struct * scan_dir(void) -{ - struct dirent *dir_data; - dir_struct *dir=NULL; - dir=malloc(sizeof(dir_struct)); - memset(dir, 0, sizeof(dir_struct)); - DIR *open_dir=NULL; - - - open_dir=opendir(ROOT_PATH); - if (open_dir < 0){ - sprintf(message,"failed to find the directory: %s",ROOT_PATH); - print_message(1,message); - } - dir_data=readdir(open_dir); - while(dir_data){ - dir->path_list=linked_list_add_node(HEAD,dir->path_list); - dir->path_list->string=malloc(strlen(dir_data->d_name)+1); - strcpy(dir->path_list->string,dir_data->d_name); - sprintf(message,"opened file: %s\n",dir->path_list->string); - print_message(5,message); - dir_data=readdir(open_dir); - } - closedir(open_dir); - //node_print_pointers(dir->path_list); - return dir; -} - -int check_dir(dir_struct *old_dir) -{ - print_message(3,"scanning new dir\n"); - dir_struct *new_dir=scan_dir(); - node *new_list=new_dir->path_list; - node *old_list=old_dir->path_list; - int exit_loop=0,error=0; - print_message(3,"checking dir\n"); - for (;old_list!= NULL;old_list=old_list->next){ - //sprintf(message,"new_list=!NULL= %d, exit_loop !=1 = %d\n",(new_list!=NULL),(exit_loop !=1)); - //print_message(3,message); - for (;(new_list!=NULL) && (exit_loop !=1);new_list=new_list->next){ - //sprintf(message,"comparing %s and %s\n",old_list->string,new_list->string); - //print_message(3,message); - if (strcmp( new_list->string ,old_list->string)==0){ - //files match -now compare the modes and contents of the files. - //and set the paths to NULL. - exit_loop=1; - } - /*if (new_list->next==NULL){ - print_message(3,"next is null\n"); - - }*/ - } - if (exit_loop !=1){ - //failed to find a matching file - sprintf(message,"a file has disappeared: %s\n",old_list->string); - print_message(3,message); - error=1; - - } - new_list=new_dir->path_list; - exit_loop=0; - } - //now check if there are any old unmatched files - - //free both data structs - delete_linked_list(old_dir->path_list); - delete_linked_list(new_dir->path_list); - new_dir->path_list=NULL; - old_dir->path_list=NULL; - free(old_dir); - free(new_dir); - if (error ==1){ - print_message(3,"checking dir failed\n"); - if (get_exit_on_error()==1){ - print_message(3,"exiting_program\n"); - exit(0); - } - } - - else if (error !=1){ - print_message(3,"checking dir passed\n"); - } - return error; -} - -int remount_test(void) -{ - int output; - print_message(3,"\nunmounting\n"); - output=umount2("/mnt/y",1); - check_function(output); - print_message(3,"mounting\n"); - mount("/dev/mtdblock0","/mnt/y","yaffs2",0,NULL); - check_function(output); - return output; -} - -int mkdir_test(void) -{ - - char string[FILE_NAME_LENGTH+strlen(ROOT_PATH)]; - int mode=0,output=0; - strcpy(string,ROOT_PATH); - strcat(string,generate_random_string(FILE_NAME_LENGTH)); - mode = ((S_IREAD|S_IWRITE)&random_int()); - sprintf(message,"\nmaking directory: %s, with mode %d\n",string,mode); - print_message(3,message); - output= mkdir(string,mode); - return output; -} - -int rmdir_test(void) -{ - char string[FILE_NAME_LENGTH+strlen(ROOT_PATH)]; - int output=0; - strcpy(string,ROOT_PATH); - strcat(string,generate_random_string(FILE_NAME_LENGTH)); - - sprintf(message,"\nremoving directory: %s\n",string); - print_message(3,message); - output= rmdir(string); - return output; -} -int symlink_test(void) -{ - char string[FILE_NAME_LENGTH+strlen(ROOT_PATH)]; - char string2[FILE_NAME_LENGTH+strlen(ROOT_PATH)]; - int output; - strcpy(string,ROOT_PATH); - strcat(string,generate_random_string(FILE_NAME_LENGTH)); - strcpy(string2,ROOT_PATH); - strcat(string2,generate_random_string(FILE_NAME_LENGTH)); - sprintf(message,"\nsymlink from: %s, to %s\n",string,string2); - print_message(3,message); - output= symlink(string,string2); - return output; -} -int rename_test(void) -{ - char string[FILE_NAME_LENGTH+strlen(ROOT_PATH)]; - char string2[FILE_NAME_LENGTH+strlen(ROOT_PATH)]; - int output; - strcpy(string,ROOT_PATH); - strcat(string,generate_random_string(FILE_NAME_LENGTH)); - strcpy(string2,ROOT_PATH); - strcat(string2,generate_random_string(FILE_NAME_LENGTH)); - sprintf(message,"\nrenaming from: %s, to %s\n",string,string2); - print_message(3,message); - output= rename(string,string2); - return output; -} -int link_test(void) -{ - char string[FILE_NAME_LENGTH+strlen(ROOT_PATH)]; - char string2[FILE_NAME_LENGTH+strlen(ROOT_PATH)]; - int output=0; - strcpy(string,ROOT_PATH); - strcat(string,generate_random_string(FILE_NAME_LENGTH)); - strcpy(string2,ROOT_PATH); - strcat(string2,generate_random_string(FILE_NAME_LENGTH)); - sprintf(message,"\nlink from: %s, to %s\n",string,string2); - print_message(3,message); - output= link(string,string2); - return output; -} -int mknod_test(void) -{ - char string[FILE_NAME_LENGTH+strlen(ROOT_PATH)]; - int mode=0,dev=0,output=0; - strcpy(string,ROOT_PATH); - strcat(string,generate_random_string(FILE_NAME_LENGTH)); - mode = ((S_IREAD|S_IWRITE)&random_int()); - dev = random_int(); - sprintf(message,"\nmaking node: %s, with mode %d, dev %d\n",string,mode,dev); - print_message(3,message); - output= mknod(string,mode,dev); - return output; -} diff --git a/direct/test-framework/timothy_tests/linux_tests/linux_test.h b/direct/test-framework/timothy_tests/linux_tests/linux_test.h deleted file mode 100644 index 7a9a784..0000000 --- a/direct/test-framework/timothy_tests/linux_tests/linux_test.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * YAFFS: Yet another Flash File System . A NAND-flash specific file system. - * - * Copyright (C) 2002-2018 Aleph One Ltd. - * - * Created by Timothy Manning - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2.1 as - * published by the Free Software Foundation. - * - * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL. - */ - -#ifndef __linux_test_h__ -#define __linux_test_h__ -#include -#include -#include -#include -#include -#include -#include -#include "lib.h" -#include -#include -#include - -typedef struct dir_struct_temp{ - node *path_list; - int number_of_items; -}dir_struct; - -int check_dir(dir_struct *old_dir); -dir_struct * scan_dir(void); -int link_test(void); -int symlink_test(void); -int mknod_test(void); -int mkdir_test(void); -int rename_test(void); -int rmdir_test(void); -int remount_test(void); -#endif