1a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'o# 2a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'o# Makefile for the tests directory 3a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'o# 4a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'o 5a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'osrcdir = @srcdir@ 6a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'otop_srcdir = @top_srcdir@ 7a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'oVPATH = @srcdir@ 8a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'otop_builddir = .. 91e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'omy_dir = tests 10a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'oINSTALL = @INSTALL@ 11a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'o 121e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'o@MCONFIG@ 131e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'o 14f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilgerall:: @DO_TEST_SUITE@ test_one test_script 15a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'o 16f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilgertest_one: $(srcdir)/test_one.in Makefile mke2fs.conf 17f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger @echo "Creating test_one script..." 18f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger @echo "#!/bin/sh" > test_one 19149640fabcf140d8ede596b06ff8c191ca23cacaTheodore Ts'o @echo "HTREE=y" >> test_one 209e8fcd6e01c298ead62aafc7f7ba342a59c9b0e8Theodore Ts'o @echo "QUOTA=y" >> test_one 21f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger @echo "SRCDIR=@srcdir@" >> test_one 22f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger @echo "DIFF_OPTS=@UNI_DIFF_OPTS@" >> test_one 232dd680f3b9ff65c1aa0ae3af77aac55ad356f143Theodore Ts'o @echo "SIZEOF_TIME_T=@SIZEOF_TIME_T@" >> test_one 24f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger @cat $(srcdir)/test_one.in >> test_one 25f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger @chmod +x test_one 26f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger 27f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilgertest_script: test_one test_script.in Makefile mke2fs.conf 281e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'o @echo "Creating test_script..." 291e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'o @echo "#!/bin/sh" > test_script 301e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'o @echo "SRCDIR=@srcdir@" >> test_script 311e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'o @cat $(srcdir)/test_script.in >> test_script 321e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'o @chmod +x test_script 331e3472c5f37ca3686dd69b079d4d02a302f5798dTheodore Ts'o 34edc1894e60e9aef274408d322ada84729891a2f0Theodore Ts'omke2fs.conf: $(srcdir)/mke2fs.conf.in 35edc1894e60e9aef274408d322ada84729891a2f0Theodore Ts'o $(CP) $(srcdir)/mke2fs.conf.in mke2fs.conf 363d43836fda5321dd2f286eef77d238d1da792ce2Theodore Ts'o 37f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger.PHONY : test_pre test_post check always_run 38f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger 390355d6d047884f5ba41ef526fc7d13fba1f6b258Theodore Ts'oalways_run: 400355d6d047884f5ba41ef526fc7d13fba1f6b258Theodore Ts'o 418ef71d873c6c96bbe868efe0e351020763edb2b6Theodore Ts'o@ifGNUmake@TESTS=$(wildcard $(srcdir)/[a-z]_*) 428ef71d873c6c96bbe868efe0e351020763edb2b6Theodore Ts'o@ifNotGNUmake@TESTS != echo $(srcdir)/[a-z]_* 430355d6d047884f5ba41ef526fc7d13fba1f6b258Theodore Ts'o 44f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger$(TESTS):: test_one always_run 45f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger @./test_one $@ 46f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger 470355d6d047884f5ba41ef526fc7d13fba1f6b258Theodore Ts'ofoo: 480355d6d047884f5ba41ef526fc7d13fba1f6b258Theodore Ts'o echo $(TESTS) 490355d6d047884f5ba41ef526fc7d13fba1f6b258Theodore Ts'o 50f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilgertest_pre: 51f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger @$(RM) -f *.failed 52a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'o @echo "Running e2fsprogs test suite..." 53a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'o @echo " " 54a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'o 55f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilgertest_post: test_pre $(TESTS) 56f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger @$(srcdir)/test_post 57f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger 58f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilgercheck:: test_pre test_post test_script 59f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger 60f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilgercheck-failed: $(basename $(wildcard *.failed)) 61f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger @$(srcdir)/test_post 6252325593b1979509dc3f18232b50359e311268ccTheodore Ts'o 6352325593b1979509dc3f18232b50359e311268ccTheodore Ts'o 64f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas DilgerTDIR=f_testnew 65f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger# Target which creates a new testcase to simplify adding new regression tests. 66f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilgertestnew: 67f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger @echo "Creating a new e2fsck testcase in ${TDIR}" 68f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger @mkdir -p ${TDIR} 69f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger dd if=/dev/zero of=${TDIR}/image bs=1k count=8k 700f30deb3b0afa0b2949ba4cb3af988275ce7f998Andreas Dilger $(top_srcdir)/misc/mke2fs -j -F -N 256 ${TDIR}/image 71f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger @echo "new test description" > ${TDIR}/name 72f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger @echo; echo; echo "New test filesystem at ${TDIR}/image." 73f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger @echo "Now, break the filesystem as appropriate, and run 'make testend'" 74f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger 75f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas DilgerEXPECT1=${TDIR}/expect.1 76f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas DilgerEXPECT2=${TDIR}/expect.2 77f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger# Target which generates the expect files for the new testcase. 78f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilgertestend: test_one ${TDIR}/image 79f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger gzip -9 ${TDIR}/image 80f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger @OUT1=${EXPECT1} OUT2=${EXPECT2} ./test_one ${TDIR} 81f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger @echo; echo; echo "*** output from first e2fsck run (${EXPECT1}) ***" 82f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger @cat ${EXPECT1} 83f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger @echo "*** output from second e2fsck run (${EXPECT2}) ***" 84f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger @cat ${EXPECT2} 85f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger @echo "*** end of e2fsck output ***" 86f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger @echo; echo "Hopefully e2fsck now fixes this problem properly." 87f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger @echo "If all is well, edit ${TDIR}/name and rename ${TDIR}." 88f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger 89a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'oclean:: 90f3331df6bb5d380efd72e07fc9b40c998b355412Andreas Dilger $(RM) -f *~ *.log *.new *.failed *.ok *.tmp test_one test_script mke2fs.conf 91a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'o 92a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'odistclean:: clean 93a418d3ad819323f871005d253f7f9ac378e78ba5Theodore Ts'o $(RM) -f Makefile 94f10ff6429b89f3d099dbd7e76c5b7049854a1493Andreas Dilger $(RM) -rf ${TDIR} 95