* interfaces: Documentation and CHANGES entry for interface feature interface macro argument name tweaks Change the name of the interface in %feature to be more portable Interface feature fix for typedef types Add limited support for %interface_impl and %shared_ptr Multiple inheritance warning wording tweak C# "override" fix for "extend" case Add checks for interface name symbol clashes interface feature test changes for the tests to pass for all languages Rename feature_interface.i to swiginterface.i Re-organization of the interface feature common code Port Java interface tests to C# Test %interface Test %interface_impl Use rstrip instead of regex encoder in %feature_rename Add rstrip encoder for use in %rename. Interface macros: %interface %interface_impl %interface_custom Add $interfacename family of special variable expansions Add multiple_inheritance_nspace testcase Interface name handling improvements and special variable changes Correct regex example comment Properly hide unexposed naming functions in naming.c C++ namespace testing for interface feature interface feature - SWIG_JAVABODY_PROXY does not need to be overridden Support namespaces and nspace with the interface feature for C# Support namespaces and nspace with the interface feature for Java Cosmetic test case changes Add Java premature garbage collection prevention parameter (pgcpp) to interface feature Create javainterfacecode and csinterfacecode typemaps IntPtr & HandleRef absolute names used virtual/override fix Improve interface feature checks Add another interface test selecting just one base as an interface Comments added to interface feature implementation and cosmetic code changes Add overloading tests for interface feature Refactor multiple inheritance warnings director generation fixes interface feature updates for C# latest on master interfaces branch merge fixes Remove unnecessary interfaces for concrete classes cosmetic code formatting changes Correct interface name attributes that are internal interface macro changes to support templates Test non-virtual method in Derived classes interface tests for a most derived class inheriting the interfaces further up the chain Rename GetCPtr/getCPtr to SWIGInterfaceUpcast interface feature support for const ref pointers (used by the STL) Interface feature support for arrays More interface feature testing for return values interface feature support for passing by value interface feature support for references Multiple inheritance parameters as pointers testing Simplify multiple_inheritance_abstract Java runtime test Warning fixes Rename test functions in multiple_inheritance_abstract testcase Formatting fixes in generated code for interface feature Cosmetic spacing changes in test case interface feature typemap corrections to handle NULL pointers interface test added javadirectorin fix interface implementation visibility interface inheritance (2) interface inheritance (1) feature:interface ported to Java propagate non-abstract "interface" base methods (3) propagate non-abstract "interface" base methods (2) propagate non-abstract "interface" base methods (1) namespace support added GetCPtr now returns HandleRef "feature:interface:name" is now mandatory attribute interfaces (1) interfaces (1) Conflicts: CHANGES.current
769 lines
19 KiB
Makefile
769 lines
19 KiB
Makefile
#######################################################################
|
|
# SWIG test suite makefile.
|
|
# The test suite comprises many different test cases, which have
|
|
# typically produced bugs in the past. The aim is to have the test
|
|
# cases compiling for every language modules. Some testcase have
|
|
# a runtime test which is written in each of the module's language.
|
|
#
|
|
# This makefile runs SWIG on the testcases, compiles the c/c++ code
|
|
# then builds the object code for use by the language.
|
|
# To complete a test in a language follow these guidelines:
|
|
# 1) Add testcases to CPP_TEST_CASES (c++) or C_TEST_CASES (c) or
|
|
# MULTI_CPP_TEST_CASES (multi-module c++ tests)
|
|
# 2) If not already done, create a makefile which:
|
|
# a) Defines LANGUAGE matching a language rule in Examples/Makefile,
|
|
# for example LANGUAGE = java
|
|
# b) Define rules for %.ctest, %.cpptest, %.multicpptest and %.clean.
|
|
# c) Define srcdir, top_srcdir and top_builddir (these are the
|
|
# equivalent to configure's variables of the same name).
|
|
# 3) One off special commandline options for a testcase can be added.
|
|
# See custom tests below.
|
|
#
|
|
# The 'check' target runs the testcases including SWIG invocation,
|
|
# C/C++ compilation, target language compilation (if any) and runtime
|
|
# test (if there is an associated 'runme' test).
|
|
# The 'partialcheck' target only invokes SWIG.
|
|
# The 'all' target is the same as the 'check' target but also includes
|
|
# known broken testcases.
|
|
# The 'clean' target cleans up.
|
|
#
|
|
# Note that the RUNTOOL, COMPILETOOL and SWIGTOOL variables can be used
|
|
# for invoking tools for the runtime tests and target language
|
|
# compiler (eg javac), and on SWIG respectively. For example, valgrind
|
|
# can be used for memory checking of the runtime tests using:
|
|
# make RUNTOOL="valgrind --leak-check=full"
|
|
# and valgrind can be used when invoking SWIG using:
|
|
# make SWIGTOOL="valgrind --tool=memcheck"
|
|
#
|
|
# An individual test run can be debugged easily:
|
|
# make director_string.cpptest RUNTOOL="gdb --args"
|
|
#
|
|
# The variables below can be overridden after including this makefile
|
|
#######################################################################
|
|
|
|
#######################################################################
|
|
# Variables
|
|
#######################################################################
|
|
|
|
ifneq (,$(USE_VALGRIND))
|
|
VALGRIND_OPT = --leak-check=full
|
|
RUNTOOL = valgrind $(VALGRIND_OPT)
|
|
else
|
|
RUNTOOL =
|
|
endif
|
|
COMPILETOOL=
|
|
SWIGTOOL =
|
|
|
|
SWIGEXE = $(top_builddir)/swig
|
|
SWIG_LIB_DIR = $(top_srcdir)/Lib
|
|
TEST_SUITE = test-suite
|
|
EXAMPLES = Examples
|
|
CXXSRCS =
|
|
CSRCS =
|
|
TARGETPREFIX =
|
|
TARGETSUFFIX =
|
|
SWIGOPT = -outcurrentdir -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)
|
|
INCLUDES = -I$(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)
|
|
LIBS = -L.
|
|
LIBPREFIX = lib
|
|
ACTION = check
|
|
INTERFACEDIR = ../
|
|
SRCDIR = $(srcdir)/
|
|
SCRIPTDIR = $(srcdir)
|
|
|
|
# Regenerate Makefile if Makefile.in or config.status have changed.
|
|
Makefile: $(srcdir)/Makefile.in ../../../config.status
|
|
cd ../../../ && $(SHELL) ./config.status $(EXAMPLES)/$(TEST_SUITE)/$(LANGUAGE)/Makefile
|
|
|
|
#
|
|
# Please keep test cases in alphabetical order.
|
|
# 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)
|
|
CPP_TEST_BROKEN += \
|
|
constants \
|
|
cpp_broken \
|
|
director_nested_class \
|
|
exception_partial_info \
|
|
extend_variable \
|
|
li_std_vector_ptr \
|
|
li_boost_shared_ptr_template \
|
|
nested_private \
|
|
overload_complicated \
|
|
rename_camel \
|
|
template_default_pointer \
|
|
template_private_assignment \
|
|
template_expr \
|
|
$(CPP11_TEST_BROKEN)
|
|
|
|
|
|
# Broken C test cases. (Can be run individually using: make testcase.ctest)
|
|
C_TEST_BROKEN += \
|
|
tag_no_clash_with_variable
|
|
|
|
# C++ test cases. (Can be run individually using: make testcase.cpptest)
|
|
CPP_TEST_CASES += \
|
|
abstract_access \
|
|
abstract_inherit \
|
|
abstract_inherit_ok \
|
|
abstract_signature \
|
|
abstract_typedef \
|
|
abstract_typedef2 \
|
|
abstract_virtual \
|
|
access_change \
|
|
add_link \
|
|
aggregate \
|
|
allowexcept \
|
|
allprotected \
|
|
allprotected_not \
|
|
anonymous_bitfield \
|
|
apply_signed_char \
|
|
apply_strings \
|
|
argout \
|
|
array_member \
|
|
array_typedef_memberin \
|
|
arrayref \
|
|
arrays_dimensionless \
|
|
arrays_global \
|
|
arrays_global_twodim \
|
|
arrays_scope \
|
|
autodoc \
|
|
bloody_hell \
|
|
bools \
|
|
catches \
|
|
cast_operator \
|
|
casts \
|
|
char_binary \
|
|
char_strings \
|
|
chartest \
|
|
class_forward \
|
|
class_ignore \
|
|
class_scope_weird \
|
|
compactdefaultargs \
|
|
const_const_2 \
|
|
constant_directive \
|
|
constant_pointers \
|
|
constover \
|
|
constructor_copy \
|
|
constructor_exception \
|
|
constructor_explicit \
|
|
constructor_ignore \
|
|
constructor_rename \
|
|
constructor_value \
|
|
contract \
|
|
conversion \
|
|
conversion_namespace \
|
|
conversion_ns_template \
|
|
conversion_operators \
|
|
cplusplus_throw \
|
|
cpp_basic \
|
|
cpp_enum \
|
|
cpp_namespace \
|
|
cpp_nodefault \
|
|
cpp_static \
|
|
cpp_typedef \
|
|
curiously_recurring_template_pattern \
|
|
default_args \
|
|
default_arg_values \
|
|
default_constructor \
|
|
defvalue_constructor \
|
|
derived_byvalue \
|
|
derived_nested \
|
|
destructor_reprotected \
|
|
director_abstract \
|
|
director_alternating \
|
|
director_basic \
|
|
director_property \
|
|
director_binary_string \
|
|
director_classes \
|
|
director_classic \
|
|
director_constructor \
|
|
director_default \
|
|
director_detect \
|
|
director_enum \
|
|
director_exception \
|
|
director_extend \
|
|
director_finalizer \
|
|
director_frob \
|
|
director_ignore \
|
|
director_keywords \
|
|
director_namespace_clash \
|
|
director_nspace \
|
|
director_nspace_director_name_collision \
|
|
director_nested \
|
|
director_overload \
|
|
director_overload2 \
|
|
director_primitives \
|
|
director_protected \
|
|
director_protected_overloaded \
|
|
director_redefined \
|
|
director_ref \
|
|
director_smartptr \
|
|
director_thread \
|
|
director_unroll \
|
|
director_using \
|
|
director_wombat \
|
|
disown \
|
|
dynamic_cast \
|
|
empty \
|
|
enum_ignore \
|
|
enum_plus \
|
|
enum_rename \
|
|
enum_scope_template \
|
|
enum_template \
|
|
enum_thorough \
|
|
enum_var \
|
|
equality \
|
|
evil_diamond \
|
|
evil_diamond_ns \
|
|
evil_diamond_prop \
|
|
exception_classname \
|
|
exception_order \
|
|
extend \
|
|
extend_constructor_destructor \
|
|
extend_default \
|
|
extend_placement \
|
|
extend_special_variables \
|
|
extend_template \
|
|
extend_template_ns \
|
|
extend_typedef_class \
|
|
extern_c \
|
|
extern_namespace \
|
|
extern_throws \
|
|
expressions \
|
|
features \
|
|
fragments \
|
|
friends \
|
|
friends_template \
|
|
funcptr_cpp \
|
|
fvirtual \
|
|
global_namespace \
|
|
global_ns_arg \
|
|
global_scope_types \
|
|
global_vars \
|
|
grouping \
|
|
ignore_parameter \
|
|
import_nomodule \
|
|
inherit \
|
|
inherit_member \
|
|
inherit_missing \
|
|
inherit_same_name \
|
|
inherit_target_language \
|
|
inherit_void_arg \
|
|
inline_initializer \
|
|
insert_directive \
|
|
keyword_rename \
|
|
kind \
|
|
kwargs_feature \
|
|
langobj \
|
|
li_attribute \
|
|
li_attribute_template \
|
|
li_boost_array \
|
|
li_boost_shared_ptr \
|
|
li_boost_shared_ptr_bits \
|
|
li_boost_shared_ptr_template \
|
|
li_boost_shared_ptr_attribute \
|
|
li_carrays_cpp \
|
|
li_cdata_cpp \
|
|
li_cpointer_cpp \
|
|
li_std_auto_ptr \
|
|
li_stdint \
|
|
li_swigtype_inout \
|
|
li_typemaps \
|
|
li_typemaps_apply \
|
|
li_windows \
|
|
long_long_apply \
|
|
memberin_extend \
|
|
member_funcptr_galore \
|
|
member_pointer \
|
|
member_template \
|
|
minherit \
|
|
minherit2 \
|
|
mixed_types \
|
|
multiple_inheritance \
|
|
multiple_inheritance_abstract \
|
|
multiple_inheritance_interfaces \
|
|
multiple_inheritance_nspace \
|
|
multiple_inheritance_shared_ptr \
|
|
name_cxx \
|
|
name_warnings \
|
|
namespace_class \
|
|
namespace_enum \
|
|
namespace_extend \
|
|
namespace_forward_declaration \
|
|
namespace_nested \
|
|
namespace_spaces \
|
|
namespace_template \
|
|
namespace_typedef_class \
|
|
namespace_typemap \
|
|
namespace_union \
|
|
namespace_virtual_method \
|
|
nspace \
|
|
nspace_extend \
|
|
naturalvar \
|
|
naturalvar_more \
|
|
naturalvar_onoff \
|
|
nested_class \
|
|
nested_directors \
|
|
nested_comment \
|
|
nested_scope \
|
|
nested_template_base \
|
|
nested_workaround \
|
|
newobject1 \
|
|
null_pointer \
|
|
operator_overload \
|
|
operator_overload_break \
|
|
operator_pointer_ref \
|
|
operbool \
|
|
ordering \
|
|
overload_arrays \
|
|
overload_bool \
|
|
overload_copy \
|
|
overload_extend \
|
|
overload_method \
|
|
overload_numeric \
|
|
overload_polymorphic \
|
|
overload_rename \
|
|
overload_return_type \
|
|
overload_simple \
|
|
overload_subtype \
|
|
overload_template \
|
|
overload_template_fast \
|
|
pointer_reference \
|
|
preproc_constants \
|
|
primitive_ref \
|
|
private_assign \
|
|
protected_rename \
|
|
pure_virtual \
|
|
redefined \
|
|
redefined_not \
|
|
refcount \
|
|
reference_global_vars \
|
|
register_par \
|
|
rename1 \
|
|
rename2 \
|
|
rename3 \
|
|
rename4 \
|
|
rename_rstrip_encoder \
|
|
rename_scope \
|
|
rename_simple \
|
|
rename_strip_encoder \
|
|
rename_pcre_encoder \
|
|
rename_pcre_enum \
|
|
rename_predicates \
|
|
restrict_cplusplus \
|
|
return_const_value \
|
|
return_value_scope \
|
|
rname \
|
|
samename \
|
|
sizet \
|
|
smart_pointer_const \
|
|
smart_pointer_const2 \
|
|
smart_pointer_const_overload \
|
|
smart_pointer_extend \
|
|
smart_pointer_member \
|
|
smart_pointer_multi \
|
|
smart_pointer_multi_typedef \
|
|
smart_pointer_namespace \
|
|
smart_pointer_namespace2 \
|
|
smart_pointer_not \
|
|
smart_pointer_overload \
|
|
smart_pointer_protected \
|
|
smart_pointer_rename \
|
|
smart_pointer_simple \
|
|
smart_pointer_static \
|
|
smart_pointer_template_const_overload \
|
|
smart_pointer_template_defaults_overload \
|
|
smart_pointer_templatemethods \
|
|
smart_pointer_templatevariables \
|
|
smart_pointer_typedef \
|
|
special_variables \
|
|
special_variable_attributes \
|
|
special_variable_macros \
|
|
static_array_member \
|
|
static_const_member \
|
|
static_const_member_2 \
|
|
struct_initialization_cpp \
|
|
struct_value \
|
|
symbol_clash \
|
|
template_arg_replace \
|
|
template_arg_scope \
|
|
template_arg_typename \
|
|
template_array_numeric \
|
|
template_basic \
|
|
template_base_template \
|
|
template_classes \
|
|
template_const_ref \
|
|
template_construct \
|
|
template_templated_constructors \
|
|
template_default \
|
|
template_default2 \
|
|
template_default_arg \
|
|
template_default_arg_overloaded \
|
|
template_default_arg_virtual_destructor \
|
|
template_default_class_parms \
|
|
template_default_class_parms_typedef \
|
|
template_default_inherit \
|
|
template_default_qualify \
|
|
template_default_vw \
|
|
template_enum \
|
|
template_enum_ns_inherit \
|
|
template_enum_typedef \
|
|
template_explicit \
|
|
template_extend1 \
|
|
template_extend2 \
|
|
template_extend_overload \
|
|
template_extend_overload_2 \
|
|
template_forward \
|
|
template_inherit \
|
|
template_inherit_abstract \
|
|
template_int_const \
|
|
template_keyword_in_type \
|
|
template_methods \
|
|
template_namespace_forward_declaration \
|
|
template_using_directive_and_declaration_forward \
|
|
template_nested \
|
|
template_nested_typemaps \
|
|
template_ns \
|
|
template_ns2 \
|
|
template_ns3 \
|
|
template_ns4 \
|
|
template_ns_enum \
|
|
template_ns_enum2 \
|
|
template_ns_inherit \
|
|
template_ns_scope \
|
|
template_partial_arg \
|
|
template_partial_specialization \
|
|
template_partial_specialization_typedef \
|
|
template_qualifier \
|
|
template_ref_type \
|
|
template_rename \
|
|
template_retvalue \
|
|
template_specialization \
|
|
template_specialization_defarg \
|
|
template_specialization_enum \
|
|
template_static \
|
|
template_tbase_template \
|
|
template_template_parameters \
|
|
template_typedef \
|
|
template_typedef_class_template \
|
|
template_typedef_cplx \
|
|
template_typedef_cplx2 \
|
|
template_typedef_cplx3 \
|
|
template_typedef_cplx4 \
|
|
template_typedef_cplx5 \
|
|
template_typedef_funcptr \
|
|
template_typedef_inherit \
|
|
template_typedef_ns \
|
|
template_typedef_ptr \
|
|
template_typedef_rec \
|
|
template_typedef_typedef \
|
|
template_typemaps \
|
|
template_typemaps_typedef \
|
|
template_typemaps_typedef2 \
|
|
template_using \
|
|
template_virtual \
|
|
template_whitespace \
|
|
threads \
|
|
threads_exception \
|
|
throw_exception \
|
|
typedef_array_member \
|
|
typedef_class \
|
|
typedef_funcptr \
|
|
typedef_inherit \
|
|
typedef_mptr \
|
|
typedef_reference \
|
|
typedef_scope \
|
|
typedef_sizet \
|
|
typedef_struct_cpp \
|
|
typedef_typedef \
|
|
typemap_arrays \
|
|
typemap_array_qualifiers \
|
|
typemap_delete \
|
|
typemap_directorout \
|
|
typemap_global_scope \
|
|
typemap_manyargs \
|
|
typemap_namespace \
|
|
typemap_ns_using \
|
|
typemap_numinputs \
|
|
typemap_template \
|
|
typemap_template_parm_typedef \
|
|
typemap_out_optimal \
|
|
typemap_qualifier_strip \
|
|
typemap_variables \
|
|
typemap_various \
|
|
typename \
|
|
types_directive \
|
|
unicode_strings \
|
|
union_scope \
|
|
using1 \
|
|
using2 \
|
|
using_composition \
|
|
using_directive_and_declaration \
|
|
using_directive_and_declaration_forward \
|
|
using_extend \
|
|
using_inherit \
|
|
using_namespace \
|
|
using_namespace_loop \
|
|
using_pointers \
|
|
using_private \
|
|
using_protected \
|
|
valuewrapper \
|
|
valuewrapper_base \
|
|
valuewrapper_const \
|
|
valuewrapper_opaque \
|
|
varargs \
|
|
varargs_overload \
|
|
virtual_destructor \
|
|
virtual_poly \
|
|
virtual_vs_nonvirtual_base \
|
|
voidtest \
|
|
wallkw \
|
|
wrapmacro
|
|
|
|
# C++11 test cases.
|
|
CPP11_TEST_CASES = \
|
|
cpp11_alignment \
|
|
cpp11_alternate_function_syntax \
|
|
cpp11_constexpr \
|
|
cpp11_decltype \
|
|
cpp11_default_delete \
|
|
cpp11_delegating_constructors \
|
|
cpp11_director_enums \
|
|
cpp11_explicit_conversion_operators \
|
|
cpp11_final_override \
|
|
cpp11_function_objects \
|
|
cpp11_inheriting_constructors \
|
|
cpp11_initializer_list \
|
|
cpp11_initializer_list_extend \
|
|
cpp11_lambda_functions \
|
|
cpp11_li_std_array \
|
|
cpp11_noexcept \
|
|
cpp11_null_pointer_constant \
|
|
cpp11_raw_string_literals \
|
|
cpp11_result_of \
|
|
cpp11_rvalue_reference \
|
|
cpp11_rvalue_reference2 \
|
|
cpp11_rvalue_reference3 \
|
|
cpp11_sizeof_object \
|
|
cpp11_static_assert \
|
|
cpp11_strongly_typed_enumerations \
|
|
cpp11_thread_local \
|
|
cpp11_template_double_brackets \
|
|
cpp11_template_explicit \
|
|
cpp11_template_typedefs \
|
|
cpp11_type_traits \
|
|
cpp11_type_aliasing \
|
|
cpp11_uniform_initialization \
|
|
cpp11_unrestricted_unions \
|
|
cpp11_userdefined_literals \
|
|
|
|
# Broken C++11 test cases.
|
|
CPP11_TEST_BROKEN = \
|
|
# cpp11_hash_tables \ # not fully implemented yet
|
|
# cpp11_variadic_templates \ # Broken for some languages (such as Java)
|
|
# cpp11_reference_wrapper \ # No typemaps
|
|
|
|
|
|
#
|
|
# Put all the heavy STD/STL cases here, where they can be skipped if needed
|
|
#
|
|
CPP_STD_TEST_CASES += \
|
|
director_string \
|
|
ignore_template_constructor \
|
|
li_std_combinations \
|
|
li_std_deque \
|
|
li_std_except \
|
|
li_std_except_as_class \
|
|
li_std_map \
|
|
li_std_pair \
|
|
li_std_pair_using \
|
|
li_std_string \
|
|
li_std_vector \
|
|
li_std_vector_enum \
|
|
li_std_vector_member_var\
|
|
smart_pointer_inherit \
|
|
template_typedef_fnc \
|
|
template_type_namespace \
|
|
template_opaque
|
|
# li_std_list
|
|
|
|
|
|
ifndef SKIP_CPP_STD_CASES
|
|
CPP_TEST_CASES += ${CPP_STD_TEST_CASES}
|
|
endif
|
|
|
|
ifneq (,$(HAVE_CXX11_COMPILER))
|
|
CPP_TEST_CASES += $(CPP11_TEST_CASES)
|
|
endif
|
|
|
|
# C test cases. (Can be run individually using: make testcase.ctest)
|
|
C_TEST_CASES += \
|
|
arrays \
|
|
bom_utf8 \
|
|
c_delete \
|
|
c_delete_function \
|
|
char_constant \
|
|
const_const \
|
|
constant_expr \
|
|
empty_c \
|
|
enums \
|
|
enum_forward \
|
|
enum_macro \
|
|
enum_missing \
|
|
extern_declaration \
|
|
funcptr \
|
|
function_typedef \
|
|
global_functions \
|
|
immutable_values \
|
|
inctest \
|
|
infinity \
|
|
integers \
|
|
keyword_rename_c \
|
|
lextype \
|
|
li_carrays \
|
|
li_cdata \
|
|
li_cmalloc \
|
|
li_constraints \
|
|
li_cpointer \
|
|
li_math \
|
|
long_long \
|
|
memberin_extend_c \
|
|
name \
|
|
nested \
|
|
nested_extend_c \
|
|
nested_structs \
|
|
newobject2 \
|
|
overload_extend_c \
|
|
overload_extend2 \
|
|
preproc \
|
|
preproc_constants_c \
|
|
preproc_defined \
|
|
preproc_include \
|
|
preproc_line_file \
|
|
ret_by_value \
|
|
simple_array \
|
|
sizeof_pointer \
|
|
sneaky1 \
|
|
string_simple \
|
|
struct_rename \
|
|
struct_initialization \
|
|
typedef_struct \
|
|
typemap_subst \
|
|
union_parameter \
|
|
unions
|
|
|
|
|
|
# Multi-module C++ test cases . (Can be run individually using make testcase.multicpptest)
|
|
MULTI_CPP_TEST_CASES += \
|
|
clientdata_prop \
|
|
imports \
|
|
import_stl \
|
|
packageoption \
|
|
mod \
|
|
template_typedef_import \
|
|
multi_import
|
|
|
|
# Custom tests - tests with additional commandline options
|
|
wallkw.cpptest: SWIGOPT += -Wallkw
|
|
preproc_include.ctest: SWIGOPT += -includeall
|
|
|
|
|
|
NOT_BROKEN_TEST_CASES = $(CPP_TEST_CASES:=.cpptest) \
|
|
$(C_TEST_CASES:=.ctest) \
|
|
$(MULTI_CPP_TEST_CASES:=.multicpptest) \
|
|
$(EXTRA_TEST_CASES)
|
|
|
|
BROKEN_TEST_CASES = $(CPP_TEST_BROKEN:=.cpptest) \
|
|
$(C_TEST_BROKEN:=.ctest)
|
|
|
|
ALL_CLEAN = $(CPP_TEST_CASES:=.clean) \
|
|
$(C_TEST_CASES:=.clean) \
|
|
$(MULTI_CPP_TEST_CASES:=.clean) \
|
|
$(CPP_TEST_BROKEN:=.clean) \
|
|
$(C_TEST_BROKEN:=.clean)
|
|
|
|
#######################################################################
|
|
# Error test suite has its own set of test cases
|
|
#######################################################################
|
|
ifneq (,$(ERROR_TEST_CASES))
|
|
check: $(ERROR_TEST_CASES)
|
|
else
|
|
|
|
#######################################################################
|
|
# The following applies for all module languages
|
|
#######################################################################
|
|
all: $(NOT_BROKEN_TEST_CASES) $(BROKEN_TEST_CASES)
|
|
|
|
broken: $(BROKEN_TEST_CASES)
|
|
|
|
check: $(NOT_BROKEN_TEST_CASES)
|
|
|
|
check-c: $(C_TEST_CASES:=.ctest)
|
|
|
|
check-cpp: $(CPP_TEST_CASES:=.cpptest)
|
|
|
|
check-cpp11: $(CPP11_TEST_CASES:=.cpptest)
|
|
|
|
endif
|
|
|
|
# partialcheck target runs SWIG only, ie no compilation or running of tests (for a subset of languages)
|
|
partialcheck:
|
|
$(MAKE) check CC=true CXX=true LDSHARED=true CXXSHARED=true RUNTOOL=true COMPILETOOL=true
|
|
|
|
swig_and_compile_cpp = \
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
|
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
|
INCLUDES='$(INCLUDES)' SWIGOPT='$(SWIGOPT)' NOLINK=true \
|
|
TARGET='$(TARGETPREFIX)$*$(TARGETSUFFIX)' INTERFACEDIR='$(INTERFACEDIR)' INTERFACE='$*.i' \
|
|
$(LANGUAGE)$(VARIANT)_cpp
|
|
|
|
swig_and_compile_c = \
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' CSRCS='$(CSRCS)' \
|
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
|
INCLUDES='$(INCLUDES)' SWIGOPT='$(SWIGOPT)' NOLINK=true \
|
|
TARGET='$(TARGETPREFIX)$*$(TARGETSUFFIX)' INTERFACEDIR='$(INTERFACEDIR)' INTERFACE='$*.i' \
|
|
$(LANGUAGE)$(VARIANT)
|
|
|
|
swig_and_compile_multi_cpp = \
|
|
for f in `cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list` ; do \
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
|
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
|
LIBS='$(LIBS)' INCLUDES='$(INCLUDES)' SWIGOPT='$(SWIGOPT)' NOLINK=true \
|
|
TARGET="$(TARGETPREFIX)$${f}$(TARGETSUFFIX)" INTERFACEDIR='$(INTERFACEDIR)' INTERFACE="$$f.i" \
|
|
$(LANGUAGE)$(VARIANT)_cpp; \
|
|
done
|
|
|
|
swig_and_compile_external = \
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' \
|
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
|
TARGET='$*_wrap_hdr.h' \
|
|
$(LANGUAGE)$(VARIANT)_externalhdr; \
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS) $*_external.cxx' \
|
|
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
|
INCLUDES='$(INCLUDES)' SWIGOPT='$(SWIGOPT)' NOLINK=true \
|
|
TARGET='$(TARGETPREFIX)$*$(TARGETSUFFIX)' INTERFACEDIR='$(INTERFACEDIR)' INTERFACE='$*.i' \
|
|
$(LANGUAGE)$(VARIANT)_cpp
|
|
|
|
swig_and_compile_runtime = \
|
|
|
|
setup = \
|
|
if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
|
|
echo "$(ACTION)ing $(LANGUAGE) testcase $* (with run test)" ; \
|
|
else \
|
|
echo "$(ACTION)ing $(LANGUAGE) testcase $*" ; \
|
|
fi;
|
|
|
|
|
|
|
|
#######################################################################
|
|
# Clean
|
|
#######################################################################
|
|
clean: $(ALL_CLEAN)
|
|
|
|
distclean: clean
|
|
@rm -f Makefile
|
|
|
|
.PHONY: all check partialcheck broken clean distclean
|
|
|