You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ch...@apache.org on 2014/07/22 01:57:18 UTC
[05/43] couchdb commit: updated refs/heads/1963-eunit-bigcouch to
424dca5
Port 040-util.t etap test suite to eunit
Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb/commit/ffc2362f
Tree: http://git-wip-us.apache.org/repos/asf/couchdb/tree/ffc2362f
Diff: http://git-wip-us.apache.org/repos/asf/couchdb/diff/ffc2362f
Branch: refs/heads/1963-eunit-bigcouch
Commit: ffc2362f0752870f3a82292b14530c26a27c7ee7
Parents: 3979306
Author: Alexander Shorin <kx...@apache.org>
Authored: Sat May 17 04:16:38 2014 +0400
Committer: Russell Branca <ch...@apache.org>
Committed: Mon Jul 21 16:35:40 2014 -0700
----------------------------------------------------------------------
test/couchdb/couch_util_tests.erl | 44 +++++++++++++++++++
test/etap/040-util.t | 80 ----------------------------------
2 files changed, 44 insertions(+), 80 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb/blob/ffc2362f/test/couchdb/couch_util_tests.erl
----------------------------------------------------------------------
diff --git a/test/couchdb/couch_util_tests.erl b/test/couchdb/couch_util_tests.erl
index 5152857..53e53c6 100644
--- a/test/couchdb/couch_util_tests.erl
+++ b/test/couchdb/couch_util_tests.erl
@@ -55,3 +55,47 @@ should_collate_ascii() ->
should_collate_non_ascii() ->
?_assertEqual(-1, couch_util:collate(<<"A">>, <<"aa">>)).
+
+to_existed_atom_test() ->
+ ?assert(couch_util:to_existing_atom(true)),
+ ?assertMatch(foo, couch_util:to_existing_atom(<<"foo">>)),
+ ?assertMatch(foobarbaz, couch_util:to_existing_atom("foobarbaz")).
+
+implode_test() ->
+ ?assertEqual([1, 38, 2, 38, 3], couch_util:implode([1, 2, 3], "&")).
+
+trim_test() ->
+ lists:map(fun(S) -> ?assertEqual("foo", couch_util:trim(S)) end,
+ [" foo", "foo ", "\tfoo", " foo ", "foo\t", "foo\n", "\nfoo"]).
+
+abs_pathname_test() ->
+ {ok, Cwd} = file:get_cwd(),
+ ?assertEqual(Cwd ++ "/foo", couch_util:abs_pathname("./foo")).
+
+flush_test() ->
+ ?assertNot(couch_util:should_flush()),
+ AcquireMem = fun() ->
+ _IntsToAGazillion = lists:seq(1, 200000),
+ _LotsOfData = lists:map(fun(_) -> <<"foobar">> end,
+ lists:seq(1, 500000)),
+ _BigBin = list_to_binary(_LotsOfData),
+
+ %% Allocation 200K tuples puts us above the memory threshold
+ %% Originally, there should be:
+ %% ?assertNot(should_flush())
+ %% however, unlike for etap test, GC collects all allocated bits
+ %% making this conditions fail. So we have to invert the condition
+ %% since GC works, cleans the memory and everything is fine.
+ ?assertNot(couch_util:should_flush())
+ end,
+ AcquireMem(),
+
+ %% Checking to flush invokes GC
+ ?assertNot(couch_util:should_flush()).
+
+verify_test() ->
+ ?assert(couch_util:verify("It4Vooya", "It4Vooya")),
+ ?assertNot(couch_util:verify("It4VooyaX", "It4Vooya")),
+ ?assert(couch_util:verify(<<"ahBase3r">>, <<"ahBase3r">>)),
+ ?assertNot(couch_util:verify(<<"ahBase3rX">>, <<"ahBase3r">>)),
+ ?assertNot(couch_util:verify(nil, <<"ahBase3r">>)).
http://git-wip-us.apache.org/repos/asf/couchdb/blob/ffc2362f/test/etap/040-util.t
----------------------------------------------------------------------
diff --git a/test/etap/040-util.t b/test/etap/040-util.t
deleted file mode 100755
index d57a32e..0000000
--- a/test/etap/040-util.t
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/env escript
-%% -*- erlang -*-
-
-% 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.
-
-main(_) ->
- test_util:init_code_path(),
- application:start(crypto),
-
- etap:plan(14),
- case (catch test()) of
- ok ->
- etap:end_tests();
- Other ->
- etap:diag(io_lib:format("Test died abnormally: ~p", [Other])),
- etap:bail(Other)
- end,
- ok.
-
-test() ->
- % to_existing_atom
- etap:is(true, couch_util:to_existing_atom(true), "An atom is an atom."),
- etap:is(foo, couch_util:to_existing_atom(<<"foo">>),
- "A binary foo is the atom foo."),
- etap:is(foobarbaz, couch_util:to_existing_atom("foobarbaz"),
- "A list of atoms is one munged atom."),
-
- % implode
- etap:is([1, 38, 2, 38, 3], couch_util:implode([1,2,3],"&"),
- "use & as separator in list."),
-
- % trim
- Strings = [" foo", "foo ", "\tfoo", " foo ", "foo\t", "foo\n", "\nfoo"],
- etap:ok(lists:all(fun(S) -> couch_util:trim(S) == "foo" end, Strings),
- "everything here trimmed should be foo."),
-
- % abs_pathname
- {ok, Cwd} = file:get_cwd(),
- etap:is(Cwd ++ "/foo", couch_util:abs_pathname("./foo"),
- "foo is in this directory."),
-
- % should_flush
- etap:ok(not couch_util:should_flush(),
- "Not using enough memory to flush."),
- AcquireMem = fun() ->
- _IntsToAGazillion = lists:seq(1, 200000),
- _LotsOfData = lists:map(
- fun(Int) -> {Int, <<"foobar">>} end,
- lists:seq(1, 500000)),
- etap:ok(couch_util:should_flush(),
- "Allocation 200K tuples puts us above the memory threshold.")
- end,
- AcquireMem(),
-
- etap:ok(not couch_util:should_flush(),
- "Checking to flush invokes GC."),
-
- % verify
- etap:is(true, couch_util:verify("It4Vooya", "It4Vooya"),
- "String comparison."),
- etap:is(false, couch_util:verify("It4VooyaX", "It4Vooya"),
- "String comparison (unequal lengths)."),
- etap:is(true, couch_util:verify(<<"ahBase3r">>, <<"ahBase3r">>),
- "Binary comparison."),
- etap:is(false, couch_util:verify(<<"ahBase3rX">>, <<"ahBase3r">>),
- "Binary comparison (unequal lengths)."),
- etap:is(false, couch_util:verify(nil, <<"ahBase3r">>),
- "Binary comparison with atom."),
-
- ok.