Commit Graph

93 Commits

Author SHA1 Message Date
1a33c1caef Build CDC connector into the core test library
The CDC connector can be build directly into the core testing library for
testing purposes. This way we remove an unnecessary dependency on a
library. This commit fixes the linkage failure of the cdc_datatypes test.
2018-01-30 11:08:41 +02:00
cf0d745c14 MXS-1583 Add test that exposes the behaviour
This will fail with MaxScale 2.2.1.
2018-01-29 15:25:21 +02:00
d681d0f2fa Add manual rejoin tests 2018-01-25 11:49:37 +02:00
bf02571f45 MXS-1596 Test switchover under stress
- Start 4 threads where each thread sits in a loop and performs
  20% updates and 80% selects. Each thread has a table of its own.
- The main thread executes the following in a loop.
- Perform a switchover from the current master to the next (which is
  simply the next node % all nodes).
- Keep on doing that for 1.5 minutes.

The expectation is that the switchover will succeed, that is, after the
operation there will be a new master.
2018-01-16 10:31:27 +02:00
0afe10ffb9 Merge branch '2.1' into 2.2 2018-01-16 09:47:49 +02:00
ad634fe31e MXS-1596 Stress test for failover
- Start 4 threads where each thread sits in a loop and performs
  20% updates and 80% selects. Each thread has a table of its own.
- The main thread executes the following in a loop.
  - Take down the current master and wait a while (failover assumed
    to happen).
  - Put up the old master node and wait a while.

Keep on doing that for 1.5 minutes.

At the end check that:
- There is one 'Master'.
- The other nodes are either
  - 'Slave' or
  - 'Running' in which case it is checked it is because the node could
    not be rejoined.
2018-01-12 15:56:52 +02:00
eda8288161 Rename and fix test
Test now tries to reset the servers when successful.
Still seems to rarely fail.
2018-01-10 15:25:58 +02:00
c64fd4f39f MXS-1543: Add test case
Added test case that checks that statement based replication is detected.
2018-01-05 12:50:39 +02:00
a6914ebefe MXS-1565: Test for invalid old master rejoin
The test uses standard setup (1xMaster, 3xSlaves).

1. Shutdown master (server 1), check that autofailover promotes
a new master.
2. Stop MaxScale.
3. Start server 1 and add some events to it so it can no longer rejoin
cluster.
4. Start MaxScale, check that server 1 does not join.
5. Set current master to replicate from server 1, turning it to a relay
master.
6. Check that server 1 is master, all others are slaves (due to auto-rejoin).
2018-01-04 10:34:03 +02:00
7d8905d91f Merge branch '2.1' into 2.2 2018-01-03 14:05:31 +02:00
00ca809963 MXS-1542: Add test case
Added test case that checks whether UTF16 strings work. The test is
expected to fail.
2018-01-03 10:37:25 +02:00
bacc11d28e MXS-1516: Validate the connection on each query
A subset of the checks done at connection creation time need to be done at
query routing time. This guarantees that the connection is closed if the
server no longer qualifies as a valid candidate.

Added teset case that checks that a change in the replication topology
correctly breaks the connection.
2018-01-02 11:03:36 +02:00
eddd4db606 MXS-1562 Test switchover under ideal conditions 2018-01-02 10:21:01 +02:00
8b2aa52384 Merge branch '2.1' into 2.2 2017-12-29 08:42:49 +02:00
c6bc1f7327 MXS-1585: Add preliminary test case
The test case attempts to simulate the environment where the crash appears
to have happened. Local testing does not point out any problems.
2017-12-27 17:21:42 +02:00
6348ca7449 Add dependency on Jansson to the test core
The core library depends on Jansson and it must be built first.
2017-12-21 12:22:47 +02:00
96d084f1d6 Treat warnings as errors
Treat warnings as errors when compiling tests and fix where there
were problems.
2017-12-21 10:56:24 +02:00
26751ae44f Use correct CDC connector for cdc_datatypes
The cdc_datatypes test did not use the correct connector and instead it
used a stale version of the MaxScale CDC Connector. The connector should
be treated as an external dependency and thus cloned at configuration
time.
2017-12-21 10:48:07 +02:00
0e8bdeae13 Add test for 10.1 compound statements
The test executes a compound statement through MaxScale and checks that it
is routed correctly to the master.
2017-12-21 10:48:06 +02:00
4d7c93f7c9 Rename test
We are testing switchover and not failover to a bad master
2017-12-21 10:24:03 +02:00
9962191722 Add 10.3 SEQUENCE test
The test checks that the SEQUENCE related commands return the expected
values.
2017-12-20 11:54:21 +02:00
f9e8af83ce MXS-1570: Test failover with no good candidate
- 1 master, 3 slaves
- "stop slave" on server 2
- "disable" log-bin on server 3
- set multi-source replication on server 4
- take down master
- no slave should be promoted
2017-12-20 11:00:13 +02:00
fab2eab0fd MXS-1568 Rolling restart of slaves
- Regular master/slave setup.
- Each slave is in turn taken down and restarted.
- Checked that the slave state changes accordingly.
2017-12-19 16:59:25 +02:00
c3fe8a6b55 MXS-1565: Invalid rejoin test
- 1 master, 3 slaves
- stop maxscale so it does not autorejoin later on
- stop & reset slave on servers 3 & 4
- add data to server 4
- restart maxscale, check that server 3 is rejoined but not server 4
- manually set server 1 to replicate from server 4, creating a relay master
- check that servers 2 & 3 are redirected, making server 1 just a slave
- switchover master to server 1, check that it's the master

Also, moved some common functions into their own files. These functions
are used by multiple tests.
2017-12-19 15:59:01 +02:00
c4ba3ba4ca MXS-1561 Switchover to bad master
auto_failover=true
auto_rejoin=false

This test tests the following:

- Regular master-slave setup
- Create a table, insert some data
- Sync all slaves
- Stop a slave
- Insert some more data
- Sync remaining slaves
- Stop the master
- Expect the failover mechanism to pick a new master (server2)
- Bring up the slave
- Perform a switchover from server2 to server4
- Should fail

Currently it does fail, but only due to a timeout.

    [mysqlmon] MASTER_GTID_WAIT() timed out on slave 'server4'.

There should be some check that would ensure that the failure happens
faster than that.
2017-12-18 15:41:21 +02:00
033e3f628e MXS-1566 Rejoin old slave
This test tests the following:

- Regular master-slave setup
- Create a table, insert some data
- Sync all slaves
- Stop a slave
- Insert some more data
- Sync remaining slaves
- Stop the master
- Expect the failover mechanism to pick a new master
- Bring up the slave
- Expect the slave to be rejoined
2017-12-18 14:36:47 +02:00
e33b2d0fcd MXS-1567 Rolling master promotion
- The test starts with the usual setup of 1 master and 3 slaves.
- Then the master is taken down and it is checked that the failover
  mechanism promotes some slave to master.
- This is continued until there is a single master left (no
  slaves).
2017-12-15 13:51:46 +02:00
6b5ed66404 MXS-1564: Add rejoin test
The test combines auto-failover, rejoining a temporarily downed master
server and switchover.
2017-12-14 11:33:53 +02:00
f0d33a6ead MXS-1560 Manual failover with two good candidates
Not two specific good candidates, but all slaves are assumed
are equally good.
2017-12-12 13:27:57 +02:00
3c2d03fd80 MXS-1559 Add skeleton test implementation 2017-12-12 13:27:57 +02:00
6485365b3b MXS-1514: Split failover test in two files, add manual version
The same test now has two versions. In the automatic version failover
begins automatically. In the manual version failover is started with
maxadmin. The tests are otherwise identical.
2017-12-12 11:09:50 +02:00
3c88bf1ec6 refactored tests (#147) 2017-12-08 12:23:04 +02:00
016b0f69f7 MXS-1509: Initial implementation of test case
Added some code to detect server states in a consistent manner and created
the test. The multi-source replication appeared to cause problems for the
test system which needs to be resolved.

Added --force flags to most direct `mysql` calls to prevent errors from
stopping the processing of remaining commands.
2017-11-30 12:39:00 +02:00
afcb708e6e Merge branch '2.1' into 2.2 2017-11-21 16:49:21 +02:00
ced93acc20 MXS-1514: Add failover test
The test is composed of a few parts.
1: Test that failover happens on master failure.
2: Test that a server with slave sql thread stopped is not promoted.
3: Test that a server with log_slave_updates=1 is promoted before others.
2017-11-14 10:01:37 +02:00
41f6400852 MXS-1476: Add test case
Test for MXS-1476 that checks that the behavior is what is
expected. Currently, the test passes as behavior is what is expected.
2017-11-13 11:55:54 +02:00
f44020496a Merge branch '2.2' into 2.2-mrm 2017-11-07 12:05:33 +02:00
ce19fe3248 Move Jansson compilation into main test suite
The test suite now compiles Jansson instead of letting the CDC connector
do it. This way the connector can be used as a very simple static library
with a dependency on the Jansson library.
2017-11-07 12:03:09 +02:00
43cea6a2fa Reorder linking of libraries
The cdc-connector did not build on Ubuntu Trusty due to the wrong order of
linker flags. Moving the crypt and crypto linkage to be after
cdc-connector appears to fix it.
2017-11-05 11:16:26 +02:00
f815e9caa5 Move Jansson compilation into main test suite
The test suite now compiles Jansson instead of letting the CDC connector
do it. This way the connector can be used as a very simple static library
with a dependency on the Jansson library.
2017-11-03 13:39:36 +02:00
3a78b716b8 Merge branch '2.2' into 2.2-mrm 2017-10-30 11:06:34 +02:00
a971aa25da Merge branch '2.1' into 2.2 2017-10-30 11:01:19 +02:00
37e64bad90 MXS-1493: Add master failure verification test 2017-10-27 15:31:46 +03:00
de800766ef Build the replicaton-manager test
The test wasn't built as it is not a part of the test suite. The
executable should be built but it should not be added to the test suite.

Changed the management script to only add the configuration and added a
call to it at the start of the test.
2017-10-25 14:53:40 +03:00
9617b55905 Run MaxCtrl test suite in the regression test suite
The MaxCtrl test suite is now a part of the regression test suite. The
cluster tests are expected to fail as that is yet to be implemented.

Also fixed the return value of TestConnections::ssh_maxscale.
2017-10-12 13:16:12 +03:00
f2afa5380b Add OK packet processing test
Added a test case which exercises the OK packet handling in
readwritesplit.
2017-10-12 12:29:43 +03:00
e94dc2aade MXS-1468: Add test case
Added test case that reproduces the bug.
2017-10-11 11:29:02 +03:00
ede52c8af9 Add OK packet processing test
Added a test case which exercises the OK packet handling in
readwritesplit.
2017-10-09 14:05:38 +03:00
bd39284f9c Merge branch '2.1' into 2.2 2017-10-03 14:30:06 +03:00
099c2f87bc MXS-1457: Add test case
Added a test that reproduces the problem.
2017-09-27 19:28:05 +03:00