diff options
author | Tim Watson <tim@rabbitmq.com> | 2013-12-19 12:39:20 +0000 |
---|---|---|
committer | Tim Watson <tim@rabbitmq.com> | 2013-12-19 12:39:20 +0000 |
commit | 4a2ce63da3e7b8fe22d073cb9fcfb9a4ae0cc9e6 (patch) | |
tree | 1e68bfe624ece17213cf41623219247b57e95375 | |
parent | 7f20df880f7c776bb78d04ad5e1c1bc548d7e36f (diff) | |
download | rabbitmq-server-4a2ce63da3e7b8fe22d073cb9fcfb9a4ae0cc9e6.tar.gz |
Tidy of specs and further re-working of tests
-rw-r--r-- | src/rabbit_amqqueue.erl | 2 | ||||
-rw-r--r-- | src/rabbit_amqqueue_process.erl | 2 | ||||
-rw-r--r-- | src/rabbit_backing_queue.erl | 11 | ||||
-rw-r--r-- | src/rabbit_queue_index.erl | 3 | ||||
-rw-r--r-- | src/rabbit_tests.erl | 6 |
5 files changed, 12 insertions, 12 deletions
diff --git a/src/rabbit_amqqueue.erl b/src/rabbit_amqqueue.erl index f611573b..146ac776 100644 --- a/src/rabbit_amqqueue.erl +++ b/src/rabbit_amqqueue.erl @@ -117,7 +117,7 @@ (rabbit_types:amqqueue()) -> [{pid(), rabbit_types:ctag(), boolean(), rabbit_framing:amqp_table()}]). --spec(queue_name_to_dir_name/1 :: (rabbit_types:amqqueue()) -> string()). +-spec(queue_name_to_dir_name/1 :: (rabbit_types:r('queue')) -> string()). -spec(consumer_info_keys/0 :: () -> rabbit_types:info_keys()). -spec(consumers_all/1 :: (rabbit_types:vhost()) diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl index 3af2993e..4c4ebb25 100644 --- a/src/rabbit_amqqueue_process.erl +++ b/src/rabbit_amqqueue_process.erl @@ -226,7 +226,7 @@ recovery_status(new) -> recovery_status({Recover, _}) -> {true, Recover}. -matches(new, Q1, Q2) -> +matches(false, Q1, Q2) -> %% i.e. not policy Q1#amqqueue.name =:= Q2#amqqueue.name andalso Q1#amqqueue.durable =:= Q2#amqqueue.durable andalso diff --git a/src/rabbit_backing_queue.erl b/src/rabbit_backing_queue.erl index 603c34a9..9943d732 100644 --- a/src/rabbit_backing_queue.erl +++ b/src/rabbit_backing_queue.erl @@ -27,8 +27,8 @@ ('empty' | {rabbit_types:basic_message(), boolean(), Ack})). -type(drop_result(Ack) :: ('empty' | {rabbit_types:msg_id(), Ack})). --type(recovery_terms() :: [{file:filename(), [term()]}]). --type(attempt_recovery() :: {boolean(), recovery_terms()}). +-type(recovery_terms() :: [term()] | 'non_clean_shutdown'). +-type(recovery_info() :: 'new' | {pid(), recovery_terms()}). -type(purged_msg_count() :: non_neg_integer()). -type(async_callback() :: fun ((atom(), fun ((atom(), state()) -> state())) -> 'ok')). @@ -52,15 +52,16 @@ %% %% Takes %% 1. the amqqueue record -%% 2. a boolean indicating whether the queue is an existing queue that -%% should be recovered +%% 2. a term indicating whether the queue is an existing queue that +%% should be recovered or not, possibly containing recovery terms +%% to be used in the recovery process %% 3. an asynchronous callback which accepts a function of type %% backing-queue-state to backing-queue-state. This callback %% function can be safely invoked from any process, which makes it %% useful for passing messages back into the backing queue, %% especially as the backing queue does not have control of its own %% mailbox. --callback init(rabbit_types:amqqueue(), attempt_recovery(), +-callback init(rabbit_types:amqqueue(), recovery_info(), async_callback()) -> state(). %% Called on queue shutdown when queue isn't being deleted. diff --git a/src/rabbit_queue_index.erl b/src/rabbit_queue_index.erl index 95cb9d97..03c9db50 100644 --- a/src/rabbit_queue_index.erl +++ b/src/rabbit_queue_index.erl @@ -221,7 +221,8 @@ -spec(next_segment_boundary/1 :: (seq_id()) -> seq_id()). -spec(bounds/1 :: (qistate()) -> {non_neg_integer(), non_neg_integer(), qistate()}). --spec(recover/1 :: ([rabbit_amqqueue:name()]) -> {[[any()]], {walker(A), A}}). +-spec(recover/1 :: ([rabbit_amqqueue:name()]) -> + {[{file:filename(), [any()]}], {walker(A), A}}). -spec(scan/3 :: (file:filename(), fun ((seq_id(), rabbit_types:msg_id(), diff --git a/src/rabbit_tests.erl b/src/rabbit_tests.erl index 38af6dd5..bb923440 100644 --- a/src/rabbit_tests.erl +++ b/src/rabbit_tests.erl @@ -2129,12 +2129,10 @@ test_queue() -> init_test_queue() -> TestQueue = test_queue(), - %% TODO: shutdown_terms is no longer relevant - rework this test case - Terms = rabbit_queue_index:shutdown_terms(TestQueue), - PRef = proplists:get_value(persistent_ref, Terms, rabbit_guid:gen()), + PRef = rabbit_guid:gen(), PersistentClient = msg_store_client_init(?PERSISTENT_MSG_STORE, PRef), Res = rabbit_queue_index:recover( - TestQueue, {clean_shutdown, Terms}, false, + TestQueue, {clean_shutdown, []}, false, fun (MsgId) -> rabbit_msg_store:contains(MsgId, PersistentClient) end, |