* remove-dependency-on-2to3: Remove need for Python 2to3 Modify examples to be both Python 2 and 3 compatible Remove python3 specific runme3.py test files Convert python tests using 2to3 Convert python test scripts to be Python 2 and 3 compatible Convert swigobject python test to be python 2 and 3 compatible Convert two tests to work with both Python 2 and 3 Improve director_exception Python test Remove further print statements from Python tests Improve Python testing catching exceptions Improve contract Python testcase testing Remove print statements from Python tests
162 lines
3.7 KiB
Makefile
162 lines
3.7 KiB
Makefile
#######################################################################
|
|
# Makefile for python test-suite
|
|
#######################################################################
|
|
|
|
ifeq (,$(PY3))
|
|
PYBIN = @PYTHON@
|
|
else
|
|
PYBIN = @PYTHON3@
|
|
endif
|
|
|
|
LANGUAGE = python
|
|
PYTHON = $(PYBIN)
|
|
SCRIPTSUFFIX = _runme.py
|
|
PYCODESTYLE = @PYCODESTYLE@
|
|
PYCODESTYLE_FLAGS = --ignore=E252,E30,E402,E501,E731,E741,W291,W391
|
|
|
|
srcdir = @srcdir@
|
|
top_srcdir = @top_srcdir@
|
|
top_builddir = @top_builddir@
|
|
|
|
CPP_TEST_CASES += \
|
|
argcargvtest \
|
|
callback \
|
|
complextest \
|
|
director_stl \
|
|
director_wstring \
|
|
file_test \
|
|
iadd \
|
|
implicittest \
|
|
inout \
|
|
inplaceadd \
|
|
input \
|
|
li_cstring \
|
|
li_cwstring \
|
|
li_factory \
|
|
li_implicit \
|
|
li_std_containers_int \
|
|
li_std_list \
|
|
li_std_map_member \
|
|
li_std_multimap \
|
|
li_std_pair_extra \
|
|
li_std_set \
|
|
li_std_stream \
|
|
li_std_string_extra \
|
|
li_std_vectora \
|
|
li_std_vector_extra \
|
|
li_std_wstream \
|
|
li_std_wstring_inherit \
|
|
primitive_types \
|
|
python_abstractbase \
|
|
python_append \
|
|
python_builtin \
|
|
python_destructor_exception \
|
|
python_director \
|
|
python_docstring \
|
|
python_extranative \
|
|
python_moduleimport \
|
|
python_overload_simple_cast \
|
|
python_pickle \
|
|
python_pybuffer \
|
|
python_pythoncode \
|
|
python_richcompare \
|
|
python_strict_unicode \
|
|
python_threads \
|
|
simutry \
|
|
std_containers \
|
|
swigobject \
|
|
template_matrix \
|
|
|
|
# li_std_carray
|
|
# director_profile
|
|
|
|
CPP11_TEST_CASES = \
|
|
cpp11_hash_tables \
|
|
cpp11_shared_ptr_const \
|
|
cpp11_shared_ptr_nullptr_in_containers \
|
|
cpp11_shared_ptr_overload \
|
|
cpp11_shared_ptr_template_upcast \
|
|
cpp11_shared_ptr_upcast \
|
|
cpp11_std_unordered_map \
|
|
cpp11_std_unordered_multimap \
|
|
cpp11_std_unordered_multiset \
|
|
cpp11_std_unordered_set \
|
|
|
|
C_TEST_CASES += \
|
|
file_test \
|
|
li_cstring \
|
|
li_cwstring \
|
|
python_nondynamic \
|
|
python_varargs_typemap \
|
|
|
|
#
|
|
# This test only works with modern C compilers
|
|
#
|
|
#C_TEST_CASES += \
|
|
# complextest
|
|
|
|
include $(srcdir)/../common.mk
|
|
|
|
# Overridden variables here
|
|
LIBS = -L.
|
|
VALGRIND_OPT += --suppressions=pythonswig.supp
|
|
|
|
# Custom tests - tests with additional commandline options
|
|
# none!
|
|
|
|
# Rules for the different types of tests
|
|
%.cpptest:
|
|
$(setup)
|
|
+$(swig_and_compile_cpp)
|
|
$(check_pep8)
|
|
$(run_testcase)
|
|
|
|
%.ctest:
|
|
$(setup)
|
|
+$(swig_and_compile_c)
|
|
$(check_pep8)
|
|
$(run_testcase)
|
|
|
|
%.multicpptest:
|
|
$(setup)
|
|
+$(swig_and_compile_multi_cpp)
|
|
$(check_pep8_multi_cpp)
|
|
$(run_testcase)
|
|
|
|
|
|
# Python code style checking
|
|
ifneq (,$(PYCODESTYLE))
|
|
check_pep8 = $(COMPILETOOL) $(PYCODESTYLE) $(PYCODESTYLE_FLAGS) $(SCRIPTPREFIX)$*.py
|
|
|
|
check_pep8_multi_cpp = \
|
|
for f in `cat $(top_srcdir)/$(EXAMPLES)/$(TEST_SUITE)/$*.list` ; do \
|
|
$(COMPILETOOL) $(PYCODESTYLE) $(PYCODESTYLE_FLAGS) $$f.py; \
|
|
done
|
|
endif
|
|
|
|
# Runs the testcase. A testcase is only run if
|
|
# a file is found which has _runme.py appended after the testcase name.
|
|
run_testcase = \
|
|
if [ -f $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX) ]; then \
|
|
env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH PYTHONPATH=.:$(srcdir):$$PYTHONPATH $(RUNTOOL) $(PYTHON) $(SCRIPTDIR)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX); \
|
|
fi
|
|
|
|
# Clean: remove the generated .py file
|
|
%.clean:
|
|
@rm -f $*.py
|
|
|
|
clean:
|
|
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' python_clean
|
|
rm -f hugemod.h hugemod_a.i hugemod_b.i hugemod_a.py hugemod_b.py hugemod_runme.py
|
|
rm -f clientdata_prop_a.py clientdata_prop_b.py import_stl_a.py import_stl_b.py
|
|
rm -f imports_a.py imports_b.py mod_a.py mod_b.py multi_import_a.py
|
|
rm -f multi_import_b.py packageoption_a.py packageoption_b.py packageoption_c.py
|
|
|
|
hugemod_runme = hugemod$(SCRIPTPREFIX)
|
|
|
|
hugemod:
|
|
perl hugemod.pl $(hugemod_runme)
|
|
$(MAKE) hugemod_a.cpptest
|
|
$(MAKE) hugemod_b.cpptest
|
|
sh -c "time $(PYTHON) $(hugemod_runme)"
|
|
sh -c "time $(PYTHON) $(hugemod_runme)"
|