diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2021-04-22 10:20:40 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2021-04-22 10:20:40 +0200 |
commit | a6eebcff36164735ff4523012d65c96ca497c905 (patch) | |
tree | efe44b2785b5b3ae4fe0450349b17912bfc0785c | |
parent | 7c90552879da4d1df99b50c85e94201981e60123 (diff) | |
parent | 97dde3cdd983b2fef9e45dd0ca8d62716a62417d (diff) |
Merge branch 's3-decompress' of https://github.com/lukegb/nix
-rw-r--r-- | src/libutil/compression.cc | 4 | ||||
-rw-r--r-- | src/libutil/tests/compression.cc | 18 |
2 files changed, 21 insertions, 1 deletions
diff --git a/src/libutil/compression.cc b/src/libutil/compression.cc index 08812ef57..c5dae42fa 100644 --- a/src/libutil/compression.cc +++ b/src/libutil/compression.cc @@ -186,7 +186,9 @@ struct BrotliDecompressionSink : ChunkedCompressionSink 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; auto sink = makeDecompressionSink(method, ssink); (*sink)(in); diff --git a/src/libutil/tests/compression.cc b/src/libutil/tests/compression.cc index 5b7a2c5b9..2efa3266b 100644 --- a/src/libutil/tests/compression.cc +++ b/src/libutil/tests/compression.cc @@ -17,6 +17,24 @@ namespace nix { 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) { auto method = "xz"; auto str = "slfja;sljfklsa;jfklsjfkl;sdjfkl;sadjfkl;sdjf;lsdfjsadlf"; |