diff options
author | Will Holley <willholley@gmail.com> | 2019-12-06 13:35:52 +0000 |
---|---|---|
committer | Will Holley <willholley@gmail.com> | 2019-12-09 20:29:11 +0000 |
commit | 57fa67f8c50c1589a4e7e39f69b25d70e9528d2e (patch) | |
tree | b2de02b758b1e42d8227251209830a1540827182 | |
parent | 71d673f434d17f8cb8c46bf86fef3ff38569fdcb (diff) | |
download | couchdb-57fa67f8c50c1589a4e7e39f69b25d70e9528d2e.tar.gz |
Port couch_compress_tests to Elixir
-rw-r--r-- | src/couch/test/eunit/couch_compress_tests.erl | 85 | ||||
-rw-r--r-- | src/couch/test/exunit/couch_compress_tests.exs | 85 |
2 files changed, 85 insertions, 85 deletions
diff --git a/src/couch/test/eunit/couch_compress_tests.erl b/src/couch/test/eunit/couch_compress_tests.erl deleted file mode 100644 index addb9a0e2..000000000 --- a/src/couch/test/eunit/couch_compress_tests.erl +++ /dev/null @@ -1,85 +0,0 @@ -% Licensed under the Apache License, Version 2.0 (the "License"); you may not -% use this file except in compliance with the License. You may obtain a copy of -% the License at -% -% http://www.apache.org/licenses/LICENSE-2.0 -% -% Unless required by applicable law or agreed to in writing, software -% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -% License for the specific language governing permissions and limitations under -% the License. - --module(couch_compress_tests). - --include_lib("couch/include/couch_eunit.hrl"). --include_lib("couch/include/couch_db.hrl"). - --define(TERM, {[{a, 1}, {b, 2}, {c, 3}, {d, 4}, {e, 5}]}). --define(NONE, <<131,104,1,108,0,0,0,5,104,2,100,0,1,97,97,1, - 104,2,100,0,1,98,97,2,104,2,100,0,1,99,97,3,104,2,100,0, - 1,100,97,4,104,2,100,0,1,101,97,5,106>>). --define(DEFLATE, <<131,80,0,0,0,48,120,218,203,96,204,97,96, - 96,96,205,96,74,97,96,76,76,100,4,211,73,137,76,96,58,57, - 145,25,76,167,36,178,128,233,212,68,214,44,0,212,169,9,51>>). --define(SNAPPY, <<1,49,64,131,104,1,108,0,0,0,5,104,2,100,0, - 1,97,97,1,104,1,8,8,98,97,2,5,8,8,99,97,3,5,8,44,100,97, - 4,104,2,100,0,1,101,97,5,106>>). --define(CORRUPT, <<2,12,85,06>>). - - -compress_test_() -> - [ - ?_assertEqual(?NONE, couch_compress:compress(?TERM, none)), - ?_assertEqual(?DEFLATE, couch_compress:compress(?TERM, {deflate, 9})), - ?_assertEqual(?SNAPPY, couch_compress:compress(?TERM, snappy)) - ]. - -decompress_test_() -> - [ - ?_assertEqual(?TERM, couch_compress:decompress(?NONE)), - ?_assertEqual(?TERM, couch_compress:decompress(?DEFLATE)), - ?_assertEqual(?TERM, couch_compress:decompress(?SNAPPY)), - ?_assertError(invalid_compression, couch_compress:decompress(?CORRUPT)) - ]. - -recompress_test_() -> - [ - ?_assertEqual(?DEFLATE, couch_compress:compress(?NONE, {deflate, 9})), - ?_assertEqual(?SNAPPY, couch_compress:compress(?NONE, snappy)), - ?_assertEqual(?NONE, couch_compress:compress(?DEFLATE, none)), - ?_assertEqual(?SNAPPY, couch_compress:compress(?DEFLATE, snappy)), - ?_assertEqual(?NONE, couch_compress:compress(?SNAPPY, none)), - ?_assertEqual(?DEFLATE, couch_compress:compress(?SNAPPY, {deflate, 9})) - ]. - -is_compressed_test_() -> - [ - ?_assert(couch_compress:is_compressed(?NONE, none)), - ?_assert(couch_compress:is_compressed(?DEFLATE, {deflate, 9})), - ?_assert(couch_compress:is_compressed(?SNAPPY, snappy)), - ?_assertNot(couch_compress:is_compressed(?NONE, {deflate, 0})), - ?_assertNot(couch_compress:is_compressed(?NONE, {deflate, 9})), - ?_assertNot(couch_compress:is_compressed(?NONE, snappy)), - ?_assertNot(couch_compress:is_compressed(?DEFLATE, none)), - ?_assertNot(couch_compress:is_compressed(?DEFLATE, snappy)), - ?_assertNot(couch_compress:is_compressed(?SNAPPY, none)), - ?_assertNot(couch_compress:is_compressed(?SNAPPY, {deflate, 9})), - ?_assertError(invalid_compression, - couch_compress:is_compressed(?CORRUPT, none)), - ?_assertError(invalid_compression, - couch_compress:is_compressed(?CORRUPT, {deflate, 9})), - ?_assertError(invalid_compression, - couch_compress:is_compressed(?CORRUPT, snappy)) - ]. - -uncompressed_size_test_() -> - [ - ?_assertEqual(49, couch_compress:uncompressed_size(?NONE)), - ?_assertEqual(49, couch_compress:uncompressed_size(?DEFLATE)), - ?_assertEqual(49, couch_compress:uncompressed_size(?SNAPPY)), - ?_assertEqual(5, couch_compress:uncompressed_size( - couch_compress:compress(x, {deflate, 9}))), - ?_assertError(invalid_compression, - couch_compress:uncompressed_size(?CORRUPT)) - ]. diff --git a/src/couch/test/exunit/couch_compress_tests.exs b/src/couch/test/exunit/couch_compress_tests.exs new file mode 100644 index 000000000..b4a4e690c --- /dev/null +++ b/src/couch/test/exunit/couch_compress_tests.exs @@ -0,0 +1,85 @@ +defmodule Couch.Test.CouchCompress do + use Couch.Test.ExUnit.Case + alias Couch.Test.Utils + + alias Couch.Test.Setup + + alias Couch.Test.Setup.Step + + import Utils + + @term {[{:a, 1}, {:b, 2}, {:c, 3}, {:d, 4}, {:e, 5}]} + + @none <<131, 104, 1, 108, 0, 0, 0, 5, 104, 2, 100, 0, 1, 97, 97, 1, 104, 2, 100, 0, 1, + 98, 97, 2, 104, 2, 100, 0, 1, 99, 97, 3, 104, 2, 100, 0, 1, 100, 97, 4, 104, 2, + 100, 0, 1, 101, 97, 5, 106>> + + @deflate <<131, 80, 0, 0, 0, 48, 120, 218, 203, 96, 204, 97, 96, 96, 96, 205, 96, 74, + 97, 96, 76, 76, 100, 4, 211, 73, 137, 76, 96, 58, 57, 145, 25, 76, 167, 36, + 178, 128, 233, 212, 68, 214, 44, 0, 212, 169, 9, 51>> + + @snappy <<1, 49, 64, 131, 104, 1, 108, 0, 0, 0, 5, 104, 2, 100, 0, 1, 97, 97, 1, 104, 1, + 8, 8, 98, 97, 2, 5, 8, 8, 99, 97, 3, 5, 8, 44, 100, 97, 4, 104, 2, 100, 0, 1, + 101, 97, 5, 106>> + + @corrupt <<2, 12, 85, 06>> + + describe "CouchDB Compression" do + test "compress" do + assert @none === :couch_compress.compress(@term, :none) + assert @deflate === :couch_compress.compress(@term, {:deflate, 9}) + assert @snappy === :couch_compress.compress(@term, :snappy) + end + + test "decompress" do + assert @term === :couch_compress.decompress(@none) + assert @term === :couch_compress.decompress(@deflate) + assert @term === :couch_compress.decompress(@snappy) + assert catch_error(:couch_compress.decompress(@corrupt)) == :invalid_compression + end + + test "recompress" do + assert @deflate === :couch_compress.compress(@none, {:deflate, 9}) + assert @snappy === :couch_compress.compress(@none, :snappy) + assert @none === :couch_compress.compress(@deflate, :none) + assert @snappy === :couch_compress.compress(@deflate, :snappy) + assert @none === :couch_compress.compress(@snappy, :none) + assert @deflate === :couch_compress.compress(@snappy, {:deflate, 9}) + end + + test "is compressed" do + assert :couch_compress.is_compressed(@none, :none) + assert :couch_compress.is_compressed(@deflate, {:deflate, 9}) + assert :couch_compress.is_compressed(@snappy, :snappy) + refute :couch_compress.is_compressed(@none, {:deflate, 0}) + refute :couch_compress.is_compressed(@none, {:deflate, 9}) + refute :couch_compress.is_compressed(@none, :snappy) + refute :couch_compress.is_compressed(@deflate, :none) + refute :couch_compress.is_compressed(@deflate, :snappy) + refute :couch_compress.is_compressed(@snappy, :none) + refute :couch_compress.is_compressed(@snappy, {:deflate, 9}) + + assert catch_error(:couch_compress.is_compressed(@corrupt, :none)) == + :invalid_compression + + assert catch_error(:couch_compress.is_compressed(@corrupt, {:deflate, 9})) == + :invalid_compression + + assert catch_error(:couch_compress.is_compressed(@corrupt, :snappy)) == + :invalid_compression + end + + test "uncompressed size" do + assert :couch_compress.uncompressed_size(@none) === 49 + assert :couch_compress.uncompressed_size(@deflate) === 49 + assert :couch_compress.uncompressed_size(@snappy) === 49 + + assert :couch_compress.uncompressed_size( + :couch_compress.compress(:x, {:deflate, 9}) + ) === 5 + + assert catch_error(:couch_compress.uncompressed_size(@corrupt)) == + :invalid_compression + end + end +end |