mirror of
https://github.com/Doodle3D/doodle3d-firmware.git
synced 2024-07-01 05:31:23 +02:00
106 lines
2.5 KiB
Lua
106 lines
2.5 KiB
Lua
|
local utils = require("util.utils")
|
||
|
|
||
|
local M = {
|
||
|
_is_test = true,
|
||
|
_skip = { 'dump', 'symlink', 'getUciSectionName', 'symlinkInRoot' },
|
||
|
_wifibox_only = { 'getUciSectionName', 'symlinkInRoot' }
|
||
|
}
|
||
|
|
||
|
local function compareTables(t1, t2)
|
||
|
if #t1 ~= #t2 then return false end
|
||
|
for i=1,#t1 do
|
||
|
if t1[i] ~= t2[i] then return false end
|
||
|
end
|
||
|
return true
|
||
|
end
|
||
|
|
||
|
-- Returns a string representation of the argument, with 'real' strings enclosed in single quotes
|
||
|
local function stringRepresentation(v)
|
||
|
return type(v) == 'string' and ("'"..v.."'") or tostring(v)
|
||
|
end
|
||
|
|
||
|
|
||
|
local filename = "/tmp/somefile12345.txt"
|
||
|
|
||
|
|
||
|
function M:_setup()
|
||
|
os.execute("rm -f " .. filename) -- make sure the file does not exist
|
||
|
end
|
||
|
|
||
|
function M:_teardown()
|
||
|
os.execute("rm -f " .. filename) -- make sure the file gets removed again
|
||
|
end
|
||
|
|
||
|
|
||
|
function M:test_splitString()
|
||
|
local input1, input2, input3 = ':a:b::', '/a/b//', '$a$b$$'
|
||
|
local expected = { '', 'a', 'b', '', '' }
|
||
|
|
||
|
local result1 = input1:split()
|
||
|
local result2 = input2:split('/')
|
||
|
local result3 = input3:split('$')
|
||
|
|
||
|
assert(#result1 == 5)
|
||
|
assert(compareTables(result1, expected))
|
||
|
assert(#result2 == 5)
|
||
|
assert(compareTables(result2, expected))
|
||
|
assert(#result3 == 5)
|
||
|
assert(compareTables(result3, expected))
|
||
|
end
|
||
|
|
||
|
function M:test_toboolean()
|
||
|
local trues = { true, 1, 'true', 'True', 'T', '1' }
|
||
|
local falses = { nil, false, 0, 'false', 'False' , 'f', {} }
|
||
|
|
||
|
for _,v in pairs(trues) do assert(utils.toboolean(v), "expected true: " .. stringRepresentation(v)) end
|
||
|
for _,v in pairs(falses) do assert(not utils.toboolean(v), "expected false: " .. stringRepresentation(v)) end
|
||
|
end
|
||
|
|
||
|
function M:test_dump()
|
||
|
--test handling of reference loops
|
||
|
assert(false, 'not implemented')
|
||
|
end
|
||
|
|
||
|
function M:test_getUciSectionName()
|
||
|
assert(false, 'not implemented')
|
||
|
end
|
||
|
|
||
|
function M:test_exists()
|
||
|
assert(utils.exists() == nil)
|
||
|
assert(utils.exists(nil) == nil)
|
||
|
|
||
|
assert(not utils.exists(filename))
|
||
|
os.execute("touch " .. filename)
|
||
|
assert(utils.exists(filename))
|
||
|
end
|
||
|
|
||
|
function M:test_create()
|
||
|
local f, testContents = nil, 'test text'
|
||
|
|
||
|
assert(utils.create() == nil)
|
||
|
assert(utils.create(nil) == nil)
|
||
|
|
||
|
assert(not io.open(filename, 'r'))
|
||
|
utils.create(filename)
|
||
|
assert(io.open(filename, 'r'))
|
||
|
|
||
|
f = io.open(filename, 'w')
|
||
|
f:write(testContents)
|
||
|
f:close()
|
||
|
|
||
|
utils.create(filename)
|
||
|
f = io.open(filename, 'r')
|
||
|
local actualContents = f:read('*all')
|
||
|
assert(actualContents == testContents)
|
||
|
end
|
||
|
|
||
|
function M:test_symlink()
|
||
|
assert(false, 'not implemented')
|
||
|
end
|
||
|
|
||
|
function M:test_symlinkInRoot()
|
||
|
assert(false, 'not implemented')
|
||
|
end
|
||
|
|
||
|
return M
|