From eafb9dfa301173df8aa0c92387c8fdab48ff6d48 Mon Sep 17 00:00:00 2001 From: Michael Klishin Date: Fri, 11 May 2018 22:58:59 -0500 Subject: [PATCH 1/2] Tests for priority validation Part of rabbitmq/rabbitmq-server#1590. [#157380396] --- .../client/test/server/PriorityQueues.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/test/java/com/rabbitmq/client/test/server/PriorityQueues.java b/src/test/java/com/rabbitmq/client/test/server/PriorityQueues.java index af16b2135c..a8687a5108 100644 --- a/src/test/java/com/rabbitmq/client/test/server/PriorityQueues.java +++ b/src/test/java/com/rabbitmq/client/test/server/PriorityQueues.java @@ -48,6 +48,40 @@ public class PriorityQueues extends BrokerTestCase { channel.queueDelete(q); } + @Test public void negativeMaxPriority() throws IOException, TimeoutException, InterruptedException { + String q = "with-minus-10-priorities"; + int n = -10; + try { + channel.queueDeclare(q, true, false, false, argsWithPriorities(n)); + } catch (IOException ioe) { + checkShutdownSignal(AMQP.PRECONDITION_FAILED, ioe); + } + } + + @Test public void excessiveMaxPriority() throws IOException, TimeoutException, InterruptedException { + String q = "with-260-priorities"; + int n = 260; + try { + channel.queueDeclare(q, true, false, false, argsWithPriorities(n)); + } catch (IOException ioe) { + checkShutdownSignal(AMQP.PRECONDITION_FAILED, ioe); + } + } + + @Test public void maxAllowedPriority() throws IOException, TimeoutException, InterruptedException { + String q = "with-255-priorities"; + int n = 255; + channel.queueDeclare(q, true, false, false, argsWithPriorities(n)); + publishWithPriorities(q, n); + + List xs = prioritiesOfEnqueuedMessages(q, n); + assertEquals(Integer.valueOf(255), xs.get(0)); + assertEquals(Integer.valueOf(254), xs.get(1)); + assertEquals(Integer.valueOf(253), xs.get(2)); + + channel.queueDelete(q); + } + private List prioritiesOfEnqueuedMessages(String q, int n) throws InterruptedException, IOException { final List xs = new ArrayList(); final CountDownLatch latch = new CountDownLatch(n); From ee0ff2331115f03333ed34f5419389bac5198bc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnaud=20Cogolu=C3=A8gnes?= Date: Tue, 15 May 2018 15:53:52 +0200 Subject: [PATCH 2/2] Fail test if exception not thrown on priority queue creation Part of rabbitmq/rabbitmq-server#1590. [#157380396] --- .../java/com/rabbitmq/client/test/server/PriorityQueues.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/java/com/rabbitmq/client/test/server/PriorityQueues.java b/src/test/java/com/rabbitmq/client/test/server/PriorityQueues.java index a8687a5108..ad1629bd62 100644 --- a/src/test/java/com/rabbitmq/client/test/server/PriorityQueues.java +++ b/src/test/java/com/rabbitmq/client/test/server/PriorityQueues.java @@ -16,6 +16,7 @@ package com.rabbitmq.client.test.server; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; import java.io.IOException; import java.util.ArrayList; @@ -53,6 +54,7 @@ public class PriorityQueues extends BrokerTestCase { int n = -10; try { channel.queueDeclare(q, true, false, false, argsWithPriorities(n)); + fail("Negative priority, the queue creation should have failed"); } catch (IOException ioe) { checkShutdownSignal(AMQP.PRECONDITION_FAILED, ioe); } @@ -63,6 +65,7 @@ public class PriorityQueues extends BrokerTestCase { int n = 260; try { channel.queueDeclare(q, true, false, false, argsWithPriorities(n)); + fail("Priority too high (> 255), the queue creation should have failed"); } catch (IOException ioe) { checkShutdownSignal(AMQP.PRECONDITION_FAILED, ioe); }