summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Holley <willholley@gmail.com>2019-12-06 13:35:52 +0000
committerWill Holley <willholley@gmail.com>2019-12-09 20:29:11 +0000
commit57fa67f8c50c1589a4e7e39f69b25d70e9528d2e (patch)
treeb2de02b758b1e42d8227251209830a1540827182
parent71d673f434d17f8cb8c46bf86fef3ff38569fdcb (diff)
downloadcouchdb-57fa67f8c50c1589a4e7e39f69b25d70e9528d2e.tar.gz
Port couch_compress_tests to Elixir
-rw-r--r--src/couch/test/eunit/couch_compress_tests.erl85
-rw-r--r--src/couch/test/exunit/couch_compress_tests.exs85
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