better way to provide custom commandline options for individual tests

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11356 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2009-07-03 22:23:43 +00:00
commit 9064b08651
21 changed files with 82 additions and 38 deletions

View file

@ -89,8 +89,12 @@ SKIP_CPP_STD_CASES = Yes
include $(srcdir)/../common.mk include $(srcdir)/../common.mk
# Overridden variables here
# SWIGOPT += -debug-module 4 # SWIGOPT += -debug-module 4
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -11,10 +11,14 @@ top_builddir = @top_builddir@
include $(srcdir)/../common.mk include $(srcdir)/../common.mk
# Overridden variables here
# no C++ tests for now # no C++ tests for now
CPP_TEST_CASES = CPP_TEST_CASES =
#C_TEST_CASES += #C_TEST_CASES +=
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -23,10 +23,12 @@ EXTRA_TEST_CASES += chicken_ext_test.externaltest
include $(srcdir)/../common.mk include $(srcdir)/../common.mk
# Overridden variables here # Overridden variables here
SWIGOPT += -nounit SWIGOPT += -nounit
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -11,10 +11,14 @@ top_builddir = @top_builddir@
include $(srcdir)/../common.mk include $(srcdir)/../common.mk
# Overridden variables here
# no C++ tests for now # no C++ tests for now
CPP_TEST_CASES = CPP_TEST_CASES =
#C_TEST_CASES += #C_TEST_CASES +=
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -16,8 +16,8 @@
# b) Define rules for %.ctest, %.cpptest, %.multicpptest and %.clean. # b) Define rules for %.ctest, %.cpptest, %.multicpptest and %.clean.
# c) Define srcdir, top_srcdir and top_builddir (these are the # c) Define srcdir, top_srcdir and top_builddir (these are the
# equivalent to configure's variables of the same name). # equivalent to configure's variables of the same name).
# 3) One off special commandline options can be achieved by adding a # 3) One off special commandline options for a testcase can be added.
# test case to CUSTOM_TEST_CASES and defining rules to run and test. # See custom tests below.
# #
# The 'check' target runs the testcases including SWIG invocation, # The 'check' target runs the testcases including SWIG invocation,
# C/C++ compilation, target language compilation (if any) and runtime # C/C++ compilation, target language compilation (if any) and runtime
@ -60,7 +60,6 @@ CSRCS =
TARGETPREFIX = TARGETPREFIX =
TARGETSUFFIX = TARGETSUFFIX =
SWIGOPT = -outcurrentdir -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE) SWIGOPT = -outcurrentdir -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)
SWIGOPTCUSTOM =
INCLUDES = -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE) INCLUDES = -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)
LIBS = -L. LIBS = -L.
LIBPREFIX = lib LIBPREFIX = lib
@ -72,7 +71,7 @@ INTERFACEDIR = ../
# Note that any whitespace after the last entry in each list will break make # Note that any whitespace after the last entry in each list will break make
# #
# Broken C++ test cases. (Can be run individually using make testcase.cpptest.) # Broken C++ test cases. (Can be run individually using: make testcase.cpptest)
CPP_TEST_BROKEN += \ CPP_TEST_BROKEN += \
constants \ constants \
cpp_broken \ cpp_broken \
@ -86,12 +85,12 @@ CPP_TEST_BROKEN += \
template_expr template_expr
# Broken C test cases. (Can be run individually using make testcase.ctest.) # Broken C test cases. (Can be run individually using: make testcase.ctest)
C_TEST_BROKEN += \ C_TEST_BROKEN += \
tag_no_clash_with_variable tag_no_clash_with_variable
# C++ test cases. (Can be run individually using make testcase.cpptest.) # C++ test cases. (Can be run individually using: make testcase.cpptest)
CPP_TEST_CASES += \ CPP_TEST_CASES += \
abstract_access \ abstract_access \
abstract_inherit \ abstract_inherit \
@ -143,6 +142,7 @@ CPP_TEST_CASES += \
cpp_nodefault \ cpp_nodefault \
cpp_static \ cpp_static \
cpp_typedef \ cpp_typedef \
custom_wallkw \
default_args \ default_args \
default_constructor \ default_constructor \
defvalue_constructor \ defvalue_constructor \
@ -421,7 +421,7 @@ CPP_TEST_CASES += ${CPP_STD_TEST_CASES}
endif endif
# C test cases. (Can be run individually using make testcase.ctest.) # C test cases. (Can be run individually using: make testcase.ctest)
C_TEST_CASES += \ C_TEST_CASES += \
arrays \ arrays \
char_constant \ char_constant \
@ -460,7 +460,7 @@ C_TEST_CASES += \
unions unions
# Multi-module C++ test cases . (Can be run individually using make testcase.multicpptest.) # Multi-module C++ test cases . (Can be run individually using make testcase.multicpptest)
MULTI_CPP_TEST_CASES += \ MULTI_CPP_TEST_CASES += \
clientdata_prop \ clientdata_prop \
imports \ imports \
@ -469,20 +469,13 @@ MULTI_CPP_TEST_CASES += \
template_typedef_import \ template_typedef_import \
multi_import multi_import
# Non standard testcases, usually using custom commandline options # Custom tests - tests with additional commandline options
# Testcase names are prefixed with custom_ and can be run individually using make testcase.customtest custom_wallkw.cpptest: SWIGOPT += -Wallkw
CUSTOM_TEST_CASES = \
custom_wallkw \
# individual custom tests - any kind of customisation allowed here
# Note: $(basename $@) strips everything after and including the . in the target name
custom_wallkw.customtest:
$(MAKE) $(basename $@).cpptest SWIGOPTCUSTOM="-Wallkw"
NOT_BROKEN_TEST_CASES = $(CPP_TEST_CASES:=.cpptest) \ NOT_BROKEN_TEST_CASES = $(CPP_TEST_CASES:=.cpptest) \
$(C_TEST_CASES:=.ctest) \ $(C_TEST_CASES:=.ctest) \
$(MULTI_CPP_TEST_CASES:=.multicpptest) \ $(MULTI_CPP_TEST_CASES:=.multicpptest) \
$(CUSTOM_TEST_CASES:=.customtest) \
$(EXTRA_TEST_CASES) $(EXTRA_TEST_CASES)
BROKEN_TEST_CASES = $(CPP_TEST_BROKEN:=.cpptest) \ BROKEN_TEST_CASES = $(CPP_TEST_BROKEN:=.cpptest) \
@ -491,7 +484,6 @@ BROKEN_TEST_CASES = $(CPP_TEST_BROKEN:=.cpptest) \
ALL_CLEAN = $(CPP_TEST_CASES:=.clean) \ ALL_CLEAN = $(CPP_TEST_CASES:=.clean) \
$(C_TEST_CASES:=.clean) \ $(C_TEST_CASES:=.clean) \
$(MULTI_CPP_TEST_CASES:=.clean) \ $(MULTI_CPP_TEST_CASES:=.clean) \
$(CUSTOM_TEST_CASES:=.clean) \
$(CPP_TEST_BROKEN:=.clean) \ $(CPP_TEST_BROKEN:=.clean) \
$(C_TEST_BROKEN:=.clean) $(C_TEST_BROKEN:=.clean)
@ -511,14 +503,14 @@ broken: $(BROKEN_TEST_CASES)
swig_and_compile_cpp = \ swig_and_compile_cpp = \
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CXXSRCS="$(CXXSRCS)" \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CXXSRCS="$(CXXSRCS)" \
SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" \ SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" \
INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT) $(SWIGOPTCUSTOM)" NOLINK=true \ INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT)" NOLINK=true \
TARGET="$(TARGETPREFIX)$*$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$*.i" \ TARGET="$(TARGETPREFIX)$*$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$*.i" \
$(LANGUAGE)$(VARIANT)_cpp $(LANGUAGE)$(VARIANT)_cpp
swig_and_compile_c = \ swig_and_compile_c = \
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CSRCS="$(CSRCS)" \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CSRCS="$(CSRCS)" \
SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" \ SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" \
INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT) $(SWIGOPTCUSTOM)" NOLINK=true \ INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT)" NOLINK=true \
TARGET="$(TARGETPREFIX)$*$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$*.i" \ TARGET="$(TARGETPREFIX)$*$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$*.i" \
$(LANGUAGE)$(VARIANT) $(LANGUAGE)$(VARIANT)
@ -526,7 +518,7 @@ swig_and_compile_multi_cpp = \
for f in `cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list` ; do \ for f in `cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list` ; do \
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CXXSRCS="$(CXXSRCS)" \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CXXSRCS="$(CXXSRCS)" \
SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" LIBS='$(LIBS)' \ SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" LIBS='$(LIBS)' \
INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT) $(SWIGOPTCUSTOM)" NOLINK=true \ INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT)" NOLINK=true \
TARGET="$(TARGETPREFIX)$${f}$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$$f.i" \ TARGET="$(TARGETPREFIX)$${f}$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$$f.i" \
$(LANGUAGE)$(VARIANT)_cpp; \ $(LANGUAGE)$(VARIANT)_cpp; \
done done
@ -538,7 +530,7 @@ swig_and_compile_external = \
$(LANGUAGE)$(VARIANT)_externalhdr; \ $(LANGUAGE)$(VARIANT)_externalhdr; \
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CXXSRCS="$(CXXSRCS) $*_external.cxx" \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile CXXSRCS="$(CXXSRCS) $*_external.cxx" \
SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" \ SWIG_LIB="$(SWIG_LIB)" SWIG="$(SWIG)" \
INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT) $(SWIGOPTCUSTOM)" NOLINK=true \ INCLUDES="$(INCLUDES)" SWIGOPT="$(SWIGOPT)" NOLINK=true \
TARGET="$(TARGETPREFIX)$*$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$*.i" \ TARGET="$(TARGETPREFIX)$*$(TARGETSUFFIX)" INTERFACEDIR="$(INTERFACEDIR)" INTERFACE="$*.i" \
$(LANGUAGE)$(VARIANT)_cpp $(LANGUAGE)$(VARIANT)_cpp

View file

@ -15,14 +15,12 @@ CPP_TEST_CASES = \
csharp_attributes \ csharp_attributes \
csharp_exceptions \ csharp_exceptions \
csharp_features \ csharp_features \
csharp_lib_arrays \
csharp_prepost \ csharp_prepost \
csharp_typemaps \ csharp_typemaps \
enum_thorough_simple \ enum_thorough_simple \
enum_thorough_typesafe \ enum_thorough_typesafe \
exception_partial_info exception_partial_info \
CUSTOM_TEST_CASES = \
csharp_lib_arrays \
intermediary_classname intermediary_classname
include $(srcdir)/../common.mk include $(srcdir)/../common.mk
@ -33,6 +31,10 @@ INTERFACEDIR = ../../
CSHARPFLAGSSPECIAL = CSHARPFLAGSSPECIAL =
# Custom tests - tests with additional commandline options
intermediary_classname.cpptest: SWIGOPT += -dllimport intermediary_classname
csharp_lib_arrays.cpptest: CSHARPFLAGSSPECIAL = -unsafe
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)
@ -49,12 +51,6 @@ CSHARPFLAGSSPECIAL =
+(cd $* && $(swig_and_compile_multi_cpp)) +(cd $* && $(swig_and_compile_multi_cpp))
+$(run_testcase) +$(run_testcase)
# Rules for custom tests
intermediary_classname.customtest:
$(MAKE) $(basename $@).cpptest SWIGOPTCUSTOM="-dllimport intermediary_classname"
csharp_lib_arrays.customtest:
$(MAKE) $(basename $@).cpptest CSHARPFLAGSSPECIAL="-unsafe"
# Makes a directory for the testcase if it does not exist # Makes a directory for the testcase if it does not exist
setup = \ setup = \
if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \ if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \

View file

@ -17,6 +17,9 @@ include $(srcdir)/../common.mk
# Overridden variables here # Overridden variables here
# none! # none!
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -6,12 +6,15 @@ EXTRA_TEST_CASES += guilescm_ext_test.externaltest
include ../guile/Makefile include ../guile/Makefile
# Overridden variables here
INCLUDES += -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/guilescm INCLUDES += -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/guilescm
VARIANT = VARIANT =
# Refer to the guile directory for the run scripts # Refer to the guile directory for the run scripts
SCRIPTPREFIX = ../guile/ SCRIPTPREFIX = ../guile/
# Custom tests - tests with additional commandline options
# none!
# Runs the testcase. A testcase is only run if # Runs the testcase. A testcase is only run if
# a file is found which has _runme.scm appended after the testcase name. # a file is found which has _runme.scm appended after the testcase name.
run_testcase = \ run_testcase = \

View file

@ -40,6 +40,9 @@ include $(srcdir)/../common.mk
SWIGOPT += -package $* SWIGOPT += -package $*
INTERFACEDIR = ../../ INTERFACEDIR = ../../
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -24,6 +24,9 @@ include $(srcdir)/../common.mk
# Overridden variables here # Overridden variables here
LIBS = -L. LIBS = -L.
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -14,6 +14,9 @@ include $(srcdir)/../common.mk
# Overridden variables here # Overridden variables here
# none! # none!
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -44,6 +44,9 @@ include $(srcdir)/../common.mk
# Overridden variables here # Overridden variables here
# none! # none!
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
echo $@ >> testing echo $@ >> testing

View file

@ -34,6 +34,9 @@ include $(srcdir)/../common.mk
# Overridden variables here # Overridden variables here
LIBS = -L. LIBS = -L.
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -27,6 +27,9 @@ include $(srcdir)/../common.mk
# Overridden variables here # Overridden variables here
# none! # none!
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -16,6 +16,9 @@ include $(srcdir)/../common.mk
# Overridden variables here # Overridden variables here
TARGETPREFIX =# Should be php_ for Windows, empty otherwise TARGETPREFIX =# Should be php_ for Windows, empty otherwise
# Custom tests - tests with additional commandline options
# none!
# write out tests without a _runme.php # write out tests without a _runme.php
missingcpptests: missingcpptests:
for test in $(CPP_TEST_CASES) ; do test -f $${test}_runme.php || echo $${test}; done for test in $(CPP_TEST_CASES) ; do test -f $${test}_runme.php || echo $${test}; done

View file

@ -14,6 +14,9 @@ include $(srcdir)/../common.mk
# Overridden variables here # Overridden variables here
# none! # none!
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -89,6 +89,9 @@ include $(srcdir)/../common.mk
LIBS = -L. LIBS = -L.
VALGRIND_OPT += --suppressions=pythonswig.supp VALGRIND_OPT += --suppressions=pythonswig.supp
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -16,6 +16,10 @@ CPP_TEST_CASES = r_double_delete
include $(srcdir)/../common.mk include $(srcdir)/../common.mk
# Overridden variables here # Overridden variables here
# none!
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:

View file

@ -38,12 +38,10 @@ include $(srcdir)/../common.mk
# Overridden variables here # Overridden variables here
SWIGOPT += -w801 -noautorename -features autodoc=4 SWIGOPT += -w801 -noautorename -features autodoc=4
# Custom tests - tests with additional commandline options
# Rules for the different types of tests
# make sure -autorename is true for the naming test
ruby_naming.cpptest: SWIGOPT += -autorename ruby_naming.cpptest: SWIGOPT += -autorename
# Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)
+$(swig_and_compile_cpp) +$(swig_and_compile_cpp)

View file

@ -23,6 +23,9 @@ include $(srcdir)/../common.mk
# Overridden variables here # Overridden variables here
# none! # none!
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)

View file

@ -11,10 +11,14 @@ top_builddir = @top_builddir@
include $(srcdir)/../common.mk include $(srcdir)/../common.mk
# Overridden variables here
# no C++ tests for now # no C++ tests for now
CPP_TEST_CASES = CPP_TEST_CASES =
#C_TEST_CASES += #C_TEST_CASES +=
# Custom tests - tests with additional commandline options
# none!
# Rules for the different types of tests # Rules for the different types of tests
%.cpptest: %.cpptest:
$(setup) $(setup)