This lays out a common test framework structure that should make it simpler to extend tests in the
future.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
+++ /dev/null
-# Makefile for YAFFS direct test
-#
-#
-# YAFFS: Yet another Flash File System. A NAND-flash specific file system.
-#
-# Copyright (C) 2003-2010 Aleph One Ltd.
-#
-#
-# Created by Charles Manning <charles@aleph1.co.uk>
-#
-# 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.
-#
-
-#EXTRA_COMPILE_FLAGS = -DYAFFS_IGNORE_TAGS_ECC
-
-CFLAGS = -DCONFIG_YAFFS_DIRECT -DCONFIG_YAFFS_YAFFS2 -D CONFIG_YAFFS_DEFINES_TYPES
-CFLAGS += -DCONFIG_YAFFS_PROVIDE_DEFS -DCONFIG_YAFFSFS_PROVIDE_VALUES -DNO_Y_INLINE
-CFLAGS += -Wall -g $(EXTRA_COMPILE_FLAGS) -Werror=strict-aliasing
-#CFLAGS += -fno-strict-aliasing
-CFLAGS += -O0
-#CFLAGS += -DVALGRIND_TEST
-#CFLAGS += -DCONFIG_YAFFS_CASE_INSENSITIVE
-
-CFLAGS+= -Wshadow -Werror=pointer-arith -Werror=write-strings
-CFLAGS+= -Werror=strict-prototypes -Werror=missing-parameter-type
-CFLAGS+= -Werror=redundant-decls -Werror=nested-externs -Winline
-CFLAGS+= -Werror=undef
-
-CFLAGS+= -DCONFIG_YAFFS_USE_PTHREADS -lpthread
-
-
-COMMONTESTOBJS = yaffscfg2k.o yaffs_osglue.o yaffs_hweight.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_tagsmarshall.o \
- yaffs_packedtags2.o yaffs_nand.o \
- yaffs_checkptrw.o yaffs_qsort.o\
- yaffs_nameval.o yaffs_attribs.o \
- yaffs_m18_drv.o ynorsim.o \
- yaffs_allocator.o \
- yaffs_bitmap.o \
- yaffs_yaffs1.o \
- yaffs_yaffs2.o \
- yaffs_verify.o \
- yaffs_summary.o
-
-# yaffs_checkptrwtest.o\
-
-
-YAFFSDIRECTSYMLINKS = \
- yaffs_ecc.c yaffs_ecc.h yaffs_guts.c yaffs_guts.h \
- yaffs_tagscompat.c yaffs_tagscompat.h \
- yaffs_tagsmarshall.c yaffs_tagsmarshall.h \
- yaffs_packedtags1.c yaffs_packedtags1.h yaffs_packedtags2.c yaffs_packedtags2.h \
- yaffs_nand.c yaffs_nand.h yaffs_getblockinfo.h \
- yaffs_checkptrw.h yaffs_checkptrw.c \
- yaffs_nameval.c yaffs_nameval.h \
- yaffs_trace.h yaffs_attribs.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 \
- yaffs_summary.c yaffs_summary.h \
- yaffsfs.c yaffs_flashif.h yaffs_flashif2.h\
- yaffsfs.h yaffs_osglue.h ydirectenv.h \
- yaffscfg.h yaffs_list.h \
- yaffs_qsort.c yportenv.h yaffs_attribs.c \
- yaffs_nandif.c yaffs_nandif.h yaffs_nandemul2k.h \
- yaffs_hweight.h yaffs_hweight.c \
-
-
-
-DIRECTTESTOBJS = $(COMMONTESTOBJS) dtest.o
-
-BOOTTESTOBJS = bootldtst.o yboot.o yaffs_fileem.o nand_ecc.o
-
-ALLOBJS = $(sort $(DIRECTTESTOBJS) $(YAFFSTESTOBJS))
-
-TARGETS = directtest2k
-
-all: $(TARGETS)
-
-$(ALLOBJS): %.o: %.c
- gcc -c $(CFLAGS) -o $@ $<
-
-
-$(YAFFSDIRECTSYMLINKS):
- ln -s ../$@ $@
-
-
-directtest2k: $(YAFFSDIRECTSYMLINKS) $(DIRECTTESTOBJS)
- gcc -o $@ $(DIRECTTESTOBJS)
-
-yaffs_test: $(YAFFSDIRECTSYMLINKS) $(YAFFSTESTOBJS)
- gcc -o $@ $(YAFFSTESTOBJS)
-
-
-boottest: $(YAFFSDIRECTSYMLINKS) $(BOOTTESTOBJS)
- gcc -o $@ $(BOOTTESTOBJS)
-
-
-clean:
- rm -f $(TARGETS) $(ALLOBJS) core $(YAFFSDIRECTSYMLINKS)
+++ /dev/null
-# 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 <charles@aleph1.co.uk>
-#
-# 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.
-#
-
-#EXTRA_COMPILE_FLAGS = -DYAFFS_IGNORE_TAGS_ECC
-
-CFLAGS = -DCONFIG_YAFFS_DIRECT -DCONFIG_YAFFS_YAFFS2 -DCONFIG_YAFFS_DEFINES_TYPES
-CFLAGS += -DCONFIG_YAFFS_PROVIDE_DEFS -DCONFIG_YAFFSFS_PROVIDE_VALUES -DNO_Y_INLINE
-CFLAGS += -Wall -g $(EXTRA_COMPILE_FLAGS) -Wstrict-aliasing
-#CFLAGS += -fno-strict-aliasing
-CFLAGS += -O0 -fPIC
-#CFLAGS += -DVALGRIND_TEST
-
-#CFLAGS+= -Wshadow -Wpointer-arith -Wwrite-strings -Wstrict-prototypes -Wmissing-declarations
-#CFLAGS+= -Wmissing-prototypes -Wredundant-decls -Wnested-externs -Winline
-
-
-COMMONTESTOBJS = yaffscfg2k.o yaffs_osglue.o yaffs_hweight.o\
- yramsim.o yaffs_fileem2k.o\
- yaffs_nandif.o yaffs_attribs.o \
- yaffsfs.o yaffs_ecc.o yaffs_guts.o \
- yaffs_packedtags1.o yaffs_ramdisk.o yaffs_ramem2k.o \
- yaffs_tagscompat.o yaffs_packedtags2.o yaffs_nand.o \
- yaffs_checkptrw.o yaffs_qsort.o\
- yaffs_nameval.o \
- yaffs_summary.o \
- yaffs_allocator.o \
- yaffs_norif1.o ynorsim.o \
- yaffs_bitmap.o \
- yaffs_verify.o \
- yaffs_yaffs1.o yaffs_yaffs2.o \
- yaffs_error.o
-
-
-YAFFSLIBOBJS = $(COMMONTESTOBJS) yaffs_python_helper.o
-
-
-
-
-
-YAFFSDIRECTSYMLINKS = \
- yaffsfs.c yaffsfs.h yaffscfg.h yaffs_osglue.h ydirectenv.h \
- yaffs_flashif.h yaffs_flashif2.h yaffs_list.h \
- yaffs_nandif.c yaffs_nandif.h yaffs_qsort.c yaffs_nandemul2k.h \
- yportenv.h yaffs_attribs.c \
- yaffs_hweight.c yaffs_hweight.h \
- yaffs_error.c \
- yaffs_ecc.c yaffs_ecc.h yaffs_guts.c yaffs_guts.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_checkptrw.h yaffs_checkptrw.c \
- yaffs_summary.c yaffs_summary.h \
- yaffs_nameval.c yaffs_nameval.h yaffs_attribs.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
-
-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 \
- yaffsnewcfg.c yramsim.c yramsim.h \
- ynorsim.h ynorsim.c yaffs_osglue.c
-
-COPIED_SOURCES = $(YAFFSDIRECTSYMLINKS) $(DIRECTEXTRASYMLINKS)
-
-all: libyaffsfs.so
-
-
-$(YAFFSLIBOBJS): %.o: %.c
- gcc -c $(CFLAGS) -o $@ $<
-
-
-$(YAFFSDIRECTSYMLINKS):
- ln -s ../$@ $@
-
-$(DIRECTEXTRASYMLINKS):
- ln -s ../basic-test/$@ $@
-
-
-libyaffsfs.so: $(COPIED_SOURCES) $(YAFFSLIBOBJS)
- gcc -shared $(YAFFSLIBOBJS) -o $@
-
-
-clean:
- rm -f $(YAFFSLIBOBJS) core $(COPIED_SOURCES)
- rm -f libyaffsfs.so
- rm -f *.pyc
-# Makefile for YAFFS direct stress tests
+# Makefile rules for building in test framwork
#
#
# YAFFS: Yet another Flash File System. A NAND-flash specific file system.
CFLAGS = -DCONFIG_YAFFS_DIRECT -DCONFIG_YAFFS_YAFFS2 -DCONFIG_YAFFS_DEFINES_TYPES
CFLAGS += -DCONFIG_YAFFS_PROVIDE_DEFS -DCONFIG_YAFFSFS_PROVIDE_VALUES
-CFLAGS += -Wall -g $(EXTRA_COMPILE_FLAGS) -Wstrict-aliasing
+CFLAGS += -Wall -g $(EXTRA_COMPILE_FLAGS) -Wstrict-aliasing
#CFLAGS += -fno-strict-aliasing
CFLAGS += -O0
CFLAGS += -Wextra -Wpointer-arith
yaffs_packedtags2.o yaffs_nand.o \
yaffs_checkptrw.o yaffs_qsort.o\
yaffs_nameval.o yaffs_attribs.o \
- yaffs_norif1.o ynorsim.o nor_stress.o yaffs_fsx.o \
+ yaffs_m18_drv.o ynorsim.o \
yaffs_allocator.o \
yaffs_bitmap.o \
yaffs_yaffs1.o \
yaffs_verify.o \
yaffs_summary.o
-# yaffs_checkptrwtest.o\
-YAFFSTESTOBJS = $(COMMONTESTOBJS) yaffs_test.o
-
-ALLOBJS = $(sort $(YAFFSTESTOBJS))
+ALLOBJS = $(sort $(ALL_UNSORTED_OBJS))
YAFFSDIRECTSYMLINKS = \
yaffsfs.c yaffs_flashif.h yaffs_flashif2.h\
yaffs_summary.c yaffs_summary.h
-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 yaffs_osglue.c
-
-COPIED_SOURCES = $(YAFFSDIRECTSYMLINKS) $(DIRECTEXTRASYMLINKS)
+FRAMEWORKEXTRASYMLINKS = \
+ yaffscfg2k.c yaffs_fileem2k.c yaffs_fileem2k.h\
+ yaffs_fileem.c yaffs_m18_drv.c yaffs_m18_drv.h \
+ yaffs_ramdisk.c yaffs_ramdisk.h yaffs_ramem2k.c \
+ ynorsim.h ynorsim.c yaffs_osglue.c
-all: yaffs_test fuzzer
-
-$(ALLOBJS): %.o: %.c
- gcc -c $(CFLAGS) -o $@ $<
+FRAMEWORK_SOURCES = $(YAFFSDIRECTSYMLINKS) $(FRAMEWORKEXTRASYMLINKS)
+clean:
+ rm -f $(TARGETS) $(ALLOBJS) core $(FRAMEWORK_SOURCES)
$(YAFFSDIRECTSYMLINKS):
- ln -s ../$@ $@
+ ln -s $(YDI_DIR)/$@ $@
-$(DIRECTEXTRASYMLINKS):
- ln -s ../basic-test/$@ $@
+$(FRAMEWORKEXTRASYMLINKS):
+ ln -s $(YDI_FRAMEWORK_DIR)/$@ $@
-yaffs_test: $(COPIED_SOURCES) $(YAFFSTESTOBJS)
- gcc $(CFLLAG) -o $@ $(YAFFSTESTOBJS)
-
-fuzzer: fuzzer.c
- gcc $(CFLAGS) -o $@ $<
-
-clean:
- rm -f yaffs_test fuzzer fuzzer.o $(ALLOBJS) core $(COPIED_SOURCES)
+$(ALLOBJS): %.o: %.c
+ gcc -c $(CFLAGS) -o $@ $<
--- /dev/null
+# Makefile for YAFFS direct test
+#
+#
+# YAFFS: Yet another Flash File System. A NAND-flash specific file system.
+#
+# Copyright (C) 2003-2010 Aleph One Ltd.
+#
+#
+# Created by Charles Manning <charles@aleph1.co.uk>
+#
+# 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 = ../
+
+TARGETS = directtest2k
+
+all: $(TARGETS)
+
+DIRECTTESTOBJS = $(COMMONTESTOBJS) dtest.o
+
+ALL_UNSORTED_OBJS += $(DIRECTTESTOBJS)
+
+include ../FrameworkRules.mk
+
+directtest2k: $(FRAMEWORK_SOURCES) $(DIRECTTESTOBJS)
+ gcc -o $@ $(DIRECTTESTOBJS)
+
--- /dev/null
+# 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 <charles@aleph1.co.uk>
+#
+# 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.
+#
+
+
+
+
+
+
+
+$(YAFFSLIBOBJS): %.o: %.c
+ gcc -c $(CFLAGS) -o $@ $<
+
+
+$(YAFFSDIRECTSYMLINKS):
+ ln -s ../$@ $@
+
+$(DIRECTEXTRASYMLINKS):
+ ln -s ../basic-test/$@ $@
+
+
+# Makefile for stress tests and fuzzer
+#
+#
+# YAFFS: Yet another Flash File System. A NAND-flash specific file system.
+#
+# Copyright (C) 2003-2010 Aleph One Ltd.
+#
+#
+# Created by Charles Manning <charles@aleph1.co.uk>
+#
+# 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 = ../
+
+TARGETS = libyaffsfs.so
+
+
+all: $(TARGETS)
+
+
+YAFFSLIBOBJS = $(COMMONTESTOBJS) yaffs_python_helper.o
+
+ALL_UNSORTED_OBJS += $(YAFFSLIBOBJS)
+
+include ../FrameworkRules.mk
+
+CFLAGS += -O0 -fPIC
+
+
+libyaffsfs.so: $(FRAMEWORK_SOURCES) $(YAFFSLIBOBJS)
+ gcc -shared $(YAFFSLIBOBJS) -o $@
+
--- /dev/null
+# Makefile for stress tests and fuzzer
+#
+#
+# YAFFS: Yet another Flash File System. A NAND-flash specific file system.
+#
+# Copyright (C) 2003-2010 Aleph One Ltd.
+#
+#
+# Created by Charles Manning <charles@aleph1.co.uk>
+#
+# 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 = ../
+
+TARGETS = yaffs_test fuzzer
+
+all: $(TARGETS)
+
+YAFFS_TEST_OBJS = $(COMMONTESTOBJS) yaffs_test.o nor_stress.o yaffs_fsx.o
+FUZZER_OBJS = fuzzer.o
+
+ALL_UNSORTED_OBJS += $(YAFFS_TEST_OBJS) $(FUZZER_OBJS)
+
+include ../FrameworkRules.mk
+
+
+yaffs_test: $(FRAMEWORK_SOURCES) $(YAFFS_TEST_OBJS)
+ gcc $(CFLLAG) -o $@ $(YAFFS_TEST_OBJS)
+
+fuzzer: $(FUZZER_OBJS)
+ gcc $(CFLAGS) -o $@ $<
dev->driver_context = (void *) 1; // Used to identify the device in fstat.
yaffs_add_device(dev);
+
+ return NULL;
}
#include "yaffscfg.h"
#include "yaffs_guts.h"
#include "yaffsfs.h"
-#include "yaffs_fileem2k.h"
-#include "yaffs_nandemul2k.h"
-#include "yaffs_norif1.h"
#include "yaffs_trace.h"
#include <assert.h>
#include "yaffs_flashif2.h"
#include "yaffs_m18_drv.h"
-struct yaffs_dev ram1Dev;
-struct yaffs_dev flashDev;
-struct yaffs_dev m18_1Dev;
-
int yaffs_start_up(void)
{
static int start_up_called = 0;