summaryrefslogtreecommitdiff
path: root/js/test/Ice/objects/Client.js
diff options
context:
space:
mode:
authorJoe George <joe@zeroc.com>2020-07-07 16:57:51 -0400
committerGitHub <noreply@github.com>2020-07-07 16:57:51 -0400
commit6c0e7e6fcabde691e7c38a814b6171f9f4e77d09 (patch)
treeaed41fdff6561e134c73da214e580be0910e6f6a /js/test/Ice/objects/Client.js
parentCopy python dependencies to the extension directory - Close #926 (#927) (diff)
downloadice-6c0e7e6fcabde691e7c38a814b6171f9f4e77d09.tar.bz2
ice-6c0e7e6fcabde691e7c38a814b6171f9f4e77d09.tar.xz
ice-6c0e7e6fcabde691e7c38a814b6171f9f4e77d09.zip
Add class cycle detection during unmarshaling (#946)
Add support for detection of class cycles during unmarshaling in languages which do no have garbage collection: C++, Swift, and Objective-C. A `MarshalException` is thrown when a cycle is detected. The property `Ice.AcceptClassCycles` can be set to a value greater than `0` to change this behavior.
Diffstat (limited to 'js/test/Ice/objects/Client.js')
-rw-r--r--js/test/Ice/objects/Client.js17
1 files changed, 17 insertions, 0 deletions
diff --git a/js/test/Ice/objects/Client.js b/js/test/Ice/objects/Client.js
index 0f5e5cb730b..76697dc3d17 100644
--- a/js/test/Ice/objects/Client.js
+++ b/js/test/Ice/objects/Client.js
@@ -491,6 +491,23 @@
}
out.writeLine("ok");
+ out.write("testing sending class cycle... ");
+ {
+ const rec = new Test.Recursive();
+ rec.v = rec;
+ const acceptsCycles = await initial.acceptsClassCycles();
+ try
+ {
+ await initial.setCycle(rec);
+ test(acceptsCycles);
+ }
+ catch (error)
+ {
+ test(!acceptsCycles);
+ }
+ }
+ out.writeLine("ok");
+
await initial.shutdown();
}