Allow examples and test-suite to be built out of source tree
- Examples/Makefile.in rules use SRCDIR as the relative source directory - ./config.status replicates Examples/ source directory tree in build directory, and copies each Makefile to build directory, prefixed with a header which sets SRCDIR to source directory - Examples/test-suite/.../Makefile.in set SRCDIR from Autoconf-set srcdir - Examples/test-suite/errors/Makefile.in needs to filter out source directory from SWIG error messages - Lua: embedded interpreters are passed location of run-time test - Python: copy run-time scripts to build directory because of 2to3 conversion; import_packages example copies __init__.py from source directory; test-suite sets SCRIPTDIR to location of run-time tests - Javascript: binding.gyp renamed to binding.gyp.in so that $srcdir can be substituted with SRCDIR; removed './' from require() statements so that NODE_PATH can be used to point Node.js to build directory
This commit is contained in:
parent
72e6b5349e
commit
f574a34155
420 changed files with 1772 additions and 1510 deletions
|
|
@ -4,10 +4,18 @@
|
|||
|
||||
LANGUAGE = javascript
|
||||
NODEGYP = @NODEGYP@
|
||||
NODEJS = @NODEJS@
|
||||
SCRIPTSUFFIX = _runme.js
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
top_builddir = @top_builddir@
|
||||
ifeq (.,$(srcdir))
|
||||
SRCDIR =
|
||||
else
|
||||
SRCDIR = $(srcdir)/
|
||||
endif
|
||||
|
||||
SWIG = $(top_builddir)/preinst_swig
|
||||
|
||||
ifneq (, $(ENGINE))
|
||||
|
|
@ -47,20 +55,27 @@ ifeq (node,$(JSENGINE))
|
|||
constant_pointers.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
||||
enum_thorough.cpptest: GYP_CFLAGS = \"-Wno-ignored-qualifiers\"
|
||||
|
||||
setup_node = \
|
||||
test -d $* || mkdir $*; \
|
||||
sed -e 's|$$testcase|$*|g; s|$$cflags|$(GYP_CFLAGS)|g; s|$$srcdir|$(srcdir)|g' \
|
||||
$(srcdir)/node_template/binding.gyp.in > $*/binding.gyp; \
|
||||
sed -e 's|$$testcase|$*|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 = \
|
||||
sh ./setup_test.sh $* $(GYP_CFLAGS); \
|
||||
$(SWIG) -javascript $(SWIGOPT) -o $*_wrap.cxx ../$*.i; \
|
||||
$(setup_node); \
|
||||
$(SWIG) -javascript $(SWIGOPT) -o $*_wrap.cxx $(srcdir)/../$*.i; \
|
||||
$(NODEGYP) --loglevel=silent --directory $* configure build 1>>/dev/null
|
||||
|
||||
swig_and_compile_cpp = \
|
||||
sh ./setup_test.sh $* $(GYP_CFLAGS); \
|
||||
$(SWIG) -c++ -javascript $(SWIGOPT) ../$*.i; \
|
||||
$(setup_node); \
|
||||
$(SWIG) -c++ -javascript $(SWIGOPT) $(srcdir)/../$*.i; \
|
||||
$(NODEGYP) --loglevel=silent --directory $* configure build 1>>/dev/null
|
||||
|
||||
run_testcase = \
|
||||
if [ -f $(srcdir)/$*$(SCRIPTSUFFIX) ]; then \
|
||||
node $(srcdir)/$*$(SCRIPTSUFFIX); \
|
||||
env NODE_PATH=$$PWD:$(srcdir) $(NODEJS) $(srcdir)/$*$(SCRIPTSUFFIX); \
|
||||
fi
|
||||
|
||||
|
||||
|
|
@ -83,7 +98,7 @@ else
|
|||
|
||||
run_testcase = \
|
||||
if [ -f $(srcdir)/$*$(SCRIPTSUFFIX) ]; then \
|
||||
$(top_srcdir)/Tools/javascript/javascript -$(JSENGINE) $(srcdir)/$*$(SCRIPTSUFFIX); \
|
||||
$(top_builddir)/Tools/javascript/javascript -$(JSENGINE) $(srcdir)/$*$(SCRIPTSUFFIX); \
|
||||
fi
|
||||
|
||||
%.ctest:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var abstract_access = require("./abstract_access");
|
||||
var abstract_access = require("abstract_access");
|
||||
|
||||
var d = new abstract_access.D()
|
||||
if (d.do_x() != 1) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var abstract_inherit = require("./abstract_inherit");
|
||||
var abstract_inherit = require("abstract_inherit");
|
||||
|
||||
// Shouldn't be able to instantiate any of these classes
|
||||
// since none of them implements the pure virtual function
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var abstract_typedef2 = require("./abstract_typedef2");
|
||||
var abstract_typedef2 = require("abstract_typedef2");
|
||||
|
||||
var a = new abstract_typedef2.A_UF();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var abstract_typedef = require("./abstract_typedef");
|
||||
var abstract_typedef = require("abstract_typedef");
|
||||
|
||||
var e = new abstract_typedef.Engine();
|
||||
var a = new abstract_typedef.A()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var abstract_virtual = require("./abstract_virtual");
|
||||
var abstract_virtual = require("abstract_virtual");
|
||||
|
||||
d = new abstract_virtual.D()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var array_member = require("./array_member");
|
||||
var array_member = require("array_member");
|
||||
|
||||
var f = new array_member.Foo();
|
||||
f.data = array_member.global_data;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var arrays_global = require("./arrays_global");
|
||||
var arrays_global = require("arrays_global");
|
||||
|
||||
arrays_global.array_i = arrays_global.array_const_i;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var callback = require("./callback");
|
||||
var callback = require("callback");
|
||||
|
||||
if (callback.foo(2) !== 2) {
|
||||
throw new Error("Failed.");
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var char_binary = require("./char_binary");
|
||||
var char_binary = require("char_binary");
|
||||
|
||||
var t = new char_binary.Test();
|
||||
if (t.strlen('hile') != 4) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var char_strings = require("./char_strings");
|
||||
var char_strings = require("char_strings");
|
||||
|
||||
var assertIsEqual = function(expected, actual) {
|
||||
if (expected !== actual) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var class_ignore = require("./class_ignore");
|
||||
var class_ignore = require("class_ignore");
|
||||
|
||||
a = new class_ignore.Bar();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var class_scope_weird = require("./class_scope_weird");
|
||||
var class_scope_weird = require("class_scope_weird");
|
||||
|
||||
f = new class_scope_weird.Foo();
|
||||
g = new class_scope_weird.Foo(3);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var complextest = require("./complextest");
|
||||
var complextest = require("complextest");
|
||||
|
||||
a = [-1,2];
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var constover = require("./constover");
|
||||
var constover = require("constover");
|
||||
|
||||
p = constover.test("test");
|
||||
if (p != "test") {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var constructor_copy = require("./constructor_copy");
|
||||
var constructor_copy = require("constructor_copy");
|
||||
|
||||
f1 = new constructor_copy.Foo1(3);
|
||||
f11 = new constructor_copy.Foo1(f1);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var cpp_enum = require("./cpp_enum");
|
||||
var cpp_enum = require("cpp_enum");
|
||||
|
||||
var f = new cpp_enum.Foo()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var cpp_namespace = require("./cpp_namespace");
|
||||
var cpp_namespace = require("cpp_namespace");
|
||||
|
||||
var n = cpp_namespace.fact(4);
|
||||
if (n != 24){
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var cpp_static = require("./cpp_static");
|
||||
var cpp_static = require("cpp_static");
|
||||
|
||||
cpp_static.StaticFunctionTest.static_func();
|
||||
cpp_static.StaticFunctionTest.static_func_2(1);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var director_alternating = require("./director_alternating");
|
||||
var director_alternating = require("director_alternating");
|
||||
|
||||
id = director_alternating.getBar().id();
|
||||
if (id != director_alternating.idFromGetBar())
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var disown = require("./disown");
|
||||
var disown = require("disown");
|
||||
|
||||
var a = new disown.A();
|
||||
var tmp = a.thisown;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var dynamic_cast = require("./dynamic_cast");
|
||||
var dynamic_cast = require("dynamic_cast");
|
||||
|
||||
var f = new dynamic_cast.Foo();
|
||||
var b = new dynamic_cast.Bar();
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
var empty = require("./empty");
|
||||
var empty = require("empty");
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
var enum_template = require("./enum_template");
|
||||
var enum_template = require("enum_template");
|
||||
|
||||
if (enum_template.MakeETest() != 1)
|
||||
throw "RuntimeError";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var infinity = require("./infinity");
|
||||
var infinity = require("infinity");
|
||||
|
||||
var my_infinity = infinity.INFINITY;
|
||||
var ret_val = infinity.use_infinity(my_infinity);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
var namespace_virtual_method = require("./namespace_virtual_method");
|
||||
var namespace_virtual_method = require("namespace_virtual_method");
|
||||
|
||||
x = new namespace_virtual_method.Spam();
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
{
|
||||
"target_name": "$testcase",
|
||||
"sources":[ "../$testcase_wrap.cxx" ],
|
||||
"include_dirs": ["../.."],
|
||||
"include_dirs": ["../$srcdir/.."],
|
||||
'defines': [
|
||||
'BUILDING_NODE_EXTENSION=1',
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var nspace_extend = require("./nspace_extend");
|
||||
var nspace_extend = require("nspace_extend");
|
||||
|
||||
// constructors and destructors
|
||||
var color1 = new nspace_extend.Outer.Inner1.Color();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var nspace = require("./nspace");
|
||||
var nspace = require("nspace");
|
||||
|
||||
var color1 = new nspace.Outer.Inner1.Color();
|
||||
var color = new nspace.Outer.Inner1.Color(color1);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var overload_copy = require("./overload_copy");
|
||||
var overload_copy = require("overload_copy");
|
||||
|
||||
f = new overload_copy.Foo();
|
||||
g = new overload_copy.Foo(f);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var preproc_include = require("./preproc_include");
|
||||
var preproc_include = require("preproc_include");
|
||||
|
||||
if (preproc_include.multiply10(10) != 100)
|
||||
throw "RuntimeError";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var preproc = require("./preproc");
|
||||
var preproc = require("preproc");
|
||||
|
||||
if (preproc.endif != 1)
|
||||
throw "RuntimeError";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var rename = require("./rename1");
|
||||
var rename = require("rename1");
|
||||
|
||||
function part1() {
|
||||
var xyz = new rename.XYZInt();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var rename = require("./rename2");
|
||||
var rename = require("rename2");
|
||||
|
||||
function part1() {
|
||||
var xyz = new rename.XYZInt();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var rename = require("./rename3");
|
||||
var rename = require("rename3");
|
||||
|
||||
function part1() {
|
||||
var xyz = new rename.XYZInt();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var rename = require("./rename4");
|
||||
var rename = require("rename4");
|
||||
|
||||
function part1() {
|
||||
var xyz = new rename.XYZInt();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var rename_scope = require("./rename_scope");
|
||||
var rename_scope = require("rename_scope");
|
||||
|
||||
var a = new rename_scope.Natural_UP();
|
||||
var b = new rename_scope.Natural_BP();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var rename_simple = require("./rename_simple");
|
||||
var rename_simple = require("rename_simple");
|
||||
var NewStruct = rename_simple.NewStruct;
|
||||
|
||||
var s = new NewStruct();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var ret_by_value = require("./ret_by_value");
|
||||
var ret_by_value = require("ret_by_value");
|
||||
|
||||
a = ret_by_value.get_test();
|
||||
if (a.myInt != 100)
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
#!/bin/sh
|
||||
if [ ! -d $1 ]; then
|
||||
mkdir $1;
|
||||
fi
|
||||
sed -e "s/\$testcase/$1/" -e "s/\$cflags/$2/" < node_template/binding.gyp.in > $1/binding.gyp
|
||||
sed s/\$testcase/$1/ node_template/index.js.in > $1/index.js
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
var string_simple = require("./string_simple");
|
||||
var string_simple = require("string_simple");
|
||||
|
||||
// Test unicode string
|
||||
var str = "olé";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var struct_value = require("./struct_value");
|
||||
var struct_value = require("struct_value");
|
||||
|
||||
b = new struct_value.Bar();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
var template_static = require("./template_static");
|
||||
var template_static = require("template_static");
|
||||
|
||||
template_static.Foo.bar_double(1);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var typedef_class = require("./typedef_class");
|
||||
var typedef_class = require("typedef_class");
|
||||
|
||||
a = new typedef_class.RealA();
|
||||
a.a = 3;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var typedef_inherit = require("./typedef_inherit");
|
||||
var typedef_inherit = require("typedef_inherit");
|
||||
|
||||
a = new typedef_inherit.Foo();
|
||||
b = new typedef_inherit.Bar();
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var typedef_scope = require("./typedef_scope");
|
||||
var typedef_scope = require("typedef_scope");
|
||||
|
||||
b = new typedef_scope.Bar();
|
||||
x = b.test1(42,"hello");
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var typemap_arrays = require("./typemap_arrays");
|
||||
var typemap_arrays = require("typemap_arrays");
|
||||
|
||||
if (typemap_arrays.sumA(null) != 60)
|
||||
throw "RuntimeError, Sum is wrong";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var typemap_delete = require("./typemap_delete");
|
||||
var typemap_delete = require("typemap_delete");
|
||||
|
||||
r = new typemap_delete.Rect(123);
|
||||
if (r.val != 123)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var typemap_namespace = require("./typemap_namespace");
|
||||
var typemap_namespace = require("typemap_namespace");
|
||||
|
||||
if (typemap_namespace.test1("hello") != "hello")
|
||||
throw "RuntimeError";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var typemap_ns_using = require("./typemap_ns_using");
|
||||
var typemap_ns_using = require("typemap_ns_using");
|
||||
|
||||
if (typemap_ns_using.spam(37) != 37)
|
||||
throw "RuntimeError";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var using1 = require("./using1");
|
||||
var using1 = require("using1");
|
||||
|
||||
if (using1.spam(37) != 37)
|
||||
throw "RuntimeError";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var using2 = require("./using2");
|
||||
var using2 = require("using2");
|
||||
|
||||
if (using2.spam(37) != 37)
|
||||
throw "RuntimeError";
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
var varargs = require("./varargs");
|
||||
var varargs = require("varargs");
|
||||
|
||||
if (varargs.test("Hello") != "Hello") {
|
||||
throw new Error("Failed");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue