summaryrefslogtreecommitdiff
path: root/src/snappy/test/snappy_tests.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/snappy/test/snappy_tests.erl')
-rw-r--r--src/snappy/test/snappy_tests.erl74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/snappy/test/snappy_tests.erl b/src/snappy/test/snappy_tests.erl
new file mode 100644
index 000000000..ac39c58be
--- /dev/null
+++ b/src/snappy/test/snappy_tests.erl
@@ -0,0 +1,74 @@
+%% Copyright 2011, Filipe David Manana <fdmanana@apache.org>
+%% Web: http://github.com/fdmanana/snappy-erlang-nif
+%%
+%% 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(snappy_tests).
+-include_lib("eunit/include/eunit.hrl").
+
+
+compression_test_() ->
+ {timeout, 60, [fun compression/0]}.
+
+decompression_test_() ->
+ {timeout, 60, [fun decompression/0]}.
+
+
+compression() ->
+ DataIoList = lists:duplicate(11, <<"words that go unspoken, deeds that go undone">>),
+ Data = iolist_to_binary(DataIoList),
+ Result = snappy:compress(Data),
+ ?assertMatch({ok, _}, Result),
+ {ok, Compressed} = Result,
+
+ ?assertEqual(true, byte_size(Compressed) < byte_size(Data)),
+
+ ?assertEqual(true, snappy:is_valid(Compressed)),
+ ?assertEqual(false, snappy:is_valid(Data)),
+ ?assertEqual(false, snappy:is_valid(<<"foobar123">>)),
+ ?assertEqual({ok, byte_size(Data)}, snappy:uncompressed_length(Compressed)),
+
+ Result2 = snappy:compress(DataIoList),
+ ?assertMatch({ok, _}, Result2),
+ {ok, Compressed2} = Result2,
+
+ ?assertEqual(byte_size(Compressed2), byte_size(Compressed)),
+ ?assertEqual(true, snappy:is_valid(Compressed2)),
+ ?assertEqual({ok, byte_size(Data)}, snappy:uncompressed_length(Compressed2)),
+ ok.
+
+
+decompression() ->
+ DataIoList = lists:duplicate(11, <<"words that go unspoken, deeds that go undone">>),
+ Data = iolist_to_binary(DataIoList),
+ Result = snappy:compress(Data),
+ ?assertMatch({ok, _}, Result),
+ {ok, Compressed} = Result,
+ ?assertEqual({ok, Data}, snappy:decompress(Compressed)),
+
+ Result2 = snappy:compress(DataIoList),
+ ?assertMatch({ok, _}, Result2),
+ {ok, Compressed2} = Result2,
+ ?assertEqual({ok, Data}, snappy:decompress(Compressed2)),
+
+ BigData = <<"mVPZzfDzKNeZrh1QdkMEgh2U0Bv2i3+bLJaCqgNibXuMuwfjrqTuxPGupxjI",
+ "xEbuYR+u/KZvSDhoxnkpPbgJo7oiQv2ibDrrGZx7RDs3Nn7Ww51B7+zUL4tr",
+ "G+16TlJilJT47Z4cQn8EpWex2bMRFAoJ6AMJAodLGbiD78yUyIorRKVcCa+k",
+ "udzjsqYAoXzW/z8JCB6rbGGSbnLyqztR//ch5sRwSvYARlV+IamzBkDXFZxj",
+ "5TAwAl2ZcbCeMX0qgXX4EonVZxc=">>,
+ Result3 = snappy:compress(BigData),
+ ?assertMatch({ok, _}, Result3),
+ {ok, Compressed3} = Result3,
+ ?assertEqual({ok, BigData}, snappy:decompress(Compressed3)),
+ ok.
+