Improve test automation

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@39089 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 2015-10-24 13:55:08 +00:00
parent 5f7103b520
commit b221331898
4 changed files with 76 additions and 9 deletions

View file

@ -1,3 +1,12 @@
2015-11-24 Richard Frith-Macdonald <rfm@gnu.org>
* Instance/framework.make:
* Instance/library.make:
* TestFramework/gnustep-tests.in:
Improve automated library and framework testcase handling, with
code to tell the testcases where to find the library/framework
headers and what to link with in order to do the tests.
2015-11-21 Richard Frith-Macdonald <rfm@gnu.org>
* Instance/framework.make: Remove unused methods (-frameworkEnv and

View file

@ -809,12 +809,41 @@ endif
internal-framework-check::
ifneq ($($(GNUSTEP_INSTANCE)_TEST_DIR),)
@(echo "export LD_LIBRARY_PATH=\"$$(pwd)/$(GNUSTEP_INSTANCE).framework:$(LD_LIBRARY_PATH)\"" > $($(GNUSTEP_INSTANCE)_TEST_DIR)/TestInfo; \
@(\
if !(grep gscheckenv \
"$($(GNUSTEP_INSTANCE)_TEST_DIR)/TestInfo" \
>/dev/null 2>/dev/null); then \
echo "# include settings generated by 'make check'" \
>> "$($(GNUSTEP_INSTANCE)_TEST_DIR)/TestInfo"; \
echo ". ./gscheckenv" \
>> "$($(GNUSTEP_INSTANCE)_TEST_DIR)/TestInfo"; \
fi; \
echo "# Generated by 'make check'" \
> $($(GNUSTEP_INSTANCE)_TEST_DIR)/gscheckenv; \
echo "export LD_LIBRARY_PATH=\"$$(pwd)/$(GNUSTEP_INSTANCE).framework:$(LD_LIBRARY_PATH)\"" > $($(GNUSTEP_INSTANCE)_TEST_DIR)/gscheckenv; \
if !(grep gscheckmak \
"$($(GNUSTEP_INSTANCE)_TEST_DIR)/GNUmakefile.preamble" \
>/dev/null 2>/dev/null); then \
echo "# include settings generated by 'make check'" \
>> "$($(GNUSTEP_INSTANCE)_TEST_DIR)/GNUmakefile.preamble"; \
echo "include ./gscheckmak" \
>> "$($(GNUSTEP_INSTANCE)_TEST_DIR)/GNUmakefile.preamble"; \
fi; \
echo "# Generated by 'make check'" \
> $($(GNUSTEP_INSTANCE)_TEST_DIR)/gscheckmak; \
echo "ADDITIONAL_INCLUDE_DIRS += \"-I$(GNUSTEP_MAKEFILES)/TestFramework -I$(FRAMEWORK_VERSION_DIR)/Headers\"" \
>> $($(GNUSTEP_INSTANCE)_TEST_DIR)/gscheckmak; \
echo "ADDITIONAL_LIB_DIRS += \"-L$(FRAMEWORK_VERSION_DIR))\"" \
>> $($(GNUSTEP_INSTANCE)_TEST_DIR)/gscheckmak; \
echo "ADDITIONAL_TOOL_LIBS += \"-l$(GNUSTEP_INSTANCE)\"" \
>> $($(GNUSTEP_INSTANCE)_TEST_DIR)/gscheckmak; \
unset MAKEFLAGS; \
if [ "$(DEBUG)" = "" ]; then \
gnustep-tests $($(GNUSTEP_INSTANCE)_TEST_DIR);\
gnustep-tests --verbose $($(GNUSTEP_INSTANCE)_TEST_DIR);\
else \
gnustep-tests --debug $($(GNUSTEP_INSTANCE)_TEST_DIR);\
fi;)
fi;\
)
endif
#

View file

@ -344,12 +344,41 @@ endif
# LD_LIBRARY_PATH for running the tests and then invoke gnustep-tests
internal-library-check::
ifneq ($($(GNUSTEP_INSTANCE)_TEST_DIR),)
@(echo "export LD_LIBRARY_PATH=\"$$(pwd)/$(GNUSTEP_OBJ_DIR):$(LD_LIBRARY_PATH)\"" > $($(GNUSTEP_INSTANCE)_TEST_DIR)/TestInfo; \
@(\
if !(grep gscheckenv \
"$($(GNUSTEP_INSTANCE)_TEST_DIR)/TestInfo" \
>/dev/null 2>/dev/null); then \
echo "# include settings generated by 'make check'" \
>> "$($(GNUSTEP_INSTANCE)_TEST_DIR)/TestInfo"; \
echo ". ./gscheckenv" \
>> "$($(GNUSTEP_INSTANCE)_TEST_DIR)/TestInfo"; \
fi; \
echo "# Generated by 'make check'" \
> $($(GNUSTEP_INSTANCE)_TEST_DIR)/gscheckenv; \
echo "export LD_LIBRARY_PATH=\"$$(pwd)/$(GNUSTEP_OBJ_DIR):$(LD_LIBRARY_PATH)\"" >> $($(GNUSTEP_INSTANCE)_TEST_DIR)/gscheckenv; \
if !(grep gscheckmak \
"$($(GNUSTEP_INSTANCE)_TEST_DIR)/GNUmakefile.preamble" \
>/dev/null 2>/dev/null); then \
echo "# include settings generated by 'make check'" \
>> "$($(GNUSTEP_INSTANCE)_TEST_DIR)/GNUmakefile.preamble"; \
echo "include ./gscheckmak" \
>> "$($(GNUSTEP_INSTANCE)_TEST_DIR)/GNUmakefile.preamble"; \
fi; \
echo "# Generated by 'make check'" \
> $($(GNUSTEP_INSTANCE)_TEST_DIR)/gscheckmak; \
echo "ADDITIONAL_INCLUDE_DIRS += \"-I$(GNUSTEP_MAKEFILES)/TestFramework -I$$(pwd)\"" \
>> $($(GNUSTEP_INSTANCE)_TEST_DIR)/gscheckmak; \
echo "ADDITIONAL_LIB_DIRS += \"-L$$(pwd)/$(GNUSTEP_OBJ_DIR)\"" \
>> $($(GNUSTEP_INSTANCE)_TEST_DIR)/gscheckmak; \
echo "ADDITIONAL_TOOL_LIBS += \"-l$(LIBRARY_NAME_WITHOUT_LIB)\"" \
>> $($(GNUSTEP_INSTANCE)_TEST_DIR)/gscheckmak; \
unset MAKEFLAGS; \
if [ "$(DEBUG)" = "" ]; then \
gnustep-tests $($(GNUSTEP_INSTANCE)_TEST_DIR);\
gnustep-tests --verbose $($(GNUSTEP_INSTANCE)_TEST_DIR);\
else \
gnustep-tests --debug $($(GNUSTEP_INSTANCE)_TEST_DIR);\
fi;)
fi;\
)
endif
#

View file

@ -350,7 +350,7 @@ build_and_run ()
then
echo "Building $dir/$TESTFILE"
echo "$BUILD_CMD"
$BUILD_CMD 2>&1
( . ./TestInfo; $BUILD_CMD) 2>&1
BUILDSTATUS=$?
else
BUILDSTATUS=0
@ -535,7 +535,7 @@ do
then
$MAKE_CMD clean >/dev/null 2>&1
fi
rm -rf core core.* *.core obj GNUmakefile gdb.cmds tests.log tests.sum oldtests.log oldtests.sum tests.tmp tests.sum.tmp tests.log.tmp
rm -rf core core.* *.core obj GNUmakefile gdb.cmds tests.log tests.sum oldtests.log oldtests.sum tests.tmp tests.sum.tmp tests.log.tmp gscheckenv gscheckmak
else
echo "--- Running tests in $dir ---"
@ -635,7 +635,7 @@ ${tmp}_OBJC_FILES=$TESTFILE"
# each individual test file later.
echo "" >>$GSTESTLOG
echo "Building in $dir" >>$GSTESTLOG
$MAKE_CMD -j 4 debug=yes >>$GSTESTLOG 2>&1
( . ./TestInfo; $MAKE_CMD -j 4 debug=yes) >>$GSTESTLOG 2>&1
if test $? = 0
then
NEEDBUILD=no