summaryrefslogtreecommitdiff
path: root/src/couch/test/eunit/couch_uuids_tests.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/couch/test/eunit/couch_uuids_tests.erl')
-rw-r--r--src/couch/test/eunit/couch_uuids_tests.erl125
1 files changed, 0 insertions, 125 deletions
diff --git a/src/couch/test/eunit/couch_uuids_tests.erl b/src/couch/test/eunit/couch_uuids_tests.erl
deleted file mode 100644
index 9ca2c8a84..000000000
--- a/src/couch/test/eunit/couch_uuids_tests.erl
+++ /dev/null
@@ -1,125 +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_uuids_tests).
-
--include_lib("couch/include/couch_eunit.hrl").
-
--define(TIMEOUT, 20).
-
-
-setup_all() ->
- test_util:start_applications([config]),
- couch_uuids:start().
-
-
-teardown_all(_) ->
- couch_uuids:stop(),
- test_util:stop_applications([config]).
-
-
-uuids_test_() ->
- {
- setup,
- fun setup_all/0,
- fun teardown_all/1,
- [
- {timeout, ?TIMEOUT, fun default_algorithm/0},
- {timeout, ?TIMEOUT, fun sequential_algorithm/0},
- {timeout, ?TIMEOUT, fun utc_algorithm/0},
- {timeout, ?TIMEOUT, fun utc_id_suffix_algorithm/0}
- ]
- }.
-
-
-default_algorithm() ->
- config:delete("uuids", "algorithm", false),
- check_unique().
-
-
-sequential_algorithm() ->
- config:set("uuids", "algorithm", "sequential", false),
- check_unique(),
- check_increment_monotonically(),
- check_rollover().
-
-
-utc_algorithm() ->
- config:set("uuids", "algorithm", "utc_random", false),
- check_unique(),
- check_increment_monotonically().
-
-
-utc_id_suffix_algorithm() ->
- config:set("uuids", "algorithm", "utc_id", false),
- config:set("uuids", "utc_id_suffix", "bozo", false),
- check_unique(),
- check_increment_monotonically(),
- check_preserve_suffix().
-
-
-check_unique() ->
- %% this one may really runs for too long on slow hosts
- ?assert(test_unique(10000, [couch_uuids:new()])).
-
-
-check_increment_monotonically() ->
- ?assert(couch_uuids:new() < couch_uuids:new()).
-
-
-check_rollover() ->
- UUID = binary_to_list(couch_uuids:new()),
- Prefix = element(1, lists:split(26, UUID)),
- N = gen_until_pref_change(Prefix, 0),
- ?assert(N >= 5000 andalso N =< 11000).
-
-
-check_preserve_suffix() ->
- UUID = binary_to_list(couch_uuids:new()),
- Suffix = get_suffix(UUID),
- ?assert(test_same_suffix(10000, Suffix)).
-
-
-test_unique(0, _) ->
- true;
-test_unique(N, UUIDs) ->
- UUID = couch_uuids:new(),
- ?assertNot(lists:member(UUID, UUIDs)),
- test_unique(N - 1, [UUID| UUIDs]).
-
-
-gen_until_pref_change(_, Count) when Count > 8251 ->
- Count;
-gen_until_pref_change(Prefix, N) ->
- case get_prefix(couch_uuids:new()) of
- Prefix -> gen_until_pref_change(Prefix, N + 1);
- _ -> N
- end.
-
-
-test_same_suffix(0, _) ->
- true;
-test_same_suffix(N, Suffix) ->
- case get_suffix(couch_uuids:new()) of
- Suffix -> test_same_suffix(N - 1, Suffix);
- _ -> false
- end.
-
-
-get_prefix(UUID) ->
- element(1, lists:split(26, binary_to_list(UUID))).
-
-
-get_suffix(UUID) when is_binary(UUID) ->
- get_suffix(binary_to_list(UUID));
-get_suffix(UUID) ->
- element(2, lists:split(14, UUID)).