changeset 345:bfc268444ee2

More test tweaks
author charles
date Sat, 07 Nov 2009 22:35:15 +0000
parents 90a548c51099
children 6750f63cd377
files direct/tests/nor_stress.c direct/tests/run_fw_update_test_nand.sh direct/tests/yaffs_test.c direct/yaffs_fileem2k.c
diffstat 4 files changed, 44 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/direct/tests/nor_stress.c
+++ b/direct/tests/nor_stress.c
@@ -27,6 +27,8 @@ do { \
 #endif
 
 
+void (*ext_fatal)(void) = NULL;
+
 static unsigned powerUps;
 static unsigned cycleStarts;
 static unsigned cycleEnds;
@@ -71,6 +73,9 @@ void MakeFullNames(const char *prefix)
 static void FatalError(int lineNo)
 {
   printf("Integrity error %d\n",lineNo);
+  if(ext_fatal)
+  	ext_fatal();
+  	
   while(1){
    sleep(1);
   }
--- a/direct/tests/run_fw_update_test_nand.sh
+++ b/direct/tests/run_fw_update_test_nand.sh
@@ -1,7 +1,17 @@
 #!/bin/bash
 
+iterations=100000
 
-for ((i=0; i < 100000; i++))  
+[ -z $1 ]  || iterations=$1
+
+
+rm iteration-max-*
+touch iteration-max-$iterations
+
+echo " Running $iterations iterations"
+sleep 2
+
+for ((i=0; i < $iterations; i++))  
 do
 
    seed=$RANDOM   
@@ -10,8 +20,12 @@ do
    echo $seed>seed-nand-for-run-$i
    rm emfile-2k-0-*$j
    cp emfile-2k-0 emfile-2k-0-$i
-   echo
-   echo
-   echo "######### Run $i with seed $seed"
+   echo "#########"
+   echo "#########"
+   echo "#########"
+   echo "######### Run $i of $iterations with seed $seed"
+   echo "#########"
+   echo "#########"
+   echo "#########"
    ./yaffs_test -u -f -p -s$seed yaffs2
 done
--- a/direct/tests/yaffs_test.c
+++ b/direct/tests/yaffs_test.c
@@ -19,13 +19,14 @@
 #include <string.h>
 #include <unistd.h>
 #include <fcntl.h>
+#include <signal.h>
 
 #include "yaffsfs.h"
 
 #include "nor_stress.h"
 #include "yaffs_fsx.h"
 
-
+void (*ext_fatal)(void);
 
 
 int random_seed;
@@ -55,11 +56,28 @@ void BadUsage(void)
 	exit(2);
 }
 
+void test_fatal(void)
+{
+	printf("fatal yaffs test pid %d sleeping\n",getpid());
+	while(1)
+		sleep(1);
+	
+}
+
+void bad_ptr_handler(int sig)
+{
+	printf("signal %d received\n",sig);
+	test_fatal();
+}
 int main(int argc, char **argv)
 {
 	int ch;
 	
-
+	ext_fatal = test_fatal;
+	signal(SIGSEGV,bad_ptr_handler);
+	signal(SIGBUS,bad_ptr_handler);
+	signal(SIGABRT,bad_ptr_handler);
+	
 	while ((ch = getopt(argc,argv, "filn:ps:u"))
 	       != EOF)
 		switch (ch) {
--- a/direct/yaffs_fileem2k.c
+++ b/direct/yaffs_fileem2k.c
@@ -82,7 +82,7 @@ static void yflash2_MaybePowerFail(unsig
    if(simulate_power_failure &&
       remaining_ops < 1){
        printf("Simulated power failure after %d operations\n",nops_so_far);
-       printf("  Fail simulated on chunkInNAND %d, at fail point %d\n",
+       printf("  power failed on chunkInNAND %d, at fail point %d\n",
        			chunkInNAND, failPoint);
     	exit(0);
   }