It is impossible to have two functions with the same name inside the same program, but it is possible to provide a #define to allow the user code to use the original function name for the wrapper function, so do it for convenience. Remove the old changes adding explicit "_wrap_" prefix to the examples and the tests and remove the few more now passing tests from the list of failing tests.
188 lines
4.5 KiB
Makefile
188 lines
4.5 KiB
Makefile
#######################################################################
|
|
# Makefile for C test-suite
|
|
#######################################################################
|
|
|
|
LANGUAGE = c
|
|
C = gcc
|
|
CXX = g++
|
|
SCRIPTSUFFIX = _runme.c
|
|
srcdir = @srcdir@
|
|
top_srcdir = ../@top_srcdir@
|
|
top_builddir = ../@top_builddir@
|
|
|
|
CPP_TEST_CASES := \
|
|
cpp_basic_class \
|
|
cpp_basic_class_method \
|
|
cpp_basic_class_virtual_method \
|
|
cpp_basic_class_var_pub_member_built_in \
|
|
cpp_basic_class_var_pub_member_class \
|
|
cpp_basic_global_var_built_in \
|
|
cpp_basic_global_var_class \
|
|
cpp_basic_namespaced_class \
|
|
cpp_basic_template_function \
|
|
cpp_basic_template_class \
|
|
c_backend_cpp_natural_std_string \
|
|
c_backend_cpp_exception
|
|
|
|
# The following tests are currently broken and need to be fixed.
|
|
FAILING_C_TESTS := \
|
|
arrays \
|
|
enum_missing \
|
|
funcptr \
|
|
function_typedef \
|
|
lextype \
|
|
li_carrays \
|
|
li_cdata \
|
|
li_constraints \
|
|
li_cpointer \
|
|
nested \
|
|
nested_extend_c \
|
|
nested_structs \
|
|
overload_extend2 \
|
|
overload_extend_c \
|
|
typedef_struct \
|
|
union_parameter \
|
|
unions \
|
|
|
|
FAILING_CPP_TESTS := \
|
|
apply_signed_char \
|
|
array_member \
|
|
array_typedef_memberin \
|
|
arrayref \
|
|
arrays_dimensionless \
|
|
arrays_global \
|
|
arrays_global_twodim \
|
|
char_strings \
|
|
constant_pointers \
|
|
default_arg_values \
|
|
default_args \
|
|
default_constructor \
|
|
director_enum \
|
|
director_string \
|
|
enum_thorough \
|
|
extend \
|
|
extend_constructor_destructor \
|
|
extend_default \
|
|
extend_placement \
|
|
extern_c \
|
|
features \
|
|
funcptr_cpp \
|
|
global_scope_types \
|
|
grouping \
|
|
import_nomodule \
|
|
li_attribute \
|
|
li_boost_shared_ptr \
|
|
li_carrays_cpp \
|
|
li_std_combinations \
|
|
li_std_deque \
|
|
li_std_map \
|
|
li_std_pair \
|
|
li_std_pair_using \
|
|
li_std_vector \
|
|
li_windows \
|
|
member_funcptr_galore \
|
|
member_pointer \
|
|
mixed_types \
|
|
namespace_class \
|
|
nested_class \
|
|
nested_scope \
|
|
nested_template_base \
|
|
overload_arrays \
|
|
smart_pointer_extend \
|
|
smart_pointer_not \
|
|
smart_pointer_template_defaults_overload \
|
|
special_variables \
|
|
struct_initialization_cpp \
|
|
template_arg_typename \
|
|
template_basic \
|
|
template_default \
|
|
template_default_class_parms_typedef \
|
|
template_enum \
|
|
template_explicit \
|
|
template_typedef_fnc \
|
|
typedef_array_member \
|
|
typedef_funcptr \
|
|
typedef_struct_cpp \
|
|
typemap_array_qualifiers \
|
|
typemap_namespace \
|
|
using_extend \
|
|
varargs \
|
|
varargs_overload \
|
|
virtual_poly \
|
|
|
|
FAILING_MULTI_CPP_TESTS := \
|
|
clientdata_prop \
|
|
imports \
|
|
import_stl \
|
|
template_typedef_import \
|
|
|
|
include $(srcdir)/../common.mk
|
|
|
|
SRCDIR = ../$(srcdir)/
|
|
|
|
# Rules for the different types of tests
|
|
%.cpptest:
|
|
$(setup)
|
|
+(cd $* && $(swig_and_compile_cpp))
|
|
$(run_testcase)
|
|
|
|
%.ctest:
|
|
$(setup)
|
|
+(cd $* && $(swig_and_compile_c))
|
|
$(run_testcase)
|
|
|
|
%.multicpptest:
|
|
$(setup)
|
|
+(cd $* && $(swig_and_compile_multi_cpp))
|
|
+if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
|
|
$(do_run_testcase); \
|
|
else \
|
|
cd $* && for f in `cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list`; do \
|
|
$(call syntax_check_testcase,$${f}) || exit 1; \
|
|
done; \
|
|
fi
|
|
|
|
# Makes a directory for the testcase if it does not exist
|
|
setup = \
|
|
if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
|
|
echo "$(ACTION)ing testcase $* (with run test) under $(LANGUAGE)" ; \
|
|
else \
|
|
echo "$(ACTION)ing testcase $* under $(LANGUAGE)" ; \
|
|
fi; \
|
|
if [ ! -d $* ]; then \
|
|
mkdir $*; \
|
|
fi;
|
|
|
|
# Checks the header syntax if there is no runnable testcase for it.
|
|
syntax_check_testcase = \
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile \
|
|
SRCDIR='$(SRCDIR)' \
|
|
INTERFACEDIR='$(INTERFACEDIR)' \
|
|
C_HEADER=$1_wrap.h \
|
|
c_syntax_check
|
|
|
|
# Compiles C files then runs the testcase unconditionally.
|
|
do_run_testcase = \
|
|
cd $* && $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile \
|
|
SRCDIR='$(SRCDIR)' \
|
|
RUNME=$*_runme \
|
|
TARGET='$*' \
|
|
c_run
|
|
|
|
# Only compile and run testcase if a file with _rume.c appended to the testcase
|
|
# name is found, otherwise only check the syntax of the generated files.
|
|
run_testcase = \
|
|
+if [ -f $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
|
|
$(do_run_testcase); \
|
|
else \
|
|
cd $* && $(call syntax_check_testcase,$*); \
|
|
fi
|
|
|
|
# Clean: remove testcase directories
|
|
%.clean:
|
|
@if [ -d $* ]; then \
|
|
rm -rf $*; \
|
|
fi;
|
|
|
|
clean:
|
|
@rm -f *_wrap.* *~ *.exe *.dll *.so *.out *runme
|