aboutsummaryrefslogtreecommitdiff
path: root/serialize_lib/tests/serialize_spec.lua
diff options
context:
space:
mode:
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>2021-11-10 11:39:54 +0100
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>2021-11-10 11:39:54 +0100
commit890369090e64379ac1c175ff3ae8eeec99435f90 (patch)
tree86cc364ea979c1253e6b15beee187e2cafb752bb /serialize_lib/tests/serialize_spec.lua
parent3561a7bfa2e3ed6690c359c052cf056652df4deb (diff)
downloadadvtrains-890369090e64379ac1c175ff3ae8eeec99435f90.tar.gz
advtrains-890369090e64379ac1c175ff3ae8eeec99435f90.tar.bz2
advtrains-890369090e64379ac1c175ff3ae8eeec99435f90.zip
Activate serialize_lib unit tests
Diffstat (limited to 'serialize_lib/tests/serialize_spec.lua')
-rw-r--r--serialize_lib/tests/serialize_spec.lua123
1 files changed, 0 insertions, 123 deletions
diff --git a/serialize_lib/tests/serialize_spec.lua b/serialize_lib/tests/serialize_spec.lua
deleted file mode 100644
index ccc3a67..0000000
--- a/serialize_lib/tests/serialize_spec.lua
+++ /dev/null
@@ -1,123 +0,0 @@
--- test the serialization function
-
-
-package.path = "../?.lua;" .. package.path
-
-
-ser = require("serialize")
-
-
-local mock_file = {}
-_G.mock_file = mock_file
-function mock_file:read(arg)
- if arg == "*l" then
- local l = self.lines[self.pointer or 1]
- self.pointer = (self.pointer or 1) + 1
- return l
- end
-end
-
-function mock_file:close()
- return nil
-end
-
-function mock_file:write(text)
- self.content = self.content..text
-end
-
-function mock_file:create(lines)
- local f = {}
- setmetatable(f, mock_file)
- f.lines = lines or {}
- f.write = self.write
- f.close = self.close
- f.read = self.read
- f.content = ""
- return f
-end
-
-
-local testtable = {
- key = "value",
- [1] = "eins",
- [true] = {
- a = "b",
- c = false,
- },
- ["es:cape1"] = "foo:bar",
- ["es&ca\npe2"] = "baz&bam\nbim",
- ["es&&ca&\npe3"] = "baz&&bam&\nbim",
- ["es&:cape4"] = "foo\n:bar"
-}
-local testser = [[LUA_SER v=1
-B1:T
-Sa:Sb
-Sc:B0
-E
-Skey:Svalue
-Ses&&&&ca&&&npe3:Sbaz&&&&bam&&&nbim
-N1:Seins
-Ses&&&:cape4:Sfoo&n&:bar
-Ses&&ca&npe2:Sbaz&&bam&nbim
-Ses&:cape1:Sfoo&:bar
-E
-END_SER
-]]
-
-local function check_write(tb, conf)
- f = mock_file:create()
- ser.write_to_fd(tb, f, conf or {})
- return f.content
-end
-
-function string:split()
- local fields = {}
- self:gsub("[^\n]+", function(c) fields[#fields+1] = c end)
- return fields
-end
-
-local function check_read(text)
- f = mock_file:create(text:split())
- return ser.read_from_fd(f)
-end
-
-local noskip = [[LUA_SER v=1
-N1:T
-E
-E
-END_SER
-]]
-local skip = [[LUA_SER v=1
-E
-END_SER
-]]
-
-describe("write_to_fd", function()
- it("serializes a table correctly", function()
- assert.equals(check_write(testtable), testser)
- end)
- it("does not skip empty tables", function()
- assert.equals(check_write({{}}),noskip)
- end)
- it("skips empty tables when needed", function()
-
- assert.equals(check_write({{}},{skip_empty_tables=true}),skip)
- end)
-end)
-
-describe("read_from_fd", function ()
- it("reads a table correctly", function()
- assert.same(check_read(testser),testtable)
- end)
- it("handles some edge cases correctly", function()
- assert.same(check_read(noskip), {{}})
- assert.same(check_read(skip), {})
- end)
- it("Read back table", function()
- local tb = {}
- for k=1,262 do
- tb[k] = { "Foo", "bar", k}
- end
- assert.same(check_read(check_write(tb)), tb)
- end)
-end)