0

MySQL テスト ケース mytest.test があるとします。その内容は次のとおりです。

use test;
create table t(id int, name varchar(25)) engine = falcon;
insert into t values(1, "John");
insert into t values(2, "Edward");
drop table t;

ac/c++ ソース ファイルを記述して、テスト ケースの機能を実行するのは簡単です。c/c++ ソースは次のとおりです。

#include <stdio.h>
#include <mysql.h>

int main(int argc, char** argv){
    MYSQL conn;
    mysql_init(&conn);

    mysql_real_connect(&conn,xxx,...);
    mysql_query(&conn, "create table t(id int, name varchar(25)) engine = falcon");
    mysql_query(&conn, "insert into t values(1, 'John')");
    mysql_query(&conn, "insert into t values(2, 'Edward')");
    mysql_query(&conn, "drop table t");
    mysql_close(&conn);
}

しかし、今、MySQL の興味深いテスト ケースがあります。それは次のようなものです:

--source include/have_falcon.inc

let $engine = 'Falcon';
eval SET @@storage_engine = $engine;

--disable_warnings
DROP TABLE IF EXISTS t;
--enable_warnings

CREATE TABLE t(i int);
connect (conn1,localhost,root,,);

let $num=1000000;
while ($num)
{
   connection conn1;
   --send insert into t values(1);
   connection default;
   --send truncate table t;
   connection conn1;
   --reap
   connection default;
   --reap 
   dec $num;
}
DROP TABLE t;

ご覧のとおり、「connection default」、「--send」、「--reap」などの奇妙な記号がいくつかあります。それらの対応する c/c++ ソース コードが何かわかりません。それで、それらを適切なc/c++ソースコードに変換する方法を教えてくれる人はいますか? どうもありがとう!

4

0 に答える 0