52 lines
1.5 KiB
Plaintext
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()
|