Commit Graph

285 Commits

Author SHA1 Message Date
Simon MacMullen b14dac68ef Make all these set_parameter tests more readable. 2012-06-11 16:13:15 +01:00
Simon MacMullen 4d0cc84b00 Simple test for federating / unfederating exchanges at runtime. 2012-06-11 15:51:04 +01:00
Simon MacMullen d22cbc616b Get the tests passing again (TODO: write more tests!). This necessitates a bit of rejigging of interfaces (mostly back closer to where it is on default). Note that the validation test is no longer needed :-) 2012-06-08 15:16:40 +01:00
Emile Joubert c99c7da468 Merged bug24695 into default 2012-05-28 17:28:01 +01:00
Simon MacMullen b4bef56044 Don't bother with this tiemout, eunit imposes a timeout on tests anyway and this just provides another way for things to fail when CI is slow. 2012-05-23 14:49:11 +01:00
Simon MacMullen c7e1a46999 Globally raise timeouts since CI is currently running so slowly that even unit tests are timing out. Hey, it worked for management. 2012-05-16 11:20:28 +01:00
Simon MacMullen 40191251a7 Update the tests to work again (and test direct connections too). 2012-04-24 14:12:49 +01:00
Simon MacMullen 7f5e20067e Allow exchanges to point to upstream sets that do not exist, and upstream sets to point to connections that do not exist. And tests to match. 2012-04-11 12:07:04 +01:00
Simon MacMullen 7d297e6004 Test dynamic configuration a bit. 2012-04-10 18:09:56 +01:00
Simon MacMullen c81e107e2c That's obsolete. 2012-04-10 16:05:28 +01:00
Simon MacMullen 065c11bce0 Damnit 2012-04-05 15:56:29 +01:00
Simon MacMullen c03564fc92 That's now a binary 2012-04-05 15:33:00 +01:00
Simon MacMullen a75f498504 No point in testing statically configured exchanges any more 2012-04-05 15:32:43 +01:00
Simon MacMullen fbb3ef1fb3 Switch to configuring tests via the new config mechanism. 2012-04-05 15:31:54 +01:00
Simon MacMullen 8debf06129 Merge in default 2012-03-23 13:45:27 +00:00
Simon MacMullen 2d1573d652 Fix most tests. 2012-03-23 13:05:06 +00:00
Simon MacMullen 90239e86ad Simple test for the legacy case where we connect to an upstream that does not know about the x-federation-upstream exchange. 2012-03-13 16:38:59 +00:00
Simon MacMullen 2e7f278554 Merge in default 2012-02-29 16:26:17 +00:00
Simon MacMullen 0857e29636 Use rabbit_basic:append_table_header. This means we need to lose a test, but that code is now tested byt the DLX tests. 2012-02-27 17:46:27 +00:00
Emile Joubert fb9cdefe12 Merged bug24624 into default 2012-02-06 16:13:36 +00:00
Emile Joubert dd68ca5fd7 Increase timeout to allow tests to pass 2012-02-03 14:58:09 +00:00
Simon MacMullen f566c42857 Move rabbit_misc:nodeparts/1 and rabbit_misc:makenode/1 into rabbit_nodes 2012-02-02 14:36:16 +00:00
Emile Joubert 6d297855d5 Update copyright 2012 2012-02-02 14:07:58 +00:00
Simon MacMullen 4444dfe094 Merge from default 2011-11-17 12:00:57 +00:00
Simon MacMullen 38fb367086 Remove debugging aid added in 9bbaae483028. 2011-10-10 15:30:02 +01:00
Simon MacMullen 7dc45636fc This is failing sometimes in CI, but I can't replicate it here, so let's get some more information out. 2011-10-07 12:02:34 +01:00
Rob Harrop c82a26f0b5 Merge bug24095 into default 2011-08-24 11:36:06 +01:00
Simon MacMullen 74cc517eac This is quite lame, but it does reduce the likelihood of random failures here. On my machine at least :) 2011-08-19 14:13:21 +01:00
Simon MacMullen c549b5df38 Update to use new rabbitmqctl wait form. Unfortunately this is fiddly because:
* Getting the pid file from $$ in the script isn't going to work if we use
  erl -detached since, err, it'll start a new process.

* If we background the process then eunit's ?assertCmd macro seems to just
  hang. I tried redirecting stdout and stderr, setsid and nohup. Nothing
  worked.

* So we have to use os:cmd rather than ?assertCmd. And that doesn't let you
  get the status code out! So we have to work around that too...
2011-07-20 16:55:30 +01:00
Simon MacMullen f89ab6043e For each test, check the status is correct after bringing up some exchanges. And fix bugs found as a consequence:
* keypos is needed in our new table declaration
* we should delete status records when deleting exchange
* add upstream_exchange to status to uniquify

Yes, tests are good, aren't they?
2011-07-15 17:40:22 +01:00
Matthias Radestock 7a4344617c merge bug23900 into default 2011-07-11 16:40:38 +01:00
Simon MacMullen 4dacf6d0fd suffix/2. 2011-07-11 14:29:00 +01:00
Simon MacMullen 38779ccf1f Run binding recovery test on hare to work round bug 24256 2011-07-11 14:02:58 +01:00
Simon MacMullen 061ee38430 One of these just timed out on CI, I *think* for no good reason. 2011-07-08 11:36:26 +01:00
Simon MacMullen 6bb7029078 Test scratch space management in binding_recovery_test also. 2011-07-07 16:37:47 +01:00
Simon MacMullen 26d56c4d2b Merge in default 2011-07-07 16:09:30 +01:00
Simon MacMullen e84ba0756f Port 1f66209756c5 to default from bug 24249 2011-07-07 16:07:10 +01:00
Simon MacMullen 246391e11d Test our handling of scratch space. 2011-07-07 15:39:45 +01:00
Simon MacMullen 78f845ecd0 Merge in default 2011-07-07 14:40:20 +01:00
Simon MacMullen 916e3f8bdc Test binding recovery with serialise_events on, since it's hard for rabbitmq-server to do that. 2011-07-06 16:31:34 +01:00
Simon MacMullen dfb2c458e8 Reduce the scope #exchange{}s get to explore. 2011-07-06 14:55:28 +01:00
Simon MacMullen 20d3f0c511 Attempt to make tests more reliable. 2011-06-24 17:27:27 +01:00
Simon MacMullen 45484c82b0 Run tests without pwd sensitivity, thus fix "make test" in the public umbrella. 2011-06-22 17:52:04 +01:00
Simon MacMullen 6f58f6355e We don't need such long waits now. 2011-06-22 12:21:37 +01:00
Simon MacMullen 7e844748cd Reorganise the 100ms delays we use to get round asynchronicity of bindings going upstream. 2011-06-22 12:02:04 +01:00
Matthias Radestock 9698da002d cosmetic 2011-06-21 19:04:39 +01:00
Matthias Radestock a83ae8ba79 cosmetic 2011-06-21 17:46:43 +01:00
Simon MacMullen 6cadc015ba Rename upstream_set argument to upstream-set. 2011-06-21 11:32:45 +01:00
Simon MacMullen 54497b3e0f Test max_hops by building a ring with three brokers. 2011-06-16 17:56:23 +01:00
Simon MacMullen 18fbdfb62e Rename x-forwarding to x-received-from, remove protocol from it. 2011-06-16 13:23:36 +01:00
Simon MacMullen 153be18672 Rejig the configuration to go through an additional layer of indirection so that exchange arguments can plausibly be immutable, and to get rid of the confusing merging.
Also fix the insidious default queue expiry that had been hiding.
2011-06-03 18:09:23 +01:00
Simon MacMullen 04e83ea49a Fix the command-queuing logic. This requires a number of changes:
*  Actually fix the logic: keep track of the next expected
   serial. Queue up commands that come after it, and ignore ones
   before it. Take initial value of the serial in the same tx as
   we execute rabbit_binding:list_for_source.

*  Introduce a function in rabbitmq-server to peek the next value
   of an exchange's serial to support this.

*  Make (un)binding transmission asynchronous, and note it in the
   README. This is the right thing to do, but unfortunately it
   means we need to insert sleep()s all over the place in the
   test suite. Ah well.

*  Make remove_bindings into a single message sent to each link,
   rather than a bunch of (remove_binding)s.

*  Make add_bindings always send a message to each link, even if
   it does nothing, to eat up the serial number.

*  Make the serialisation unit test actually declare exchanges.
2011-06-01 16:38:39 +01:00
Simon MacMullen 4cd0c697e1 Add a (currently stupid) test to ensure we serialise the add / remove bindings calls properly. 2011-05-31 13:51:12 +01:00
Simon MacMullen faff573a89 This is not great, but necessary to run the tests on something other than an Optiplex. Still faster than many other test suites... 2011-05-27 11:57:55 +01:00
Simon MacMullen f6ae916866 Update now that things have been merged to default 2011-05-17 14:44:00 +01:00
Simon MacMullen 87e333be56 Build system changes. 2011-04-12 12:18:42 +01:00
Simon MacMullen a288f25ee1 updating use of amqp_client exit reasons 2011-03-29 17:41:43 +01:00
Simon MacMullen ad8428d9fc This makes tracking down bugs rather easier. 2011-03-23 12:26:14 +00:00
Simon MacMullen 1081f99586 Split up smart_unbind_test and find a way to test that unbinds get sent upstream. 2011-03-23 11:43:43 +00:00
Simon MacMullen 8f5bf686b8 A bit more general and hopefully clearer. 2011-03-23 11:33:24 +00:00
Simon MacMullen 8cb922f1c2 Refactor tests a bit. 2011-03-23 11:11:26 +00:00
Simon MacMullen 11c8fa7b9a The previous commit was buggy because we never added bindings. Add more test to catch that, fix it, and optimise add_binding as well. 2011-03-22 16:35:25 +00:00
Simon MacMullen 3cd4b78949 Rename rabbit_federation_exchange_upstream to rabbit_federation_link. 2011-03-21 11:41:57 +00:00
Simon MacMullen 56bc814d8c Remove URIs from configuration. 2011-03-03 14:13:05 +00:00
Simon MacMullen 693b9b800e Reset bindings on connect. 2011-03-02 13:13:30 +00:00
Simon MacMullen 49e035243d Fix various bugs:
Make supervision more correct
Make shutdown work
Fix durability in tests
2011-03-01 11:01:42 +00:00
Simon MacMullen c3031441b1 Split up such that we have one process per (upstream, downstream) combination. This mostly works, but there's something weird with the supervision hierarchy keeping the Erlang VM alive when rabbit_federation_exchange_upstream is not temporary. 2011-02-28 18:10:01 +00:00
Simon MacMullen 86d41ae23e Create the exchange process at exchange recovery. This means moving the processes / supervisor under the rabbit application, which means making them be able to run in a dumb state when the amqp_client is not yet available, which means splitting code out into a bunch of modules, etc etc. 2011-02-23 16:47:50 +00:00
Simon MacMullen 1cdaeef21f Use rabbitmqctl wait 2011-02-22 17:02:15 +00:00
Simon MacMullen 6a9a6e896e Don't allow binding, unbinding or publishing loops, by the simple expedient of only allowing things to cross one hop. 2011-02-22 16:29:42 +00:00
Simon MacMullen 5f0cd4d884 Add forwarding information in a header. 2011-02-18 16:27:12 +00:00
Simon MacMullen 40b80e9f8a Only transmit unbinds upstream if it's the last with the same {Source, Key, Args}. 2011-02-18 13:40:10 +00:00
Simon MacMullen cdb9c1e20d In multiple_downstreams_test messages can arrive in any order. Deal with that and stop being racy. 2011-02-18 12:51:51 +00:00
Simon MacMullen 45f9aad9f1 Conserve vertical space. 2011-02-18 12:46:31 +00:00
Simon MacMullen 2efd415f87 Delete upstream queues when exchange is deleted. Remove childspec from supervisor when exchange is stopped. 2011-02-18 11:59:20 +00:00
Simon MacMullen 6e4d1f6d81 Validate args 2011-02-17 18:14:06 +00:00
Simon MacMullen a3bcddc176 Delete and recreate upstream queue when creating transient exchange 2011-02-17 17:08:08 +00:00
Simon MacMullen 6c9e11df7c Turns out e2e just works, but let's prove that (and note that we're not completely efficient here, we send all msgs that get routed to the exchanges bound to the federation exchange, regardless of whether they get routed anywhere after that). 2011-02-17 12:49:26 +00:00
Simon MacMullen 5e573553ee Handle the upstream broker going down. 2011-02-15 18:25:21 +00:00
Simon MacMullen c1cf725a5d Grab the port number from URLs, add a test across two brokers. 2011-02-15 14:30:42 +00:00
Simon MacMullen 690eb40534 Revert "readable name" for the time being as it's not unique enough. And add the test that let me find that. 2011-02-15 12:28:35 +00:00
Simon MacMullen 011c19dfe1 Separate out the config based exchange tests entirely. 2011-02-15 12:15:23 +00:00
Simon MacMullen 537f7b9c69 Multiple upstreams. 2011-02-11 14:44:37 +00:00
Simon MacMullen 3b2c67075e Refactor tests, test configuration, allow more than one federation exchange per broker(!) 2011-02-11 13:33:32 +00:00
Simon MacMullen e8bd411781 The simplest possible test. 2011-02-11 12:06:27 +00:00