mirror of
https://github.com/koreader/koreader
synced 2024-11-16 06:12:56 +00:00
78 lines
2.5 KiB
Lua
78 lines
2.5 KiB
Lua
|
require("commonrequire")
|
||
|
|
||
|
local UIManager = require("ui/uimanager")
|
||
|
|
||
|
local time = require("ui/time")
|
||
|
|
||
|
local NB_TESTS = 40000
|
||
|
local noop = function() end
|
||
|
|
||
|
describe("UIManager simple checkTasks and scheduling benchmark", function()
|
||
|
local now = time.now()
|
||
|
local wait_until -- luacheck: no unused
|
||
|
UIManager:quit()
|
||
|
UIManager._task_queue = {}
|
||
|
|
||
|
-- use schedule here, to be agnostic of the _task_queue order (ascending, descending).
|
||
|
for i=1, NB_TESTS/2 do
|
||
|
UIManager:schedule(now + i, noop)
|
||
|
UIManager:schedule(now + NB_TESTS - i, noop)
|
||
|
end
|
||
|
|
||
|
for i=1, NB_TESTS do
|
||
|
wait_until, now = UIManager:_checkTasks() -- luacheck: no unused
|
||
|
end
|
||
|
end)
|
||
|
|
||
|
describe("UIManager more advanced checkTasks and scheduling benchmark", function()
|
||
|
-- This BM is doing schedulings like the are done in real usage
|
||
|
-- with autosuspend, autodim, autowarmth and friends.
|
||
|
-- Additional _checkTask is called to better simulate bench this too.
|
||
|
local wait_until -- luacheck: no unused
|
||
|
|
||
|
local now = time.now()
|
||
|
UIManager:quit()
|
||
|
|
||
|
local function standby_dummy() end
|
||
|
local function autowarmth_dummy() end
|
||
|
local function dimmer_dummy() end
|
||
|
|
||
|
local function someTaps()
|
||
|
for j = 1,10 do
|
||
|
-- insert some random times for entering standby
|
||
|
UIManager:schedule(now + time.s(j), standby_dummy) -- standby
|
||
|
UIManager:unschedule(standby_dummy)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
for i=1, NB_TESTS do
|
||
|
UIManager._task_queue = {}
|
||
|
UIManager:schedule(now + time.s(24*60*60), noop) -- shutdown
|
||
|
UIManager:schedule(now + time.s(15*60*60), noop) -- sleep
|
||
|
UIManager:schedule(now + time.s(55), noop) -- footer refresh
|
||
|
UIManager:schedule(now + time.s(130), noop) -- something
|
||
|
UIManager:schedule(now + time.s(10), noop) -- something else
|
||
|
|
||
|
for j = 1,5 do
|
||
|
someTaps()
|
||
|
|
||
|
for k = 1, 10 do
|
||
|
UIManager:schedule(now + time.s(k), standby_dummy) -- standby
|
||
|
end
|
||
|
now = now + 10
|
||
|
|
||
|
-- consume the last 10 standby_dummy, plus 10 checks.
|
||
|
for k = 1, 20 do
|
||
|
wait_until, now = UIManager:_checkTasks() -- luacheck: no unused
|
||
|
end
|
||
|
|
||
|
UIManager:schedule(now + time.s(15*60), autowarmth_dummy) -- autowarmth
|
||
|
UIManager:schedule(now + time.s(180), dimmer_dummy) -- dimmer
|
||
|
|
||
|
now = now + 30
|
||
|
UIManager:unschedule(dimmer_dummy)
|
||
|
UIManager:unschedule(autowarmth_dummy) -- remove autowarmth
|
||
|
end
|
||
|
end
|
||
|
end)
|