diff --git a/spec/unit/cache_spec.lua b/spec/unit/cache_spec.lua new file mode 100644 index 000000000..f32ff3f8e --- /dev/null +++ b/spec/unit/cache_spec.lua @@ -0,0 +1,57 @@ +require "defaults" +package.path = "?.lua;common/?.lua;frontend/?.lua" +package.cpath = "?.so;common/?.so;/usr/lib/lua/?.so" + +require "libs/libkoreader-lfs" +-- global einkfb for Screen +einkfb = require("ffi/framebuffer") +-- do not show SDL window +einkfb.dummy = true +Blitbuffer = require("ffi/blitbuffer") + +local Screen = require("ui/screen") +local DocSettings = require("docsettings") +G_reader_settings = DocSettings:open(".reader") +local DocumentRegistry = require("document/documentregistry") +local Cache = require("cache") +local DEBUG = require("dbg") +--DEBUG:turnOn() + +-- screen should be inited for crengine +Screen:init() + +describe("Cache module", function() + local sample_pdf = "spec/front/unit/data/sample.pdf" + local doc = DocumentRegistry:openDocument(sample_pdf) + it("should clear cache", function() + Cache:clear() + end) + it("should serialize blitbuffer", function() + for pageno = 1, math.min(10, doc.info.number_of_pages) do + doc:renderPage(pageno, nil, 1, 0, 1.0, 0) + Cache:serialize() + end + Cache:clear() + end) + it("should deserialize blitbuffer", function() + for pageno = 1, math.min(10, doc.info.number_of_pages) do + doc:hintPage(pageno, 1, 0, 1.0, 0) + end + Cache:clear() + end) + it("should serialize koptcontext", function() + doc.configurable.text_wrap = 1 + for pageno = 1, math.min(10, doc.info.number_of_pages) do + doc:renderPage(pageno, nil, 1, 0, 1.0, 0) + doc:getPageDimensions(pageno) + Cache:serialize() + end + Cache:clear() + end) + it("should deserialize koptcontext", function() + for pageno = 1, math.min(10, doc.info.number_of_pages) do + doc:renderPage(pageno, nil, 1, 0, 1.0, 0) + end + Cache:clear() + end) +end)