⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testbank.cpp

📁 mysql-5.0.22.tar.gz源码包
💻 CPP
字号:
/* Copyright (C) 2003 MySQL AB   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License, or   (at your option) any later version.   This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#include <NDBT.hpp>#include <NDBT_Test.hpp>#include <HugoTransactions.hpp>#include <UtilTransactions.hpp>#include <NdbRestarter.hpp>#include <NdbBackup.hpp>#define CHECK(b) if (!(b)) { \  g_err << "ERR: "<< step->getName() \         << " failed on line " << __LINE__ << endl; \  result = NDBT_FAILED; \  continue; } #include "Bank.hpp"int runCreateBank(NDBT_Context* ctx, NDBT_Step* step){  Bank bank(ctx->m_cluster_connection);  int overWriteExisting = true;  if (bank.createAndLoadBank(overWriteExisting) != NDBT_OK)    return NDBT_FAILED;  return NDBT_OK;}int runBankTimer(NDBT_Context* ctx, NDBT_Step* step){  Bank bank(ctx->m_cluster_connection);  int wait = 30; // Max seconds between each "day"  int yield = 1; // Loops before bank returns   while (ctx->isTestStopped() == false) {    bank.performIncreaseTime(wait, yield);  }  return NDBT_OK;}int runBankTransactions(NDBT_Context* ctx, NDBT_Step* step){  Bank bank(ctx->m_cluster_connection);  int wait = 10; // Max ms between each transaction  int yield = 100; // Loops before bank returns   while (ctx->isTestStopped() == false) {    bank.performTransactions(wait, yield);  }  return NDBT_OK;}int runBankGL(NDBT_Context* ctx, NDBT_Step* step){  Bank bank(ctx->m_cluster_connection);  int yield = 20; // Loops before bank returns   int result = NDBT_OK;  while (ctx->isTestStopped() == false) {    if (bank.performMakeGLs(yield) != NDBT_OK){      ndbout << "bank.performMakeGLs FAILED" << endl;      result = NDBT_FAILED;    }  }  return NDBT_OK;}int runBankSum(NDBT_Context* ctx, NDBT_Step* step){  Bank bank(ctx->m_cluster_connection);  int wait = 2000; // Max ms between each sum of accounts  int yield = 1; // Loops before bank returns   int result = NDBT_OK;  while (ctx->isTestStopped() == false) {    if (bank.performSumAccounts(wait, yield) != NDBT_OK){      ndbout << "bank.performSumAccounts FAILED" << endl;      result = NDBT_FAILED;    }  }  return result ;}int runDropBank(NDBT_Context* ctx, NDBT_Step* step){  Bank bank(ctx->m_cluster_connection);  if (bank.dropBank() != NDBT_OK)    return NDBT_FAILED;  return NDBT_OK;}int runBankController(NDBT_Context* ctx, NDBT_Step* step){  Ndb* pNdb = GETNDB(step);  int loops = ctx->getNumLoops();  int records = ctx->getNumRecords();  int l = 0;  int result = NDBT_OK;  while (l < loops && result != NDBT_FAILED){    if (pNdb->waitUntilReady() != 0){      result = NDBT_FAILED;      continue;    }    // Sleep for a while    NdbSleep_SecSleep(records);        l++;  }  if (pNdb->waitUntilReady() != 0){    result = NDBT_FAILED;  }  ctx->stopTest();  return result;}NDBT_TESTSUITE(testBank);TESTCASE("Bank", 	 "Run the bank\n"){  INITIALIZER(runCreateBank);  STEP(runBankTimer);  STEP(runBankTransactions);  STEP(runBankGL);  // TODO  STEP(runBankSum);  STEP(runBankController);  FINALIZER(runDropBank);}NDBT_TESTSUITE_END(testBank);int main(int argc, const char** argv){  ndb_init();  // Tables should not be auto created  testBank.setCreateTable(false);  return testBank.execute(argc, argv);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -