mirror of
https://github.com/lune-org/lune.git
synced 2024-12-12 13:00:37 +00:00
80 lines
2 KiB
Text
80 lines
2 KiB
Text
local fs = require("@lune/fs")
|
|
local process = require("@lune/process")
|
|
local serde = require("@lune/serde")
|
|
local stdio = require("@lune/stdio")
|
|
|
|
local FORMATS: { serde.CompressDecompressFormat } = { "brotli", "gzip", "lz4", "zlib" }
|
|
local FILES: { string } = {
|
|
"tests/serde/test-files/loremipsum.txt",
|
|
"tests/serde/test-files/uncompressed.csv",
|
|
"tests/serde/test-files/uncompressed.json",
|
|
"tests/serde/test-files/uncompressed.yaml",
|
|
}
|
|
|
|
local failed = false
|
|
for _, filePath in FILES do
|
|
local source = fs.readFile(filePath)
|
|
for _, format: serde.CompressDecompressFormat in FORMATS do
|
|
local compressed = serde.compress(format, source)
|
|
local decompressed = serde.decompress(format, compressed)
|
|
|
|
-- Compressing something should return something else
|
|
if #compressed <= 0 then
|
|
stdio.ewrite(
|
|
string.format(
|
|
"Compressing source using '%s' returned an empty string!\n",
|
|
tostring(format)
|
|
)
|
|
)
|
|
stdio.ewrite(string.format("Source (%d chars long):\n%s\n", #source, tostring(source)))
|
|
failed = true
|
|
continue
|
|
end
|
|
if compressed == source then
|
|
stdio.ewrite(
|
|
string.format(
|
|
"Compressing source using '%s' format did not change contents!\n",
|
|
tostring(format)
|
|
)
|
|
)
|
|
stdio.ewrite(
|
|
string.format(
|
|
"Source (%d chars long):\n%s\nCompressed (%d chars long):\n%s\n",
|
|
#source,
|
|
tostring(source),
|
|
#compressed,
|
|
tostring(compressed)
|
|
)
|
|
)
|
|
failed = true
|
|
continue
|
|
end
|
|
|
|
-- Decompressing that something else should return the original source
|
|
if decompressed ~= source then
|
|
stdio.ewrite(
|
|
string.format(
|
|
"Decompressing using '%s' format did not return the source!\n",
|
|
tostring(format)
|
|
)
|
|
)
|
|
stdio.ewrite(
|
|
string.format(
|
|
"Source (%d chars long):\n%s\nCompressed (%d chars long):\n%s\nDecompressed (%d chars long):\n%s\n",
|
|
#source,
|
|
tostring(source),
|
|
#compressed,
|
|
tostring(compressed),
|
|
#decompressed,
|
|
tostring(decompressed)
|
|
)
|
|
)
|
|
failed = true
|
|
continue
|
|
end
|
|
end
|
|
end
|
|
|
|
if failed then
|
|
process.exit(1)
|
|
end
|