summaryrefslogtreecommitdiff
path: root/test/src
diff options
context:
space:
mode:
authorAlvaro Videla <videlalvaro@gmail.com>2015-08-25 18:30:31 +0200
committerAlvaro Videla <videlalvaro@gmail.com>2015-08-27 13:00:31 +0200
commit58e5b3848df61a1e804a01a359b51ee7650fc9dd (patch)
tree68d13cd5a819748f581663519f451e5a1b52c12e /test/src
parentb61c80d1d75d162b8fd9e2958f03bd5b4ad96b82 (diff)
downloadrabbitmq-server-git-58e5b3848df61a1e804a01a359b51ee7650fc9dd.tar.gz
Makes CREDIT_DISC_BOUND and IO_BATCH_SIZE configurable
Fixes #284
Diffstat (limited to 'test/src')
-rw-r--r--test/src/on_disk_store_tunable_parameter_validation_test.erl47
-rw-r--r--test/src/rabbit_tests.erl1
2 files changed, 48 insertions, 0 deletions
diff --git a/test/src/on_disk_store_tunable_parameter_validation_test.erl b/test/src/on_disk_store_tunable_parameter_validation_test.erl
new file mode 100644
index 0000000000..9db5425e6d
--- /dev/null
+++ b/test/src/on_disk_store_tunable_parameter_validation_test.erl
@@ -0,0 +1,47 @@
+%% 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-2015 Pivotal Software, Inc. All rights reserved.
+%%
+
+-module(on_disk_store_tunable_parameter_validation_test).
+
+-include("rabbit.hrl").
+
+-export([test_msg_store_parameter_validation/0]).
+
+-define(T(Fun, Args), (catch apply(rabbit, Fun, Args))).
+
+test_msg_store_parameter_validation() ->
+ %% make sure it works with default values
+ ok = ?T(validate_msg_store_io_batch_size_and_credit_disc_bound, [?CREDIT_DISC_BOUND, ?IO_BATCH_SIZE]),
+
+ %% IO_BATCH_SIZE must be greater than CREDIT_DISC_BOUND initial credit
+ ok = ?T(validate_msg_store_io_batch_size_and_credit_disc_bound, [{2000, 500}, 3000]),
+ {error, _} = ?T(validate_msg_store_io_batch_size_and_credit_disc_bound, [{2000, 500}, 1500]),
+
+ %% All values must be integers
+ {error, _} = ?T(validate_msg_store_io_batch_size_and_credit_disc_bound, [{2000, 500}, "1500"]),
+ {error, _} = ?T(validate_msg_store_io_batch_size_and_credit_disc_bound, [{"2000", 500}, abc]),
+ {error, _} = ?T(validate_msg_store_io_batch_size_and_credit_disc_bound, [{2000, "500"}, 2048]),
+
+ %% CREDIT_DISC_BOUND must be a tuple
+ {error, _} = ?T(validate_msg_store_io_batch_size_and_credit_disc_bound, [[2000, 500], 1500]),
+ {error, _} = ?T(validate_msg_store_io_batch_size_and_credit_disc_bound, [2000, 1500]),
+
+ %% config values can't be smaller than default values
+ {error, _} = ?T(validate_msg_store_io_batch_size_and_credit_disc_bound, [{1999, 500}, 2048]),
+ {error, _} = ?T(validate_msg_store_io_batch_size_and_credit_disc_bound, [{2000, 499}, 2048]),
+ {error, _} = ?T(validate_msg_store_io_batch_size_and_credit_disc_bound, [{2000, 500}, 2047]),
+
+ passed.
diff --git a/test/src/rabbit_tests.erl b/test/src/rabbit_tests.erl
index e45ec82500..39a276f102 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 = on_disk_store_tunable_parameter_validation_test:test_msg_store_parameter_validation(),
passed.