From 10fffbf6cc8a96cb9b3b9164c668202010e37faa Mon Sep 17 00:00:00 2001 From: Timothy Manning Date: Tue, 2 Nov 2010 09:44:32 +1300 Subject: [PATCH 1/1] yaffs commiting quick tests to git. Signed-off-by: Timothy Manning --- direct/timothy_tests/quick_tests/Makefile | 103 ++++++++++++++++++ .../timothy_tests/quick_tests/quick_tests.c | 75 +++++++++++++ .../timothy_tests/quick_tests/quick_tests.h | 12 ++ .../quick_tests/test_mount_yaffs.c | 11 ++ .../quick_tests/test_mount_yaffs.h | 7 ++ 5 files changed, 208 insertions(+) create mode 100644 direct/timothy_tests/quick_tests/Makefile create mode 100644 direct/timothy_tests/quick_tests/quick_tests.c create mode 100644 direct/timothy_tests/quick_tests/quick_tests.h create mode 100644 direct/timothy_tests/quick_tests/test_mount_yaffs.c create mode 100644 direct/timothy_tests/quick_tests/test_mount_yaffs.h diff --git a/direct/timothy_tests/quick_tests/Makefile b/direct/timothy_tests/quick_tests/Makefile new file mode 100644 index 0000000..dc52d49 --- /dev/null +++ b/direct/timothy_tests/quick_tests/Makefile @@ -0,0 +1,103 @@ +# Makefile for YAFFS direct stress tests +# +# +# YAFFS: Yet another Flash File System. A NAND-flash specific file system. +# +# Copyright (C) 2003-2010 Aleph One Ltd. +# +# +# 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. +# +# NB Warning this Makefile does not include header dependencies. +# +# $Id: Makefile,v 1.7 2010-02-25 22:34:47 charles Exp $ + +#EXTRA_COMPILE_FLAGS = -DYAFFS_IGNORE_TAGS_ECC + +CFLAGS = -DCONFIG_YAFFS_DIRECT -DCONFIG_YAFFS_SHORT_NAMES_IN_RAM -DCONFIG_YAFFS_YAFFS2 +CFLAGS += -DCONFIG_YAFFS_PROVIDE_DEFS -DCONFIG_YAFFSFS_PROVIDE_VALUES +CFLAGS += -Wall -g $(EXTRA_COMPILE_FLAGS) -Wstrict-aliasing +#CFLAGS += -fno-strict-aliasing +CFLAGS += -O0 +CFLAGS += -Wextra -Wpointer-arith +#CFLAGS += -DCONFIG_YAFFS_VALGRIND_TEST + +#CFLAGS+= -Wshadow -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations +#CFLAGS+= -Wmissing-prototypes -Wredundant-decls -Wnested-externs -Winline + + +COMMONTESTOBJS = yaffscfg2k.o yaffs_ecc.o yaffs_fileem.o yaffs_fileem2k.o yaffsfs.o yaffs_guts.o \ + yaffs_packedtags1.o yaffs_ramdisk.o yaffs_ramem2k.o \ + yaffs_tagscompat.o yaffs_packedtags2.o yaffs_tagsvalidity.o yaffs_nand.o \ + yaffs_checkptrw.o yaffs_qsort.o\ + yaffs_nameval.o \ + yaffs_norif1.o ynorsim.o \ + yaffs_allocator.o \ + yaffs_bitmap.o \ + yaffs_yaffs1.o \ + yaffs_yaffs2.o \ + yaffs_verify.o + +# yaffs_checkptrwtest.o\ + +YAFFSTESTOBJS = $(COMMONTESTOBJS) quick_tests.o test_mount_yaffs.o + + +ALLOBJS = $(sort $(YAFFSTESTOBJS)) + +YAFFSSYMLINKS = devextras.h yaffs_ecc.c yaffs_ecc.h yaffs_guts.c yaffs_guts.h yportenv.h yaffs_tagscompat.c yaffs_tagscompat.h \ + yaffs_packedtags1.c yaffs_packedtags1.h yaffs_packedtags2.c yaffs_packedtags2.h \ + yaffs_nand.c yaffs_nand.h yaffs_getblockinfo.h yaffs_list.h \ + yaffs_tagsvalidity.c yaffs_tagsvalidity.h yaffs_checkptrw.h yaffs_checkptrw.c \ + yaffs_nameval.c yaffs_nameval.h \ + yaffs_qsort.h yaffs_trace.h \ + yaffs_allocator.c yaffs_allocator.h \ + yaffs_yaffs1.c yaffs_yaffs1.h \ + yaffs_yaffs2.c yaffs_yaffs2.h \ + yaffs_bitmap.c yaffs_bitmap.h \ + yaffs_verify.c yaffs_verify.h + +YAFFSDIRECTSYMLINKS = yaffsfs.c yaffs_flashif.h yaffs_flashif2.h\ + yaffsfs.h yaffs_malloc.h ydirectenv.h \ + yaffs_flashif.c yaffscfg.h yaffs_nandemul2k.h\ + yaffs_nandif.c yaffs_nandif.h yaffs_qsort.c + + +DIRECTEXTRASYMLINKS = yaffscfg2k.c yaffs_fileem2k.c yaffs_fileem2k.h\ + yaffs_fileem.c yaffs_norif1.c yaffs_norif1.h \ + yaffs_ramdisk.c yaffs_ramdisk.h yaffs_ramem2k.c \ + ynorsim.h ynorsim.c + +SYMLINKS = $(YAFFSSYMLINKS) $(YAFFSDIRECTSYMLINKS) $(DIRECTEXTRASYMLINKS) +#all: directtest2k boottest + +all: quick_tests + +$(ALLOBJS): %.o: %.c + gcc -c $(CFLAGS) -o $@ $< + + +$(YAFFSSYMLINKS): + ln -s ../../../$@ $@ + +$(YAFFSDIRECTSYMLINKS): + ln -s ../../$@ $@ + +$(DIRECTEXTRASYMLINKS): + ln -s ../../basic-test/$@ $@ + + +quick_tests: $(SYMLINKS) $(YAFFSTESTOBJS) + gcc $(CFLLAG) -o $@ $(YAFFSTESTOBJS) + + + + + + +clean: + rm -f quick_tests $(ALLOBJS) core $(SYMLINKS) log.txt diff --git a/direct/timothy_tests/quick_tests/quick_tests.c b/direct/timothy_tests/quick_tests/quick_tests.c new file mode 100644 index 0000000..125624d --- /dev/null +++ b/direct/timothy_tests/quick_tests/quick_tests.c @@ -0,0 +1,75 @@ +#include "quick_tests.h" + +#include "yaffsfs.h" +int random_seed; +int simulate_power_failure = 0; + + + +typedef struct test { + int (*p_function)(void); /*pointer to test function*/ + void (*p_function_clean)(void); + /*char pass_message[50]; will not need a pass message*/ + char *fail_message; /*pointer to fail message, needs to include name of test*/ +}test_template; + + +int dummy_test_pass(void){ + //printf("running dummy_test_pass\n"); + return 1; +} +void dummy_test_pass_clean(void){ + +} +int dummy_test_fail(void){ + //printf("running dummy_test_fail\n"); + return 0; +} +void dummy_test_fail_clean(void){ +} +test_template test_list[]={ + {dummy_test_pass,dummy_test_pass_clean,"dummy_test_pass"}, + {dummy_test_fail,dummy_test_fail_clean,"dummy_test_fail"}, + {mount_yaffs_test,mount_yaffs_test_clean,"mount_yaffs_test"} + }; + + +int main(){ + int output=0; + unsigned int num_of_tests_pass=0; + int num_of_tests_failed=0; + unsigned int total_number_of_tests=(sizeof(test_list)/sizeof(test_template)); + unsigned int x=0; + init_quick_tests(); + printf("quick tests for yaffs\n"); + //printf("testing yaffs\n"); + + //printf("len function %d",(sizeof(test_list)/sizeof(test_template))); + for (x=0;x0){ + /*test has passed*/ + num_of_tests_pass++; + } + else { + /*test is assumed to have failed*/ + //printf("test failed\n"); + printf("test: %s failed\n",test_list[x].fail_message); + num_of_tests_failed ++; + } + test_list[x].p_function_clean(); /*run test*/ + + } + if (num_of_tests_pass==total_number_of_tests){ + printf("\t OK \n"); + } + printf("tests: %d passed %d failed\n",num_of_tests_pass,num_of_tests_failed); + return 0; +} + +void init_quick_tests(void){ + yaffs_start_up();; + //yaffs_set_trace(0); + +} diff --git a/direct/timothy_tests/quick_tests/quick_tests.h b/direct/timothy_tests/quick_tests/quick_tests.h new file mode 100644 index 0000000..3c811a8 --- /dev/null +++ b/direct/timothy_tests/quick_tests/quick_tests.h @@ -0,0 +1,12 @@ +#ifndef __quick_tests_h__ +#define __quick_tests_h__ +#include +#include "test_mount_yaffs.h" + + +#define YAFFS_MOUNT_POINT "/yaffs2/" + +void init_quick_tests(void); +int dummy_test_pass(void); +int dummy_test_pass(void); +#endif diff --git a/direct/timothy_tests/quick_tests/test_mount_yaffs.c b/direct/timothy_tests/quick_tests/test_mount_yaffs.c new file mode 100644 index 0000000..9746864 --- /dev/null +++ b/direct/timothy_tests/quick_tests/test_mount_yaffs.c @@ -0,0 +1,11 @@ +#include "test_mount_yaffs.h" +#include "yaffsfs.h" +int mount_yaffs_test(void){ + int output=0; + output=yaffs_mount(YAFFS_MOUNT_POINT); + return output; +} + +void mount_yaffs_test_clean(void){ + yaffs_unmount(YAFFS_MOUNT_POINT); +} diff --git a/direct/timothy_tests/quick_tests/test_mount_yaffs.h b/direct/timothy_tests/quick_tests/test_mount_yaffs.h new file mode 100644 index 0000000..e922474 --- /dev/null +++ b/direct/timothy_tests/quick_tests/test_mount_yaffs.h @@ -0,0 +1,7 @@ +#ifndef __mount_yaffs_test__ +#define __mount_yaffs_test__ + +#define YAFFS_MOUNT_POINT "/yaffs2/" +int mount_yaffs_test(void); +void mount_yaffs_test_clean(void); +#endif -- 2.30.2