aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2018-10-27 12:43:03 +0200
committerKim Alvefur <zash@zash.se>2018-10-27 12:43:03 +0200
commitfdbc23fab67129d4764367f5fa4614cc244904b3 (patch)
treeb949b814294559492811672e610d7e8f75954a84 /spec
parent2801e1f10087b21a7ca8c0a10a11de5ac10c259d (diff)
downloadprosody-fdbc23fab67129d4764367f5fa4614cc244904b3.tar.gz
prosody-fdbc23fab67129d4764367f5fa4614cc244904b3.zip
util.serialization: Add option for allowing multiple references to the same table (but not cycles)
Diffstat (limited to 'spec')
-rw-r--r--spec/util_serialization_spec.lua16
1 files changed, 15 insertions, 1 deletions
diff --git a/spec/util_serialization_spec.lua b/spec/util_serialization_spec.lua
index e73ca826..2af5d803 100644
--- a/spec/util_serialization_spec.lua
+++ b/spec/util_serialization_spec.lua
@@ -25,13 +25,27 @@ describe("util.serialization", function ()
t[t] = { t };
serialization.serialize(t)
end);
+ -- also with multirefs allowed
+ assert.has_error(function ()
+ local t = {}
+ t[t] = { t };
+ serialization.serialize(t, { multirefs = true })
+ end);
end);
it("rejects multiple references to same table", function ()
assert.has_error(function ()
local t1 = {};
local t2 = { t1, t1 };
- serialization.serialize(t2);
+ serialization.serialize(t2, { multirefs = false });
+ end);
+ end);
+
+ it("optionally allows multiple references to same table", function ()
+ assert.has_error(function ()
+ local t1 = {};
+ local t2 = { t1, t1 };
+ serialization.serialize(t2, { multirefs = true });
end);
end);