Skip to content

Commit 989cf8f

Browse files
author
Rob Harrop
committed
Merge with default
2 parents c4ad41b + a538402 commit 989cf8f

File tree

5 files changed

+91
-18
lines changed

5 files changed

+91
-18
lines changed

test/src/com/rabbitmq/client/test/functional/UnexpectedFrames.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,12 @@ private void expectUnexpectedFrameError(Confuser confuser)
145145
//NB: the frame confuser relies on the encoding of the
146146
//method field to be at least 8 bytes long
147147
channel.basicPublish("", "routing key", null, "Hello".getBytes());
148+
// TODO remove when bug 24086 is fixed.
149+
try {
150+
Thread.sleep(100);
151+
} catch (InterruptedException e) {
152+
e.printStackTrace();
153+
}
148154
expectError(AMQP.UNEXPECTED_FRAME);
149155
}
150156

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.rabbitmq.client.test.server;
2+
3+
import com.rabbitmq.client.GetResponse;
4+
import com.rabbitmq.client.test.BrokerTestCase;
5+
import com.rabbitmq.tools.Host;
6+
7+
import java.io.IOException;
8+
import java.util.List;
9+
import java.util.Map;
10+
11+
public class Firehose extends BrokerTestCase {
12+
private String q;
13+
private String firehose;
14+
15+
@Override
16+
protected void createResources() throws IOException {
17+
super.createResources();
18+
channel.exchangeDeclare("trace", "fanout", false, true, null);
19+
channel.exchangeDeclare("test", "fanout", false, true, null);
20+
q = channel.queueDeclare().getQueue();
21+
firehose = channel.queueDeclare().getQueue();
22+
channel.queueBind(q, "test", "");
23+
channel.queueBind(firehose, "trace", "");
24+
}
25+
26+
public void testFirehose() throws IOException {
27+
publishGet("not traced");
28+
enable();
29+
GetResponse msg = publishGet("traced");
30+
disable();
31+
publishGet("not traced");
32+
33+
GetResponse publish = basicGet(firehose);
34+
GetResponse deliver = basicGet(firehose);
35+
36+
assertNotNull(publish);
37+
assertNotNull(deliver);
38+
assertDelivered(firehose, 0);
39+
40+
// We don't test everything, that would be a bit OTT
41+
checkHeaders(publish.getProps().getHeaders());
42+
43+
Map<String,Object> delHeaders = deliver.getProps().getHeaders();
44+
checkHeaders(delHeaders);
45+
assertNotNull(delHeaders.get("redelivered"));
46+
47+
assertEquals(msg.getBody().length, publish.getBody().length);
48+
assertEquals(msg.getBody().length, deliver.getBody().length);
49+
}
50+
51+
private GetResponse publishGet(String key) throws IOException {
52+
basicPublishVolatile("test", key);
53+
return basicGet(q);
54+
}
55+
56+
private void checkHeaders(Map<String, Object> pubHeaders) {
57+
assertEquals("test", pubHeaders.get("exchange_name").toString());
58+
List<Object> routing_keys = (List<Object>) pubHeaders.get("routing_keys");
59+
assertEquals("traced", routing_keys.get(0).toString());
60+
}
61+
62+
private void enable() throws IOException {
63+
Host.rabbitmqctl("set_env trace_exchanges '[{<<\"/\">>, <<\"trace\">>}]'");
64+
}
65+
66+
private void disable() throws IOException {
67+
Host.rabbitmqctl("unset_env trace_exchanges");
68+
}
69+
}

test/src/com/rabbitmq/client/test/server/Permissions.java

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -65,28 +65,21 @@ protected void tearDown()
6565
protected void addRestrictedAccount()
6666
throws IOException
6767
{
68-
runCtl("add_user test test");
69-
runCtl("add_user testadmin test");
70-
runCtl("add_vhost /test");
71-
runCtl("set_permissions -p /test test configure write read");
72-
runCtl("set_permissions -p /test testadmin \".*\" \".*\" \".*\"");
68+
Host.rabbitmqctl("add_user test test");
69+
Host.rabbitmqctl("add_user testadmin test");
70+
Host.rabbitmqctl("add_vhost /test");
71+
Host.rabbitmqctl("set_permissions -p /test test configure write read");
72+
Host.rabbitmqctl("set_permissions -p /test testadmin \".*\" \".*\" \".*\"");
7373
}
7474

7575
protected void deleteRestrictedAccount()
7676
throws IOException
7777
{
78-
runCtl("clear_permissions -p /test testadmin");
79-
runCtl("clear_permissions -p /test test");
80-
runCtl("delete_vhost /test");
81-
runCtl("delete_user testadmin");
82-
runCtl("delete_user test");
83-
}
84-
85-
protected void runCtl(String command)
86-
throws IOException
87-
{
88-
Host.executeCommand("../rabbitmq-server/scripts/rabbitmqctl " +
89-
command);
78+
Host.rabbitmqctl("clear_permissions -p /test testadmin");
79+
Host.rabbitmqctl("clear_permissions -p /test test");
80+
Host.rabbitmqctl("delete_vhost /test");
81+
Host.rabbitmqctl("delete_user testadmin");
82+
Host.rabbitmqctl("delete_user test");
9083
}
9184

9285
protected void createResources()
@@ -241,7 +234,7 @@ public void testAltExchConfiguration()
241234
public void testNoAccess()
242235
throws IOException, InterruptedException
243236
{
244-
runCtl("set_permissions -p /test test \"\" \"\" \"\"");
237+
Host.rabbitmqctl("set_permissions -p /test test \"\" \"\" \"\"");
245238
Thread.sleep(2000);
246239

247240
expectExceptionRun(AMQP.ACCESS_REFUSED, new WithName() {

test/src/com/rabbitmq/client/test/server/ServerTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public static TestSuite suite() {
3030
suite.addTestSuite(AlternateExchangeEquivalence.class);
3131
suite.addTestSuite(MemoryAlarms.class);
3232
suite.addTest(PersisterRestartTests.suite());
33+
suite.addTestSuite(Firehose.class);
3334
return suite;
3435
}
3536
}

test/src/com/rabbitmq/tools/Host.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,8 @@ public static void executeCommand(String command)
6868
"\nstderr:\n" + stderr + "\n");
6969
}
7070
}
71+
72+
public static void rabbitmqctl(String command) throws IOException {
73+
executeCommand("../rabbitmq-server/scripts/rabbitmqctl " + command);
74+
}
7175
}

0 commit comments

Comments
 (0)