Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 82 lines (70 sloc) 2.787 kb
#!/usr/bin/env escript
%% -*- erlang -*-
%%! -smp enable
% 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.
Jump to Line
Something went wrong with that request. Please try again.