diff options
author | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2021-11-10 11:39:54 +0100 |
---|---|---|
committer | Gabriel Pérez-Cerezo <gabriel@gpcf.eu> | 2021-11-10 11:39:54 +0100 |
commit | 890369090e64379ac1c175ff3ae8eeec99435f90 (patch) | |
tree | 86cc364ea979c1253e6b15beee187e2cafb752bb /serialize_lib/tests | |
parent | 3561a7bfa2e3ed6690c359c052cf056652df4deb (diff) | |
download | advtrains-890369090e64379ac1c175ff3ae8eeec99435f90.tar.gz advtrains-890369090e64379ac1c175ff3ae8eeec99435f90.tar.bz2 advtrains-890369090e64379ac1c175ff3ae8eeec99435f90.zip |
Activate serialize_lib unit tests
Diffstat (limited to 'serialize_lib/tests')
-rw-r--r-- | serialize_lib/tests/serialize_spec.lua | 123 |
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) |