diff options
Diffstat (limited to 'Examples/test-suite/javascript/Makefile.in')
-rw-r--r-- | Examples/test-suite/javascript/Makefile.in | 80 |
1 files changed, 63 insertions, 17 deletions
diff --git a/Examples/test-suite/javascript/Makefile.in b/Examples/test-suite/javascript/Makefile.in index 8127415f1..febff1607 100644 --- a/Examples/test-suite/javascript/Makefile.in +++ b/Examples/test-suite/javascript/Makefile.in @@ -8,18 +8,49 @@ NODEJS = @NODEJS@ SCRIPTSUFFIX = _runme.js OBJEXT = @OBJEXT@ SO = @SO@ +GYP_CXXFLAGS = @BOOST_CPPFLAGS@ @PLATCXXFLAGS@ -I$(shell npm config get prefix)/lib/node_modules/node-addon-api +HAVE_CXX11 = @HAVE_CXX11@ +HAVE_CXX14 = @HAVE_CXX14@ +HAVE_CXX17 = @HAVE_CXX17@ +HAVE_CXX20 = @HAVE_CXX20@ srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ +CPP_TEST_CASES += \ + iadd \ + inplaceadd \ + input \ + javascript_lib_arrays \ + li_factory \ + li_std_containers_int \ + li_std_map_member + +# napi fails +FAILING_CPP_TESTS += \ + smart_pointer_static \ + SWIGEXE = $(top_builddir)/swig SWIG_LIB_DIR = $(top_srcdir)/Lib ifneq (, $(ENGINE)) - JSENGINE=$(ENGINE) + JSENGINE=$(ENGINE) +else +ifneq (, $(NODEJS)) + JSENGINE=node else - JSENGINE=node +ifneq (, @JSCENABLED@) + JSENGINE=jsc +else +ifneq (, @JSV8ENABLED@) + JSENGINE=v8 +else + # Shouldn't happen, but avoid empty value if it does. + JSENGINE=node +endif +endif +endif endif ifneq (, $(V8_VERSION)) @@ -39,45 +70,61 @@ _setup = \ echo "$(ACTION)ing $(LANGUAGE) ($(JSENGINE)) testcase $*" ; \ fi; -ifeq (node,$(JSENGINE)) - - SWIGOPT += -v8 -DBUILDING_NODE_EXTENSION=1 +SWIGOPT += -$(JSENGINE) +ifeq ($(JSENGINE), $(filter $(JSENGINE), node napi)) + SWIGOPT += -DBUILDING_NODE_EXTENSION=1 + # shut up some warnings - # contract macro has an empty 'else' at the end... - aggregate.cpptest: GYP_CFLAGS = \"-Wno-empty-body\" - contract.cpptest: GYP_CFLAGS = \"-Wno-empty-body\" # dunno... ignoring generously apply_signed_char.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\" constant_pointers.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\" + cpp11_ref_qualifiers.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\" + director_basic.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\" enum_thorough.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\" + member_funcptr_galore.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\" + director_unwrap_result.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\" + + # Run with asan: + # ASAN=1 ENGINE=napi make <test_name>.cpptest + # + ifneq (, $(ASAN)) + GYP_CFLAGS += \"-fsanitize=address\" + GYP_OPTS = --debug + ASAN_PRELOAD = $(shell $(CC) -print-file-name=libasan.so) + LSAN_OPTIONS = suppressions=$(srcdir)/node_template/napi-leaks-suppression.txt + BUILD = Debug + else + BUILD = Release + endif setup_node = \ test -d $* || mkdir $* && \ - sed -e 's|$$testcase|$*|g; s|$$cflags|$(GYP_CFLAGS)|g; s|$$srcdir|$(srcdir)|g' \ + sed -e 's|$$testcase|$*|g; s|$$cflags|$(GYP_CFLAGS)|g; s|$$cxxflags|"$(GYP_CXXFLAGS)"|g; s|$$srcdir|$(srcdir)|g' \ $(srcdir)/node_template/binding.gyp.in > $*/binding.gyp && \ - sed -e 's|$$testcase|$*|g;' \ + sed -e 's|$$testcase|$*|g; s|$$build|$(BUILD)|g;' \ $(srcdir)/node_template/index.js.in > $*/index.js - + # Note: we need to use swig in C parse mode, but make node-gyp believe it is c++ (via file extension) swig_and_compile_c = \ $(setup_node) && \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' \ SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \ SWIGOPT='-javascript $(SWIGOPT) -o $*_wrap.cxx $(srcdir)/../$*.i' swiginvoke && \ - MAKEFLAGS= $(COMPILETOOL) $(NODEGYP) --loglevel=silent --directory $* configure build 1>>/dev/null + MAKEFLAGS= $(COMPILETOOL) $(NODEGYP) --loglevel=silent --directory $* configure $(GYP_OPTS) build 1>>/dev/null swig_and_compile_cpp = \ $(setup_node) && \ $(MAKE) -f $(top_builddir)/$(EXAMPLES)/Makefile SRCDIR='$(SRCDIR)' \ SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \ SWIGOPT='-c++ -javascript $(SWIGOPT) $(srcdir)/../$*.i' swiginvoke && \ - MAKEFLAGS= $(COMPILETOOL) $(NODEGYP) --loglevel=silent --directory $* configure build 1>>/dev/null + MAKEFLAGS= $(COMPILETOOL) $(NODEGYP) --loglevel=silent --directory $* configure $(GYP_OPTS) build 1>>/dev/null run_testcase = \ if [ -f $(srcdir)/$*$(SCRIPTSUFFIX) ]; then \ - env NODE_PATH=$$PWD:$(srcdir) $(RUNTOOL) $(NODEJS) $(srcdir)/$*$(SCRIPTSUFFIX); \ + env NODE_PATH=$$PWD:$(srcdir) LD_PRELOAD=$(ASAN_PRELOAD) LSAN_OPTIONS=$(LSAN_OPTIONS) \ + $(RUNTOOL) $(NODEJS) $(srcdir)/$*$(SCRIPTSUFFIX); \ fi @@ -96,8 +143,6 @@ ifeq (node,$(JSENGINE)) else - SWIGOPT += -$(JSENGINE) - run_testcase = \ if [ -f $(srcdir)/$*$(SCRIPTSUFFIX) ]; then \ $(RUNTOOL) $(top_builddir)/Tools/javascript/javascript -$(JSENGINE) $(srcdir)/$*$(SCRIPTSUFFIX); \ @@ -131,6 +176,7 @@ clean: rm -f imports_a$${ext} imports_b$${ext}; \ rm -f import_stl_a$${ext} import_stl_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 template_typedef_cplx2$${ext}; \ done |