Unix ソースおよびバイナリ配布に付属するテストシステムを使用することによって、ユーザーおよび開発者は MySQL コードのリグレッションテストを実行できます。これらのテストは Unix 上で実行できます。
独自のテストケースを記述することもできます。システム要件を含む MySQL テストフレームワークについては、https://dev.mysql.com/doc/index-other.html から入手できるマニュアルを参照してください。
現在のテストケースのセットは MySQL のすべてをテストするわけではありませんが、SQL 処理コードのほとんどの明らかなバグやオペレーティングシステムまたはライブラリの問題を捕捉し、レプリケーションのテストに関してはかなり徹底しています。テストによってコードの 100% がカバーされることを目標としています。弊社はテストスイートへの貢献を歓迎しています。使用しているシステムで重要な機能を検査するテストに貢献すれば、使用しているアプリケーションが将来のすべての MySQL リリースで動作することが保証されます。
テストシステムは、テスト言語インタプリタ (mysqltest)、すべてのテストを実行する Perl スクリプト (mysql-test-run.pl)、特別なテスト言語で記述された実際のテストケース、およびそれらの予期される結果で構成されています。ビルド後にシステム上でテストスイートを実行するには、ソースのルートディレクトリから make test と入力するか、場所を mysql-test
ディレクトリに変更して、./mysql-test-run.pl と入力します。バイナリ配布をインストールした場合は、インストールルートディレクトリの下にある mysql-test
ディレクトリ (/usr/local/mysql/mysql-test
など) に場所を変更して、./mysql-test-run.pl を実行します。すべてのテストが成功します。成功しないものがあれば原因を調べ、MySQL 内のバグを示す場合は問題を報告してください。セクション1.6「質問またはバグをレポートする方法」を参照してください。
1 つのテストに失敗する場合は、--force
オプションを指定して mysql-test-run.pl を実行し、ほかのテストも失敗するかどうかを確認してください。
テストスイートを実行するマシン上で mysqld のコピーが実行中である場合、それがポート 9306
または 9307
を使用していなければ、停止する必要はありません。これらのいずれかのポートが使用中である場合、環境変数 MTR_BUILD_THREAD
を適切な値に設定します。こうすることで、テストスイートは、マスター、スレーブ、および NDB のポートに別のセットを使用します。例:
shell> export MTR_BUILD_THREAD=31
shell> ./mysql-test-run.pl [options] [test_name]
mysql-test
ディレクトリでは、./mysql-test-run.pl test_name
を指定することで個々のテストケースを実行できます。
テストスイートについて質問がある場合、または貢献するテストケースがある場合は、MySQL internals
メーリングリストに電子メールメッセージを送信してください。セクション1.5.1「MySQL メーリングリスト」 を参照してください。