diff options
| author | Matthew Sackman <matthew@rabbitmq.com> | 2010-06-21 18:05:49 +0100 |
|---|---|---|
| committer | Matthew Sackman <matthew@rabbitmq.com> | 2010-06-21 18:05:49 +0100 |
| commit | 36661f2e27f44a9c08fdaf07dc1225297458f191 (patch) | |
| tree | 42e6e83d6f847d0c3c750aad27d9af2cbb5b4043 | |
| parent | c7af8e11b27a82187b8525fa441e9be42873469b (diff) | |
| download | rabbitmq-server-git-36661f2e27f44a9c08fdaf07dc1225297458f191.tar.gz | |
Improving test coverage of VQ
| -rw-r--r-- | src/rabbit_tests.erl | 16 | ||||
| -rw-r--r-- | src/rabbit_variable_queue.erl | 8 |
2 files changed, 15 insertions, 9 deletions
diff --git a/src/rabbit_tests.erl b/src/rabbit_tests.erl index c6c62c0685..13aeb85188 100644 --- a/src/rabbit_tests.erl +++ b/src/rabbit_tests.erl @@ -1871,7 +1871,17 @@ test_queue_recover() -> ok = supervisor:terminate_child(rabbit_sup, rabbit_amqqueue_sup), ok = supervisor:delete_child(rabbit_sup, rabbit_amqqueue_sup), ok = rabbit_amqqueue:start(), - {ok, Count} = rabbit_amqqueue:with_or_die( - QName, - fun (Q1) -> rabbit_amqqueue:delete(Q1, false, false) end), + rabbit_amqqueue:with_or_die( + QName, + fun (Q1 = #amqqueue { pid = QPid1 }) -> + CountMinusOne = Count - 1, + {ok, CountMinusOne, {QName, QPid1, _AckTag, true, _Msg}} = + rabbit_amqqueue:basic_get(Q1, self(), false), + exit(QPid1, shutdown), + VQ1 = rabbit_variable_queue:init(QName, true, true), + {{_Msg1, true, _AckTag1, CountMinusOne}, VQ2} = + rabbit_variable_queue:fetch(true, VQ1), + _VQ3 = rabbit_variable_queue:delete_and_terminate(VQ2), + rabbit_amqqueue:internal_delete(QName) + end), passed. diff --git a/src/rabbit_variable_queue.erl b/src/rabbit_variable_queue.erl index fca0e80ac9..ff2d57afcd 100644 --- a/src/rabbit_variable_queue.erl +++ b/src/rabbit_variable_queue.erl @@ -840,12 +840,8 @@ permitted_ram_index_count(#vqstate { len = Len, q2 = Q2, q3 = Q3, delta = #delta { count = DeltaCount } }) -> - AlphaBetaLen = Len - DeltaCount, - case AlphaBetaLen == 0 of - true -> infinity; - false -> BetaLen = bpqueue:len(Q2) + bpqueue:len(Q3), - BetaLen - trunc(BetaLen * BetaLen / AlphaBetaLen) - end. + BetaLen = bpqueue:len(Q2) + bpqueue:len(Q3), + BetaLen - trunc(BetaLen * BetaLen / (Len - DeltaCount)). should_force_index_to_disk(State = #vqstate { ram_index_count = RamIndexCount }) -> |
