Files
cell/tests/miniz.ce
2025-11-25 09:16:50 -06:00

52 lines
1.5 KiB
Plaintext

var fd = use("fd")
var miniz = use("miniz")
var utf8 = use("utf8")
var ZIP_PATH = "miniz_test.zip"
var SOURCE_PATH = "miniz_source.txt"
var ENTRY_PATH = "sample/hello.txt"
var PAYLOAD = "Miniz integration test payload."
function write_text_file(path, text) {
var handle = fd.open(path, "w")
fd.write(handle, text)
fd.close(handle)
}
function main() {
log.console("[miniz] creating source file via fd module...")
write_text_file(SOURCE_PATH, PAYLOAD)
log.console("[miniz] creating zip via fd-backed filesystem...")
var source_blob = fd.slurp(SOURCE_PATH)
var writer = miniz.write(ZIP_PATH)
writer.add_file(ENTRY_PATH, source_blob)
writer = null
log.console("[miniz] zip written; reading back through fd module")
var zip_blob = fd.slurp(ZIP_PATH)
var reader = miniz.read(zip_blob)
if (!reader.exists(ENTRY_PATH))
throw new Error("miniz test: entry missing in archive")
var extracted_blob = reader.slurp(ENTRY_PATH)
var extracted_text = utf8.decode(extracted_blob)
log.console(reader.list())
log.console(extracted_text);
if (extracted_text != PAYLOAD)
throw new Error("miniz test: extracted text mismatch")
var listed = reader.list()
if (listed.length != reader.count())
throw new Error("miniz test: list/count mismatch")
if (listed.length != 1 || listed[0] != ENTRY_PATH)
throw new Error("miniz test: unexpected entries in archive")
log.console(`miniz read success: ${listed[0]} => ${extracted_text}`)
$_.stop()
}
main()