mirror of
https://github.com/octoleo/lsyncd.git
synced 2024-12-13 14:43:09 +00:00
77 lines
1.9 KiB
Lua
77 lines
1.9 KiB
Lua
|
#!/usr/bin/lua
|
||
|
require("posix")
|
||
|
dofile("tests/testlib.lua")
|
||
|
|
||
|
cwriteln("****************************************************************")
|
||
|
cwriteln(" Testing Lsyncd scheduler ")
|
||
|
cwriteln("****************************************************************")
|
||
|
|
||
|
local tdir, srcdir, trgdir = mktemps()
|
||
|
local logfile = tdir .. "log"
|
||
|
local cfgfile = tdir .. "config.lua"
|
||
|
local logs = {"-log", "all" }
|
||
|
|
||
|
writefile(cfgfile, [[
|
||
|
settings = {
|
||
|
logfile = "]]..logfile..[[",
|
||
|
log = all,
|
||
|
nodaemon = true,
|
||
|
maxProcesses = 1
|
||
|
}
|
||
|
|
||
|
-- continously touches a file
|
||
|
acircuit = {
|
||
|
delay = 0,
|
||
|
onStartup = "sleep 3 && touch ^source/a",
|
||
|
onCreate = "sleep 3 && touch ^source/a",
|
||
|
}
|
||
|
|
||
|
-- continously touches b file
|
||
|
bcircuit = {
|
||
|
delay = 0,
|
||
|
onStartup = "sleep 3 && touch ^source/b",
|
||
|
onCreate = "sleep 3 && touch ^source/b",
|
||
|
}
|
||
|
|
||
|
-- continously touches c file
|
||
|
ccircuit = {
|
||
|
delay = 0,
|
||
|
onStartup = "sleep 3 && touch ^source/c",
|
||
|
onCreate = "sleep 3 && touch ^source/c",
|
||
|
}
|
||
|
|
||
|
sync {acircuit, source ="]]..srcdir..[[", target = "]]..trgdir..[["}
|
||
|
sync {bcircuit, source ="]]..srcdir..[[", target = "]]..trgdir..[["}
|
||
|
sync {ccircuit, source ="]]..srcdir..[[", target = "]]..trgdir..[["}
|
||
|
]]);
|
||
|
|
||
|
|
||
|
-- test if the filename exists, fails if this is different to expect
|
||
|
local function testfile(filename)
|
||
|
local stat, err = posix.stat(filename)
|
||
|
if not stat then
|
||
|
cwriteln("failure: ",filename," missing");
|
||
|
os.exit(1);
|
||
|
end
|
||
|
end
|
||
|
|
||
|
cwriteln("starting Lsyncd");
|
||
|
local pid = spawn("./lsyncd", cfgfile, unpack(logs));
|
||
|
cwriteln("waiting for Lsyncd to do a few cycles");
|
||
|
posix.sleep(30)
|
||
|
cwriteln("look if every circle got a chance to run");
|
||
|
testfile(srcdir.."a")
|
||
|
testfile(srcdir.."b")
|
||
|
testfile(srcdir.."c")
|
||
|
cwriteln("killing started Lsyncd");
|
||
|
posix.kill(pid);
|
||
|
local _, exitmsg, lexitcode = posix.wait(lpid);
|
||
|
cwriteln("Exitcode of Lsyncd = ", exitmsg, " ", lexitcode);
|
||
|
posix.sleep(1);
|
||
|
if lexitcode == 0 then
|
||
|
cwriteln("OK");
|
||
|
end
|
||
|
os.exit(lexitcode);
|
||
|
|
||
|
-- TODO remove temp
|