Merge branch 's3-decompress' of https://github.com/lukegb/nix

This commit is contained in:
Eelco Dolstra 2021-04-22 10:20:40 +02:00
commit a6eebcff36
2 changed files with 21 additions and 1 deletions

View file

@ -186,7 +186,9 @@ struct BrotliDecompressionSink : ChunkedCompressionSink
ref<std::string> decompress(const std::string & method, const std::string & in) ref<std::string> decompress(const std::string & method, const std::string & in)
{ {
if (method == "br") { if (method == "none" || method == "")
return make_ref<std::string>(in);
else if (method == "br") {
StringSink ssink; StringSink ssink;
auto sink = makeDecompressionSink(method, ssink); auto sink = makeDecompressionSink(method, ssink);
(*sink)(in); (*sink)(in);

View file

@ -17,6 +17,24 @@ namespace nix {
ASSERT_EQ(*o, "this-is-a-test"); ASSERT_EQ(*o, "this-is-a-test");
} }
TEST(decompress, decompressNoneCompressed) {
auto method = "none";
auto str = "slfja;sljfklsa;jfklsjfkl;sdjfkl;sadjfkl;sdjf;lsdfjsadlf";
ref<std::string> o = decompress(method, str);
ASSERT_EQ(*o, str);
}
TEST(decompress, decompressEmptyCompressed) {
// Empty-method decompression used e.g. by S3 store
// (Content-Encoding == "").
auto method = "";
auto str = "slfja;sljfklsa;jfklsjfkl;sdjfkl;sadjfkl;sdjf;lsdfjsadlf";
ref<std::string> o = decompress(method, str);
ASSERT_EQ(*o, str);
}
TEST(decompress, decompressXzCompressed) { TEST(decompress, decompressXzCompressed) {
auto method = "xz"; auto method = "xz";
auto str = "slfja;sljfklsa;jfklsjfkl;sdjfkl;sadjfkl;sdjf;lsdfjsadlf"; auto str = "slfja;sljfklsa;jfklsjfkl;sdjfkl;sadjfkl;sdjf;lsdfjsadlf";