summaryrefslogtreecommitdiff
path: root/src/couch/test/eunit/couch_work_queue_tests.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/couch/test/eunit/couch_work_queue_tests.erl')
-rw-r--r--src/couch/test/eunit/couch_work_queue_tests.erl82
1 files changed, 48 insertions, 34 deletions
diff --git a/src/couch/test/eunit/couch_work_queue_tests.erl b/src/couch/test/eunit/couch_work_queue_tests.erl
index a192230ef..acf0e45dc 100644
--- a/src/couch/test/eunit/couch_work_queue_tests.erl
+++ b/src/couch/test/eunit/couch_work_queue_tests.erl
@@ -16,7 +16,6 @@
-define(TIMEOUT, 100).
-
setup(Opts) ->
{ok, Q} = couch_work_queue:new(Opts),
Producer = spawn_producer(Q),
@@ -33,9 +32,11 @@ setup_max_items_and_size() ->
setup([{max_size, 160}, {max_items, 3}]).
setup_multi_workers() ->
- {Q, Producer, Consumer1} = setup([{max_size, 160},
- {max_items, 3},
- {multi_workers, true}]),
+ {Q, Producer, Consumer1} = setup([
+ {max_size, 160},
+ {max_items, 3},
+ {multi_workers, true}
+ ]),
Consumer2 = spawn_consumer(Q),
Consumer3 = spawn_consumer(Q),
{Q, Producer, [Consumer1, Consumer2, Consumer3]}.
@@ -52,7 +53,6 @@ teardown({Q, Producer, Consumers}) when is_list(Consumers) ->
teardown({Q, Producer, Consumer}) ->
teardown({Q, Producer, [Consumer]}).
-
single_consumer_test_() ->
{
"Single producer and consumer",
@@ -61,7 +61,8 @@ single_consumer_test_() ->
"Queue with 3 max items",
{
foreach,
- fun setup_max_items/0, fun teardown/1,
+ fun setup_max_items/0,
+ fun teardown/1,
single_consumer_max_item_count() ++ common_cases()
}
},
@@ -69,7 +70,8 @@ single_consumer_test_() ->
"Queue with max size of 160 bytes",
{
foreach,
- fun setup_max_size/0, fun teardown/1,
+ fun setup_max_size/0,
+ fun teardown/1,
single_consumer_max_size() ++ common_cases()
}
},
@@ -77,7 +79,8 @@ single_consumer_test_() ->
"Queue with max size of 160 bytes and 3 max items",
{
foreach,
- fun setup_max_items_and_size/0, fun teardown/1,
+ fun setup_max_items_and_size/0,
+ fun teardown/1,
single_consumer_max_items_and_size() ++ common_cases()
}
}
@@ -92,15 +95,15 @@ multiple_consumers_test_() ->
"Queue with max size of 160 bytes and 3 max items",
{
foreach,
- fun setup_multi_workers/0, fun teardown/1,
+ fun setup_multi_workers/0,
+ fun teardown/1,
common_cases() ++ multiple_consumers()
}
-
}
]
}.
-common_cases()->
+common_cases() ->
[
fun should_block_consumer_on_dequeue_from_empty_queue/1,
fun should_consume_right_item/1,
@@ -109,7 +112,7 @@ common_cases()->
fun should_be_closed/1
].
-single_consumer_max_item_count()->
+single_consumer_max_item_count() ->
[
fun should_have_no_items_for_new_queue/1,
fun should_block_producer_on_full_queue_count/1,
@@ -118,7 +121,7 @@ single_consumer_max_item_count()->
fun should_consume_all/1
].
-single_consumer_max_size()->
+single_consumer_max_size() ->
[
fun should_have_zero_size_for_new_queue/1,
fun should_block_producer_on_full_queue_size/1,
@@ -138,7 +141,6 @@ multiple_consumers() ->
fun should_increase_queue_size_on_produce/1
].
-
should_have_no_items_for_new_queue({Q, _, _}) ->
?_assertEqual(0, couch_work_queue:item_count(Q)).
@@ -172,8 +174,10 @@ should_consume_right_item({Q, Producer, Consumers}) when is_list(Consumers) ->
?assertEqual(0, couch_work_queue:item_count(Q)),
?assertEqual(0, couch_work_queue:size(Q)),
- R = [{ping(C), Item}
- || {C, Item} <- lists:zip(Consumers, [Item1, Item2, Item3])],
+ R = [
+ {ping(C), Item}
+ || {C, Item} <- lists:zip(Consumers, [Item1, Item2, Item3])
+ ],
?_assertEqual([{ok, Item1}, {ok, Item2}, {ok, Item3}], R);
should_consume_right_item({Q, Producer, Consumer}) ->
@@ -284,8 +288,10 @@ should_be_closed({Q, _, Consumers}) when is_list(Consumers) ->
ItemsCount = couch_work_queue:item_count(Q),
Size = couch_work_queue:size(Q),
- ?_assertEqual({[closed, closed, closed], closed, closed},
- {LastConsumerItems, ItemsCount, Size});
+ ?_assertEqual(
+ {[closed, closed, closed], closed, closed},
+ {LastConsumerItems, ItemsCount, Size}
+ );
should_be_closed({Q, _, Consumer}) ->
ok = close_queue(Q),
@@ -295,14 +301,19 @@ should_be_closed({Q, _, Consumer}) ->
ItemsCount = couch_work_queue:item_count(Q),
Size = couch_work_queue:size(Q),
- ?_assertEqual({closed, closed, closed},
- {LastConsumerItems, ItemsCount, Size}).
-
+ ?_assertEqual(
+ {closed, closed, closed},
+ {LastConsumerItems, ItemsCount, Size}
+ ).
close_queue(Q) ->
- test_util:stop_sync(Q, fun() ->
- ok = couch_work_queue:close(Q)
- end, ?TIMEOUT).
+ test_util:stop_sync(
+ Q,
+ fun() ->
+ ok = couch_work_queue:close(Q)
+ end,
+ ?TIMEOUT
+ ).
spawn_consumer(Q) ->
Parent = self(),
@@ -365,10 +376,13 @@ produce(Q, Producer, Size, Wait) ->
{item, Ref, Item} ->
Item
after ?TIMEOUT ->
- erlang:error({assertion_failed,
- [{module, ?MODULE},
- {line, ?LINE},
- {reason, "Timeout asking producer to produce an item"}]})
+ erlang:error(
+ {assertion_failed, [
+ {module, ?MODULE},
+ {line, ?LINE},
+ {reason, "Timeout asking producer to produce an item"}
+ ]}
+ )
end.
ping(Pid) ->
@@ -393,10 +407,10 @@ stop(Pid, Name) ->
wait_increment(Q, ItemsCount) ->
test_util:wait(fun() ->
- case couch_work_queue:item_count(Q) > ItemsCount of
- true ->
- ok;
- false ->
- wait
- end
+ case couch_work_queue:item_count(Q) > ItemsCount of
+ true ->
+ ok;
+ false ->
+ wait
+ end
end).