diff options
Diffstat (limited to 'src/couch/test/eunit/couch_uuids_tests.erl')
-rw-r--r-- | src/couch/test/eunit/couch_uuids_tests.erl | 125 |
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)). |