aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/embind/embind.test.js19
-rw-r--r--tests/embind/embind_test.cpp24
2 files changed, 29 insertions, 14 deletions
diff --git a/tests/embind/embind.test.js b/tests/embind/embind.test.js
index e60e1ab3..da81a81e 100644
--- a/tests/embind/embind.test.js
+++ b/tests/embind/embind.test.js
@@ -898,10 +898,7 @@ module({
test("can clone handles", function() {
var a = cm.emval_test_get_function_ptr();
- assert.equal(1, a.$$.count.value);
var b = a.clone();
- assert.equal(2, a.$$.count.value);
- assert.equal(2, b.$$.count.value);
a.delete();
assert.throws(cm.BindingError, function() {
@@ -1149,7 +1146,7 @@ module({
a.set(b);
var c = a.get();
- assert.equal(b.$$.ptr, c.$$.ptr);
+ assert.true(b.isAliasOf(c));
b.delete();
c.delete();
a.delete();
@@ -1747,8 +1744,8 @@ module({
BaseFixture.extend("constants", function() {
assert.equal(10, cm.INT_CONSTANT);
assert.equal("some string", cm.STRING_CONSTANT);
- assert.deepEqual([1, 2, 3, 4], cm.VALUE_TUPLE_CONSTANT);
- assert.deepEqual({x:1,y:2,z:3,w:4}, cm.VALUE_STRUCT_CONSTANT);
+ assert.deepEqual([1, 2, 3, 4], cm.VALUE_ARRAY_CONSTANT);
+ assert.deepEqual({x:1,y:2,z:3,w:4}, cm.VALUE_OBJECT_CONSTANT);
});
BaseFixture.extend("object handle comparison", function() {
@@ -1881,6 +1878,16 @@ module({
// setTimeout(fn, 0);
// });
});
+
+ BaseFixture.extend("references", function() {
+ test("JS object handles can be passed through to C++ by reference", function() {
+ var sh = new cm.StringHolder("Hello world");
+ assert.equal("Hello world", sh.get());
+ cm.clear_StringHolder(sh);
+ assert.equal("", sh.get());
+ sh.delete();
+ });
+ });
});
/* global run_all_tests */
diff --git a/tests/embind/embind_test.cpp b/tests/embind/embind_test.cpp
index 3561b8a1..d6b27bce 100644
--- a/tests/embind/embind_test.cpp
+++ b/tests/embind/embind_test.cpp
@@ -1445,7 +1445,7 @@ EMSCRIPTEN_BINDINGS(tests) {
//function("emval_test_take_and_return_CustomStruct", &emval_test_take_and_return_CustomStruct);
- value_tuple<TupleVector>("TupleVector")
+ value_array<TupleVector>("TupleVector")
.element(&TupleVector::x)
.element(&Vector::getY, &Vector::setY)
.element(&readVectorZ, &writeVectorZ)
@@ -1455,13 +1455,13 @@ EMSCRIPTEN_BINDINGS(tests) {
function("emval_test_return_TupleVector", &emval_test_return_TupleVector);
function("emval_test_take_and_return_TupleVector", &emval_test_take_and_return_TupleVector);
- value_tuple<TupleVectorTuple>("TupleVectorTuple")
+ value_array<TupleVectorTuple>("TupleVectorTuple")
.element(&TupleVectorTuple::v)
;
function("emval_test_return_TupleVectorTuple", &emval_test_return_TupleVectorTuple);
- value_struct<StructVector>("StructVector")
+ value_object<StructVector>("StructVector")
.field("x", &StructVector::x)
.field("y", &Vector::getY, &Vector::setY)
.field("z", &readVectorZ, &writeVectorZ)
@@ -1471,7 +1471,7 @@ EMSCRIPTEN_BINDINGS(tests) {
function("emval_test_return_StructVector", &emval_test_return_StructVector);
function("emval_test_take_and_return_StructVector", &emval_test_take_and_return_StructVector);
- value_struct<TupleInStruct>("TupleInStruct")
+ value_object<TupleInStruct>("TupleInStruct")
.field("field", &TupleInStruct::field)
;
@@ -2077,12 +2077,12 @@ OrderedStruct getOrderedStruct() {
}
EMSCRIPTEN_BINDINGS(order) {
- value_tuple<OrderedTuple>("OrderedTuple")
+ value_array<OrderedTuple>("OrderedTuple")
.element(&OrderedTuple::first)
.element(&OrderedTuple::second)
;
- value_struct<OrderedStruct>("OrderedStruct")
+ value_object<OrderedStruct>("OrderedStruct")
.field("first", &OrderedStruct::first)
.field("second", &OrderedStruct::second)
;
@@ -2215,10 +2215,10 @@ EMSCRIPTEN_BINDINGS(constants) {
constant("STRING_CONSTANT", std::string("some string"));
TupleVector tv(1, 2, 3, 4);
- constant("VALUE_TUPLE_CONSTANT", tv);
+ constant("VALUE_ARRAY_CONSTANT", tv);
StructVector sv(1, 2, 3, 4);
- constant("VALUE_STRUCT_CONSTANT", sv);
+ constant("VALUE_OBJECT_CONSTANT", sv);
}
class DerivedWithOffset : public DummyDataToTestPointerAdjustment, public Base {
@@ -2235,3 +2235,11 @@ EMSCRIPTEN_BINDINGS(with_adjustment) {
function("return_Base_from_DerivedWithOffset", &return_Base_from_DerivedWithOffset);
}
+
+void clear_StringHolder(StringHolder& sh) {
+ sh.set("");
+}
+
+EMSCRIPTEN_BINDINGS(references) {
+ function("clear_StringHolder", &clear_StringHolder);
+}