From fdbc23fab67129d4764367f5fa4614cc244904b3 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Sat, 27 Oct 2018 12:43:03 +0200 Subject: util.serialization: Add option for allowing multiple references to the same table (but not cycles) --- spec/util_serialization_spec.lua | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'spec') 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); -- cgit v1.2.3