Add a "diamond" pattern to multi-impmort test

This tests whether multiple modules can correctly import
the same common module.

```
a -> d
  -> b -> c -> d*
```
This commit is contained in:
Seth R Johnson 2022-02-12 18:06:56 -05:00
parent c2c3f968df
commit fc2b90acd1
10 changed files with 17 additions and 7 deletions

View File

@ -67,7 +67,7 @@ multi_import.multicpptest:
if ! test -d gopath/multi_import/src/swigtests; then \ if ! test -d gopath/multi_import/src/swigtests; then \
(cd gopath/multi_import/src && ln -s . swigtests); \ (cd gopath/multi_import/src && ln -s . swigtests); \
fi fi
for f in multi_import_b multi_import_a; do \ for f in multi_import_d multi_import_b multi_import_a; do \
$(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' CXXSRCS='$(CXXSRCS)' \
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \ SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
LIBS='$(LIBS)' INCLUDES='$(INCLUDES)' SWIGOPT='$(SWIGOPT)' NOLINK=true \ LIBS='$(LIBS)' INCLUDES='$(INCLUDES)' SWIGOPT='$(SWIGOPT)' NOLINK=true \
@ -181,6 +181,7 @@ clean:
rm -f mod_a.go mod_a.gox mod_b.go mod_b.gox rm -f mod_a.go mod_a.gox mod_b.go mod_b.gox
rm -f multi_import_a.go multi_import_a.gox rm -f multi_import_a.go multi_import_a.gox
rm -f multi_import_b.go multi_import_b.gox rm -f multi_import_b.go multi_import_b.gox
rm -f multi_import_d.go multi_import_d.gox
rm -f packageoption_a.go packageoption_a.gox rm -f packageoption_a.go packageoption_a.gox
rm -f packageoption_b.go packageoption_b.gox rm -f packageoption_b.go packageoption_b.gox
rm -f packageoption_c.go packageoption_c.gox rm -f packageoption_c.go packageoption_c.gox

View File

@ -134,7 +134,7 @@ clean:
rm -f imports_a$${ext} imports_b$${ext}; \ rm -f imports_a$${ext} imports_b$${ext}; \
rm -f import_stl_a$${ext} import_stl_b$${ext}; \ rm -f import_stl_a$${ext} import_stl_b$${ext}; \
rm -f mod_a$${ext} mod_b$${ext}; \ rm -f mod_a$${ext} mod_b$${ext}; \
rm -f multi_import_a$${ext} multi_import_b$${ext}; \ rm -f multi_import_a$${ext} multi_import_b$${ext} multi_import_d$${ext}; \
rm -f packageoption_a$${ext} packageoption_b$${ext} packageoption_c$${ext}; \ rm -f packageoption_a$${ext} packageoption_b$${ext} packageoption_c$${ext}; \
rm -f template_typedef_cplx2$${ext}; \ rm -f template_typedef_cplx2$${ext}; \
done done

View File

@ -1,2 +1,3 @@
multi_import_a multi_import_d
multi_import_b multi_import_b
multi_import_a

View File

@ -2,7 +2,8 @@
%module multi_import_a %module multi_import_a
%import multi_import_b.i %import multi_import_d.i
%import "multi_import_b.i"
%{ %{
#include "multi_import.h" #include "multi_import.h"

View File

@ -1,3 +1,5 @@
%import "multi_import_d.i"
class XXX class XXX
{ {
public: public:

View File

@ -0,0 +1,3 @@
%module multi_import_d
%constant int myval = 1234;

View File

@ -106,6 +106,6 @@ clean:
rm -f import_stl_a.ml import_stl_b.ml rm -f import_stl_a.ml import_stl_b.ml
rm -f imports_a.ml imports_b.ml rm -f imports_a.ml imports_b.ml
rm -f mod_a.ml mod_b.ml rm -f mod_a.ml mod_b.ml
rm -f multi_import_a.ml multi_import_b.ml rm -f multi_import_a.ml multi_import_b.ml multi_import_d.ml
rm -f packageoption_a.ml packageoption_b.ml packageoption_c.ml rm -f packageoption_a.ml packageoption_b.ml packageoption_c.ml
rm -f template_typedef_cplx2.ml rm -f template_typedef_cplx2.ml

View File

@ -86,6 +86,6 @@ clean:
rm -f import_stl_a.php import_stl_b.php php_import_stl_a.h php_import_stl_b.h rm -f import_stl_a.php import_stl_b.php php_import_stl_a.h php_import_stl_b.h
rm -f imports_a.php imports_b.php php_imports_a.h php_imports_b.h rm -f imports_a.php imports_b.php php_imports_a.h php_imports_b.h
rm -f mod_a.php mod_b.php php_mod_a.h php_mod_b.h rm -f mod_a.php mod_b.php php_mod_a.h php_mod_b.h
rm -f multi_import_a.php multi_import_b.php php_multi_import_a.h php_multi_import_b.h rm -f multi_import_a.php multi_import_b.php multi_import_d.php php_multi_import_a.h php_multi_import_b.h php_multi_import_d.h
rm -f packageoption_a.php packageoption_b.php packageoption_c.php php_packageoption_a.h php_packageoption_b.h php_packageoption_c.h rm -f packageoption_a.php packageoption_b.php packageoption_c.php php_packageoption_a.h php_packageoption_b.h php_packageoption_c.h
rm -f template_typedef_cplx2.php php_template_typedef_cplx2.h rm -f template_typedef_cplx2.php php_template_typedef_cplx2.h

View File

@ -146,7 +146,7 @@ clean:
rm -f clientdata_prop_a.py clientdata_prop_b.py import_stl_a.py import_stl_b.py rm -f clientdata_prop_a.py clientdata_prop_b.py import_stl_a.py import_stl_b.py
rm -f hugemod.h hugemod_a.i hugemod_b.i hugemod_a.py hugemod_b.py hugemod_runme.py rm -f hugemod.h hugemod_a.i hugemod_b.i hugemod_a.py hugemod_b.py hugemod_runme.py
rm -f imports_a.py imports_b.py mod_a.py mod_b.py multi_import_a.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 rm -f multi_import_b.py multi_import_d.py packageoption_a.py packageoption_b.py packageoption_c.py
rm -f template_typedef_cplx2.py rm -f template_typedef_cplx2.py
hugemod_runme = hugemod$(SCRIPTPREFIX) hugemod_runme = hugemod$(SCRIPTPREFIX)

View File

@ -113,6 +113,8 @@ namespace vfncs {
#ifndef SWIG #ifndef SWIG
// Initialize these static class members // Initialize these static class members
// XXX Since this is a header file, the following creates the symbols in *each* SWIG _wrap.cxx file. Linking the resulting SWIG modules together may result in
// duplicate symbol link errors.
const char* const arith_traits< double, double >::arg_type = "double"; const char* const arith_traits< double, double >::arg_type = "double";
const char* const arith_traits< double, double >::res_type = "double"; const char* const arith_traits< double, double >::res_type = "double";