summaryrefslogtreecommitdiff
path: root/src/couch/test/eunit/couch_flags_config_tests.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/couch/test/eunit/couch_flags_config_tests.erl')
-rw-r--r--src/couch/test/eunit/couch_flags_config_tests.erl139
1 files changed, 85 insertions, 54 deletions
diff --git a/src/couch/test/eunit/couch_flags_config_tests.erl b/src/couch/test/eunit/couch_flags_config_tests.erl
index 6fe2d5860..05707718b 100644
--- a/src/couch/test/eunit/couch_flags_config_tests.erl
+++ b/src/couch/test/eunit/couch_flags_config_tests.erl
@@ -19,9 +19,9 @@ couch_flags_config_test_() ->
setup,
fun setup/0,
fun teardown/1,
- [fun all_combinations_return_same_result/0]
- ++ latest_overide_wins()
- ++ [
+ [fun all_combinations_return_same_result/0] ++
+ latest_overide_wins() ++
+ [
{"rules_are_sorted", fun rules_are_sorted/0}
]
}
@@ -29,50 +29,72 @@ couch_flags_config_test_() ->
all_combinations_return_same_result() ->
Config = [
- {"foo, bar||*", "true"},
- {"baz, qux||*", "false"},
- {"baz||shards/test*", "true"},
- {"baz||shards/blacklist*", "false"},
- {"bar||shards/test*", "false"},
- {"bar||shards/test/blacklist*", "true"}
+ {"foo, bar||*", "true"},
+ {"baz, qux||*", "false"},
+ {"baz||shards/test*", "true"},
+ {"baz||shards/blacklist*", "false"},
+ {"bar||shards/test*", "false"},
+ {"bar||shards/test/blacklist*", "true"}
],
Expected = [
- {{<<"shards/test/blacklist*">>},{<<"shards/test/blacklist*">>,22,[bar, baz, foo]}},
- {{<<"shards/test*">>},{<<"shards/test*">>, 12, [baz, foo]}},
- {{<<"shards/blacklist*">>},{<<"shards/blacklist*">>, 17, [bar, foo]}},
- {{<<"*">>},{<<"*">>, 1, [bar, foo]}}
+ {{<<"shards/test/blacklist*">>}, {<<"shards/test/blacklist*">>, 22, [bar, baz, foo]}},
+ {{<<"shards/test*">>}, {<<"shards/test*">>, 12, [baz, foo]}},
+ {{<<"shards/blacklist*">>}, {<<"shards/blacklist*">>, 17, [bar, foo]}},
+ {{<<"*">>}, {<<"*">>, 1, [bar, foo]}}
],
Combinations = couch_tests_combinatorics:permutations(Config),
- lists:foreach(fun(Items) ->
- ?assertEqual(Expected, couch_flags_config:data(Items))
- end, Combinations).
+ lists:foreach(
+ fun(Items) ->
+ ?assertEqual(Expected, couch_flags_config:data(Items))
+ end,
+ Combinations
+ ).
rules_are_sorted() ->
Expected = [
- {{<<"shards/test/exact">>},{<<"shards/test/exact">>, 17, [baz,flag_bar,flag_foo]}},
- {{<<"shards/test/blacklist*">>},{<<"shards/test/blacklist*">>,22,[flag_foo]}},
- {{<<"shards/test*">>},{<<"shards/test*">>, 12, [baz,flag_bar,flag_foo]}},
- {{<<"shards/exact">>},{<<"shards/exact">>, 12, [flag_bar,flag_foo]}},
- {{<<"shards/blacklist*">>},{<<"shards/blacklist*">>, 17, []}},
- {{<<"*">>},{<<"*">>, 1, [flag_foo]}}
+ {{<<"shards/test/exact">>}, {<<"shards/test/exact">>, 17, [baz, flag_bar, flag_foo]}},
+ {{<<"shards/test/blacklist*">>}, {<<"shards/test/blacklist*">>, 22, [flag_foo]}},
+ {{<<"shards/test*">>}, {<<"shards/test*">>, 12, [baz, flag_bar, flag_foo]}},
+ {{<<"shards/exact">>}, {<<"shards/exact">>, 12, [flag_bar, flag_foo]}},
+ {{<<"shards/blacklist*">>}, {<<"shards/blacklist*">>, 17, []}},
+ {{<<"*">>}, {<<"*">>, 1, [flag_foo]}}
],
?assertEqual(Expected, couch_flags_config:data(test_config())).
latest_overide_wins() ->
Cases = [
- {[
- {"flag||*", "false"}, {"flag||a*", "true"},
- {"flag||ab*", "true"}, {"flag||abc*", "true"}
- ], true},
- {[
- {"flag||*", "true"}, {"flag||a*", "false"},
- {"flag||ab*", "true"}, {"flag||abc*", "false"}
- ], false}
+ {
+ [
+ {"flag||*", "false"},
+ {"flag||a*", "true"},
+ {"flag||ab*", "true"},
+ {"flag||abc*", "true"}
+ ],
+ true
+ },
+ {
+ [
+ {"flag||*", "true"},
+ {"flag||a*", "false"},
+ {"flag||ab*", "true"},
+ {"flag||abc*", "false"}
+ ],
+ false
+ }
],
- [{test_id(Rules, Expected),
- ?_assertEqual(Expected, lists:member(flag,
- flags(hd(couch_flags_config:data(Rules)))))}
- || {Rules, Expected} <- Cases].
+ [
+ {
+ test_id(Rules, Expected),
+ ?_assertEqual(
+ Expected,
+ lists:member(
+ flag,
+ flags(hd(couch_flags_config:data(Rules)))
+ )
+ )
+ }
+ || {Rules, Expected} <- Cases
+ ].
flags({{_Pattern}, {_Pattern, _Size, Flags}}) ->
Flags.
@@ -80,7 +102,6 @@ flags({{_Pattern}, {_Pattern, _Size, Flags}}) ->
test_id(Items, ExpectedResult) ->
lists:flatten(io_lib:format("~p -> ~p", [[P || {P, _} <- Items], ExpectedResult])).
-
test_config() ->
[
{"flag_foo||*", "true"},
@@ -95,22 +116,32 @@ test_config() ->
parse_flags_term_test_() ->
LongBinary = binary:copy(<<"a">>, ?MAX_FLAG_NAME_LENGTH + 1),
- ExpectedError = {error, {"Cannot parse list of tags: ~n~p",
- [{too_long, LongBinary}]}},
- ExpectedUnknownError = {error,{"Cannot parse list of tags: ~n~p",
- [{invalid_flag,<<"dddddddd">>}]}},
- [
- {"empty binary", ?_assertEqual(
- [], couch_flags_config:parse_flags_term(<<>>))},
- {"single flag", ?_assertEqual(
- [fff], couch_flags_config:parse_flags_term(<<"fff">>))},
- {"sorted", ?_assertEqual(
- [aaa,bbb,fff], couch_flags_config:parse_flags_term(<<"fff,aaa,bbb">>))},
- {"whitespace", ?_assertEqual(
- [aaa,bbb,fff], couch_flags_config:parse_flags_term(<<"fff , aaa, bbb ">>))},
- {"error", ?_assertEqual(
- ExpectedError, couch_flags_config:parse_flags_term(LongBinary))},
- {"unknown_flag", ?_assertEqual(
- ExpectedUnknownError, couch_flags_config:parse_flags_term(<<"dddddddd">>))}
- ].
-
+ ExpectedError = {error, {"Cannot parse list of tags: ~n~p", [{too_long, LongBinary}]}},
+ ExpectedUnknownError =
+ {error, {"Cannot parse list of tags: ~n~p", [{invalid_flag, <<"dddddddd">>}]}},
+ [
+ {"empty binary",
+ ?_assertEqual(
+ [], couch_flags_config:parse_flags_term(<<>>)
+ )},
+ {"single flag",
+ ?_assertEqual(
+ [fff], couch_flags_config:parse_flags_term(<<"fff">>)
+ )},
+ {"sorted",
+ ?_assertEqual(
+ [aaa, bbb, fff], couch_flags_config:parse_flags_term(<<"fff,aaa,bbb">>)
+ )},
+ {"whitespace",
+ ?_assertEqual(
+ [aaa, bbb, fff], couch_flags_config:parse_flags_term(<<"fff , aaa, bbb ">>)
+ )},
+ {"error",
+ ?_assertEqual(
+ ExpectedError, couch_flags_config:parse_flags_term(LongBinary)
+ )},
+ {"unknown_flag",
+ ?_assertEqual(
+ ExpectedUnknownError, couch_flags_config:parse_flags_term(<<"dddddddd">>)
+ )}
+ ].