X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=direct%2Ftests%2Fnor_stress.c;h=bb614d8481363b380a48850aefee081908f01269;hb=2d221c0839d2e8733f52ee31e72e7f81faecb6cc;hp=28fbb2d6015fca8e00f188c82d3692b19e753878;hpb=f915693c4528d2a9c3b6abfba028e1dd2d06b438;p=yaffs2.git diff --git a/direct/tests/nor_stress.c b/direct/tests/nor_stress.c index 28fbb2d..bb614d8 100644 --- a/direct/tests/nor_stress.c +++ b/direct/tests/nor_stress.c @@ -1,3 +1,17 @@ +/* + * 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 Charles 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 "nor_stress.h" @@ -35,6 +49,8 @@ static unsigned cycleEnds; static int interleave_fsx; +static int no_verification; + char fullPathName[100]; char fullPowerUpName[100]; char fullStartName[100]; @@ -105,8 +121,9 @@ static void UpdateCounter(const char *name, unsigned *val, int initialise) yaffs_close(inh); } - if(nread != sizeof(x) || - x[0] + 1 != x[1]){ + if(!no_verification && + (nread != sizeof(x) || + x[0] + 1 != x[1])){ printf("Error reading counter %s handle %d, x[0] %u x[1] %u last error %d\n", name, inh, x[0], x[1],yaffsfs_GetLastError()); FatalError(__LINE__); @@ -206,7 +223,7 @@ static void dump_directory_tree_worker(const char *dname,int recursive) } - if(error_line) + if(error_line && !no_verification) FatalError(error_line); yaffs_closedir(d); @@ -298,6 +315,8 @@ static int yVerifyFile(const char *fName) int i; int retval = 0; + if(no_verification) + return 0; printf("Verifying file %s\n",fName); @@ -370,7 +389,7 @@ static void DoUpdateMainFile(void) result = yWriteFile(fullTempMainName,sz32); FSX(); - if(result) + if(!no_verification && result) FatalError(__LINE__); printf("Raname file %s to %s\n",fullTempMainName,fullMainName); yaffs_rename(fullTempMainName,fullMainName); @@ -380,6 +399,8 @@ static void DoUpdateMainFile(void) static void DoVerifyMainFile(void) { int result; + if(no_verification) + return; result = yVerifyFile(fullMainName); if(result) FatalError(__LINE__); @@ -400,10 +421,12 @@ void NorStressTestInitialise(const char *prefix) } -void NorStressTestRun(const char *prefix, int n_cycles, int do_fsx) +void NorStressTestRun(const char *prefix, int n_cycles, int do_fsx, int skip_verification) { interleave_fsx = do_fsx; + no_verification = skip_verification; + MakeFullNames(prefix); dump_directory_tree(fullPathName); FSX_INIT(prefix);