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++ソースコードに変換する方法を教えてくれる人はいますか? どうもありがとう!