summaryrefslogtreecommitdiff
path: root/test/src
diff options
context:
space:
mode:
authorAlvaro Videla <videlalvaro@gmail.com>2015-05-05 18:02:32 +0200
committerAlvaro Videla <videlalvaro@gmail.com>2015-05-05 18:02:32 +0200
commitb9c2c44f9a87d0da42fd2a03b6935dfebaddeaef (patch)
tree00303958062d1cbc0901730f2cbe09384ef1443a /test/src
parenta1afa24303378b785f69856796611f056ce726b0 (diff)
downloadrabbitmq-server-git-b9c2c44f9a87d0da42fd2a03b6935dfebaddeaef.tar.gz
Allows credit flow Credits to be set via configuration
Fixes rabbitmq/rabbitmq-server#143
Diffstat (limited to 'test/src')
-rw-r--r--test/src/credit_flow_test.erl51
-rw-r--r--test/src/rabbit_tests.erl1
2 files changed, 52 insertions, 0 deletions
diff --git a/test/src/credit_flow_test.erl b/test/src/credit_flow_test.erl
new file mode 100644
index 0000000000..8ef73e0bad
--- /dev/null
+++ b/test/src/credit_flow_test.erl
@@ -0,0 +1,51 @@
+%% The contents of this file are subject to the Mozilla Public License
+%% Version 1.1 (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.mozilla.org/MPL/
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+%% License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% The Original Code is RabbitMQ.
+%%
+%% The Initial Developer of the Original Code is GoPivotal, Inc.
+%% Copyright (c) 2011-2014 GoPivotal, Inc. All rights reserved.
+%%
+
+-module(credit_flow_test).
+
+-export([test_credit_flow_settings/0]).
+
+test_credit_flow_settings() ->
+ %% default values
+ passed = test_proc(200, 50),
+
+ application:set_env(rabbit, credit_flow_initial_credit, 100),
+ application:set_env(rabbit, credit_flow_more_credit_after, 20),
+ passed = test_proc(100, 20),
+
+ application:unset_env(rabbit, credit_flow_initial_credit),
+ application:unset_env(rabbit, credit_flow_more_credit_after),
+ % back to defaults
+ passed = test_proc(200, 50),
+ passed.
+
+test_proc(InitialCredit, MoreCreditAfter) ->
+ Pid = spawn(fun dummy/0),
+ Pid ! {credit, self()},
+ {InitialCredit, MoreCreditAfter} =
+ receive
+ {credit, Val} -> Val
+ end,
+ passed.
+
+dummy() ->
+ credit_flow:send(self()),
+ receive
+ {credit, From} ->
+ From ! {credit, get(credit_flow_default_credit)};
+ _ ->
+ dummy()
+ end.
diff --git a/test/src/rabbit_tests.erl b/test/src/rabbit_tests.erl
index ab565d1988..3cad6e5938 100644
--- a/test/src/rabbit_tests.erl
+++ b/test/src/rabbit_tests.erl
@@ -87,6 +87,7 @@ all_tests0() ->
end),
passed = test_configurable_server_properties(),
passed = vm_memory_monitor_tests:all_tests(),
+ passed = credit_flow_test:test_credit_flow_settings(),
passed.
do_if_secondary_node(Up, Down) ->