mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Test prg update
- make test node restart test harder ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: Removed debug printout ndb/test/include/HugoOperations.hpp: Remove multipl pkRead (simple/dirty)... and replace with pkRead(LockMode) ndb/test/include/HugoTransactions.hpp: Remove multipl pkRead (simple/dirty)... and replace with pkRead(LockMode) ndb/test/ndbapi/testBasic.cpp: Remove multipl pkRead (simple/dirty)... and replace with pkRead(LockMode) ndb/test/ndbapi/testNdbApi.cpp: Remove multipl pkRead (simple/dirty)... and replace with pkRead(LockMode) ndb/test/ndbapi/testNodeRestart.cpp: Use mixed pkread Use rand() no of records Use rand() batch size Restart node abort (instead of graceful) ndb/test/ndbapi/testOperations.cpp: Remove multipl pkRead (simple/dirty)... and replace with pkRead(LockMode) ndb/test/ndbapi/testTransactions.cpp: Remove multipl pkRead (simple/dirty)... and replace with pkRead(LockMode) ndb/test/run-test/daily-devel-tests.txt: Run mixed pkread tests instead of just LM_Read (readTuple()) ndb/test/src/HugoOperations.cpp: Remove multipl pkRead (simple/dirty)... and replace with pkRead(LockMode) ndb/test/src/HugoTransactions.cpp: Remove multipl pkRead (simple/dirty)... and replace with pkRead(LockMode)
This commit is contained in:
@ -100,11 +100,16 @@ int runScanReadUntilStopped(NDBT_Context* ctx, NDBT_Step* step){
|
||||
int runPkReadUntilStopped(NDBT_Context* ctx, NDBT_Step* step){
|
||||
int result = NDBT_OK;
|
||||
int records = ctx->getNumRecords();
|
||||
NdbOperation::LockMode lm =
|
||||
(NdbOperation::LockMode)ctx->getProperty("ReadLockMode",
|
||||
(Uint32)NdbOperation::LM_Read);
|
||||
int i = 0;
|
||||
HugoTransactions hugoTrans(*ctx->getTab());
|
||||
while (ctx->isTestStopped() == false) {
|
||||
g_info << i << ": ";
|
||||
if (hugoTrans.pkReadRecords(GETNDB(step), records, 128) != 0){
|
||||
int rows = (rand()%records)+1;
|
||||
int batch = (rand()%rows)+1;
|
||||
if (hugoTrans.pkReadRecords(GETNDB(step), rows, batch, lm) != 0){
|
||||
return NDBT_FAILED;
|
||||
}
|
||||
i++;
|
||||
@ -119,7 +124,9 @@ int runPkUpdateUntilStopped(NDBT_Context* ctx, NDBT_Step* step){
|
||||
HugoTransactions hugoTrans(*ctx->getTab());
|
||||
while (ctx->isTestStopped() == false) {
|
||||
g_info << i << ": ";
|
||||
if (hugoTrans.pkUpdateRecords(GETNDB(step), records) != 0){
|
||||
int rows = (rand()%records)+1;
|
||||
int batch = (rand()%rows)+1;
|
||||
if (hugoTrans.pkUpdateRecords(GETNDB(step), rows, batch) != 0){
|
||||
return NDBT_FAILED;
|
||||
}
|
||||
i++;
|
||||
@ -127,6 +134,60 @@ int runPkUpdateUntilStopped(NDBT_Context* ctx, NDBT_Step* step){
|
||||
return result;
|
||||
}
|
||||
|
||||
int runPkReadPkUpdateUntilStopped(NDBT_Context* ctx, NDBT_Step* step){
|
||||
int result = NDBT_OK;
|
||||
int records = ctx->getNumRecords();
|
||||
Ndb* pNdb = GETNDB(step);
|
||||
int i = 0;
|
||||
HugoOperations hugoOps(*ctx->getTab());
|
||||
while (ctx->isTestStopped() == false) {
|
||||
g_info << i++ << ": ";
|
||||
int rows = (rand()%records)+1;
|
||||
int batch = (rand()%rows)+1;
|
||||
int row = (records - rows) ? rand() % (records - rows) : 0;
|
||||
|
||||
int j,k;
|
||||
for(j = 0; j<rows; j += batch)
|
||||
{
|
||||
k = batch;
|
||||
if(j+k > rows)
|
||||
k = rows - j;
|
||||
|
||||
if(hugoOps.startTransaction(pNdb) != 0)
|
||||
goto err;
|
||||
|
||||
if(hugoOps.pkReadRecord(pNdb, row+j, k, NdbOperation::LM_Exclusive) != 0)
|
||||
goto err;
|
||||
|
||||
if(hugoOps.execute_NoCommit(pNdb) != 0)
|
||||
goto err;
|
||||
|
||||
if(hugoOps.pkUpdateRecord(pNdb, row+j, k, rand()) != 0)
|
||||
goto err;
|
||||
|
||||
if(hugoOps.execute_Commit(pNdb) != 0)
|
||||
goto err;
|
||||
|
||||
if(hugoOps.closeTransaction(pNdb) != 0)
|
||||
return NDBT_FAILED;
|
||||
}
|
||||
|
||||
continue;
|
||||
err:
|
||||
NdbConnection* pCon = hugoOps.getTransaction();
|
||||
if(pCon == 0)
|
||||
continue;
|
||||
NdbError error = pCon->getNdbError();
|
||||
hugoOps.closeTransaction(pNdb);
|
||||
if (error.status == NdbError::TemporaryError){
|
||||
NdbSleep_MilliSleep(50);
|
||||
continue;
|
||||
}
|
||||
return NDBT_FAILED;
|
||||
}
|
||||
return NDBT_OK;
|
||||
}
|
||||
|
||||
int runScanUpdateUntilStopped(NDBT_Context* ctx, NDBT_Step* step){
|
||||
int result = NDBT_OK;
|
||||
int records = ctx->getNumRecords();
|
||||
@ -178,7 +239,7 @@ int runRestarter(NDBT_Context* ctx, NDBT_Step* step){
|
||||
int id = lastId % restarter.getNumDbNodes();
|
||||
int nodeId = restarter.getDbNodeId(id);
|
||||
ndbout << "Restart node " << nodeId << endl;
|
||||
if(restarter.restartOneDbNode(nodeId) != 0){
|
||||
if(restarter.restartOneDbNode(nodeId, false, false, true) != 0){
|
||||
g_err << "Failed to restartNextDbNode" << endl;
|
||||
result = NDBT_FAILED;
|
||||
break;
|
||||
@ -246,6 +307,27 @@ TESTCASE("NoLoad",
|
||||
TESTCASE("PkRead",
|
||||
"Test that one node at a time can be stopped and then restarted "\
|
||||
"perform pk read while restarting. Do this loop number of times"){
|
||||
TC_PROPERTY("ReadLockMode", NdbOperation::LM_Read);
|
||||
INITIALIZER(runCheckAllNodesStarted);
|
||||
INITIALIZER(runLoadTable);
|
||||
STEP(runRestarter);
|
||||
STEP(runPkReadUntilStopped);
|
||||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("PkReadCommitted",
|
||||
"Test that one node at a time can be stopped and then restarted "\
|
||||
"perform pk read while restarting. Do this loop number of times"){
|
||||
TC_PROPERTY("ReadLockMode", NdbOperation::LM_CommittedRead);
|
||||
INITIALIZER(runCheckAllNodesStarted);
|
||||
INITIALIZER(runLoadTable);
|
||||
STEP(runRestarter);
|
||||
STEP(runPkReadUntilStopped);
|
||||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("MixedPkRead",
|
||||
"Test that one node at a time can be stopped and then restarted "\
|
||||
"perform pk read while restarting. Do this loop number of times"){
|
||||
TC_PROPERTY("ReadLockMode", -1);
|
||||
INITIALIZER(runCheckAllNodesStarted);
|
||||
INITIALIZER(runLoadTable);
|
||||
STEP(runRestarter);
|
||||
@ -255,14 +337,31 @@ TESTCASE("PkRead",
|
||||
TESTCASE("PkReadPkUpdate",
|
||||
"Test that one node at a time can be stopped and then restarted "\
|
||||
"perform pk read and pk update while restarting. Do this loop number of times"){
|
||||
TC_PROPERTY("ReadLockMode", NdbOperation::LM_Read);
|
||||
INITIALIZER(runCheckAllNodesStarted);
|
||||
INITIALIZER(runLoadTable);
|
||||
STEP(runRestarter);
|
||||
STEP(runPkReadUntilStopped);
|
||||
STEP(runPkReadUntilStopped);
|
||||
STEP(runPkReadUntilStopped);
|
||||
STEP(runPkUpdateUntilStopped);
|
||||
STEP(runPkReadPkUpdateUntilStopped);
|
||||
STEP(runPkReadUntilStopped);
|
||||
STEP(runPkUpdateUntilStopped);
|
||||
STEP(runPkReadPkUpdateUntilStopped);
|
||||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("MixedPkReadPkUpdate",
|
||||
"Test that one node at a time can be stopped and then restarted "\
|
||||
"perform pk read and pk update while restarting. Do this loop number of times"){
|
||||
TC_PROPERTY("ReadLockMode", -1);
|
||||
INITIALIZER(runCheckAllNodesStarted);
|
||||
INITIALIZER(runLoadTable);
|
||||
STEP(runRestarter);
|
||||
STEP(runPkReadUntilStopped);
|
||||
STEP(runPkUpdateUntilStopped);
|
||||
STEP(runPkReadPkUpdateUntilStopped);
|
||||
STEP(runPkReadUntilStopped);
|
||||
STEP(runPkUpdateUntilStopped);
|
||||
STEP(runPkReadPkUpdateUntilStopped);
|
||||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("ReadUpdateScan",
|
||||
@ -273,6 +372,21 @@ TESTCASE("ReadUpdateScan",
|
||||
STEP(runRestarter);
|
||||
STEP(runPkReadUntilStopped);
|
||||
STEP(runPkUpdateUntilStopped);
|
||||
STEP(runPkReadPkUpdateUntilStopped);
|
||||
STEP(runScanReadUntilStopped);
|
||||
STEP(runScanUpdateUntilStopped);
|
||||
FINALIZER(runClearTable);
|
||||
}
|
||||
TESTCASE("MixedReadUpdateScan",
|
||||
"Test that one node at a time can be stopped and then restarted "\
|
||||
"perform pk read, pk update and scan reads while restarting. Do this loop number of times"){
|
||||
TC_PROPERTY("ReadLockMode", -1);
|
||||
INITIALIZER(runCheckAllNodesStarted);
|
||||
INITIALIZER(runLoadTable);
|
||||
STEP(runRestarter);
|
||||
STEP(runPkReadUntilStopped);
|
||||
STEP(runPkUpdateUntilStopped);
|
||||
STEP(runPkReadPkUpdateUntilStopped);
|
||||
STEP(runScanReadUntilStopped);
|
||||
STEP(runScanUpdateUntilStopped);
|
||||
FINALIZER(runClearTable);
|
||||
|
Reference in New Issue
Block a user