mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
ndb - bug#30975
add even more tests
This commit is contained in:
parent
b62d7a318e
commit
40c83d3285
2 changed files with 141 additions and 21 deletions
|
@ -1220,6 +1220,30 @@ runBug24664(NDBT_Context* ctx, NDBT_Step* step)
|
|||
return result;
|
||||
}
|
||||
|
||||
int
|
||||
runStopper(NDBT_Context* ctx, NDBT_Step* step)
|
||||
{
|
||||
NdbRestarter restarter;
|
||||
Uint32 stop = 0;
|
||||
loop:
|
||||
while (!ctx->isTestStopped() &&
|
||||
((stop = ctx->getProperty("StopAbort", Uint32(0))) == 0))
|
||||
{
|
||||
NdbSleep_MilliSleep(30);
|
||||
}
|
||||
|
||||
if (ctx->isTestStopped())
|
||||
{
|
||||
return NDBT_OK;
|
||||
}
|
||||
|
||||
ndbout << "Killing in " << stop << "ms..." << flush;
|
||||
NdbSleep_MilliSleep(stop);
|
||||
restarter.restartAll(false, true, true);
|
||||
ctx->setProperty("StopAbort", Uint32(0));
|
||||
goto loop;
|
||||
}
|
||||
|
||||
int runSR_DD_1(NDBT_Context* ctx, NDBT_Step* step)
|
||||
{
|
||||
Ndb* pNdb = GETNDB(step);
|
||||
|
@ -1229,6 +1253,7 @@ int runSR_DD_1(NDBT_Context* ctx, NDBT_Step* step)
|
|||
NdbRestarter restarter;
|
||||
NdbBackup backup(GETNDB(step)->getNodeId()+1);
|
||||
bool lcploop = ctx->getProperty("LCP", (unsigned)0);
|
||||
bool all = ctx->getProperty("ALL", (unsigned)0);
|
||||
|
||||
Uint32 i = 1;
|
||||
Uint32 backupId;
|
||||
|
@ -1254,11 +1279,18 @@ int runSR_DD_1(NDBT_Context* ctx, NDBT_Step* step)
|
|||
ndbout << "Loading records..." << startFrom << endl;
|
||||
CHECK(hugoTrans.loadTable(pNdb, startFrom) == 0);
|
||||
|
||||
if (!all)
|
||||
{
|
||||
ndbout << "Making " << nodeId << " crash" << endl;
|
||||
int kill[] = { 9999, 1000, 3000 };
|
||||
CHECK(restarter.dumpStateOneNode(nodeId, val, 2) == 0);
|
||||
CHECK(restarter.dumpStateOneNode(nodeId, kill, 3) == 0);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
ndbout << "Crashing cluster" << endl;
|
||||
ctx->setProperty("StopAbort", 1000 + rand() % (3000 - 1000));
|
||||
}
|
||||
Uint64 end = NdbTick_CurrentMillisecond() + 4000;
|
||||
Uint32 row = startFrom;
|
||||
do {
|
||||
|
@ -1268,11 +1300,17 @@ int runSR_DD_1(NDBT_Context* ctx, NDBT_Step* step)
|
|||
row += 1000;
|
||||
} while (NdbTick_CurrentMillisecond() < end);
|
||||
|
||||
if (!all)
|
||||
{
|
||||
ndbout << "Waiting for " << nodeId << " to restart" << endl;
|
||||
CHECK(restarter.waitNodesNoStart(&nodeId, 1) == 0);
|
||||
|
||||
ndbout << "Restarting cluster" << endl;
|
||||
CHECK(restarter.restartAll(false, true, true) == 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
ndbout << "Waiting for cluster to restart" << endl;
|
||||
}
|
||||
CHECK(restarter.waitClusterNoStart() == 0);
|
||||
CHECK(restarter.startAll() == 0);
|
||||
CHECK(restarter.waitClusterStarted() == 0);
|
||||
|
@ -1297,7 +1335,7 @@ int runSR_DD_1(NDBT_Context* ctx, NDBT_Step* step)
|
|||
}
|
||||
|
||||
ndbout << "runSR_DD_1 finished" << endl;
|
||||
|
||||
ctx->stopTest();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1311,6 +1349,7 @@ int runSR_DD_2(NDBT_Context* ctx, NDBT_Step* step)
|
|||
NdbRestarter restarter;
|
||||
NdbBackup backup(GETNDB(step)->getNodeId()+1);
|
||||
bool lcploop = ctx->getProperty("LCP", (unsigned)0);
|
||||
bool all = ctx->getProperty("ALL", (unsigned)0);
|
||||
|
||||
Uint32 i = 1;
|
||||
Uint32 backupId;
|
||||
|
@ -1331,10 +1370,18 @@ int runSR_DD_2(NDBT_Context* ctx, NDBT_Step* step)
|
|||
|
||||
int nodeId = restarter.getDbNodeId(rand() % restarter.getNumDbNodes());
|
||||
|
||||
if (!all)
|
||||
{
|
||||
ndbout << "Making " << nodeId << " crash" << endl;
|
||||
int kill[] = { 9999, 3000, 10000 };
|
||||
CHECK(restarter.dumpStateOneNode(nodeId, val, 2) == 0);
|
||||
CHECK(restarter.dumpStateOneNode(nodeId, kill, 3) == 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
ndbout << "Crashing cluster" << endl;
|
||||
ctx->setProperty("StopAbort", 1000 + rand() % (3000 - 1000));
|
||||
}
|
||||
|
||||
Uint64 end = NdbTick_CurrentMillisecond() + 11000;
|
||||
Uint32 row = startFrom;
|
||||
|
@ -1346,11 +1393,18 @@ int runSR_DD_2(NDBT_Context* ctx, NDBT_Step* step)
|
|||
break;
|
||||
} while (NdbTick_CurrentMillisecond() < end);
|
||||
|
||||
if (!all)
|
||||
{
|
||||
ndbout << "Waiting for " << nodeId << " to restart" << endl;
|
||||
CHECK(restarter.waitNodesNoStart(&nodeId, 1) == 0);
|
||||
|
||||
ndbout << "Restarting cluster" << endl;
|
||||
CHECK(restarter.restartAll(false, true, true) == 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
ndbout << "Waiting for cluster to restart" << endl;
|
||||
}
|
||||
|
||||
CHECK(restarter.waitClusterNoStart() == 0);
|
||||
CHECK(restarter.startAll() == 0);
|
||||
CHECK(restarter.waitClusterStarted() == 0);
|
||||
|
@ -1369,7 +1423,7 @@ int runSR_DD_2(NDBT_Context* ctx, NDBT_Step* step)
|
|||
}
|
||||
|
||||
ndbout << "runSR_DD_2 finished" << endl;
|
||||
|
||||
ctx->stopTest();
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -1554,12 +1608,29 @@ TESTCASE("Bug24664",
|
|||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("SR_DD_1", "")
|
||||
{
|
||||
TC_PROPERTY("ALL", 1);
|
||||
INITIALIZER(runWaitStarted);
|
||||
STEP(runStopper);
|
||||
STEP(runSR_DD_1);
|
||||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("SR_DD_1b", "")
|
||||
{
|
||||
INITIALIZER(runWaitStarted);
|
||||
STEP(runSR_DD_1);
|
||||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("SR_DD_1_LCP", "")
|
||||
{
|
||||
TC_PROPERTY("ALL", 1);
|
||||
TC_PROPERTY("LCP", 1);
|
||||
INITIALIZER(runWaitStarted);
|
||||
STEP(runStopper);
|
||||
STEP(runSR_DD_1);
|
||||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("SR_DD_1b_LCP", "")
|
||||
{
|
||||
TC_PROPERTY("LCP", 1);
|
||||
INITIALIZER(runWaitStarted);
|
||||
|
@ -1567,12 +1638,29 @@ TESTCASE("SR_DD_1_LCP", "")
|
|||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("SR_DD_2", "")
|
||||
{
|
||||
TC_PROPERTY("ALL", 1);
|
||||
INITIALIZER(runWaitStarted);
|
||||
STEP(runStopper);
|
||||
STEP(runSR_DD_2);
|
||||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("SR_DD_2b", "")
|
||||
{
|
||||
INITIALIZER(runWaitStarted);
|
||||
STEP(runSR_DD_2);
|
||||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("SR_DD_2_LCP", "")
|
||||
{
|
||||
TC_PROPERTY("ALL", 1);
|
||||
TC_PROPERTY("LCP", 1);
|
||||
INITIALIZER(runWaitStarted);
|
||||
STEP(runStopper);
|
||||
STEP(runSR_DD_2);
|
||||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("SR_DD_2b_LCP", "")
|
||||
{
|
||||
TC_PROPERTY("LCP", 1);
|
||||
INITIALIZER(runWaitStarted);
|
||||
|
|
|
@ -874,31 +874,63 @@ max-time: 1500
|
|||
cmd: testSystemRestart
|
||||
args: -n SR_DD_1 D1
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_1b D1
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_1 D2
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_1b D2
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_1_LCP D1
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_1b_LCP D1
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_1_LCP D2
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_1b_LCP D2
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_2 D1
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_2b D1
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_2 D2
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_2b D2
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_2_LCP D1
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_2b_LCP D1
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_2_LCP D2
|
||||
|
||||
max-time: 1500
|
||||
cmd: testSystemRestart
|
||||
args: -n SR_DD_2b_LCP D2
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue