このガイドでは、デバッグ、サーバーテストスイートの実行、およびVillageSQLへの貢献について説明します。動作するソースビルドがあることを前提としています。まだビルドしていない場合は、ソースからのビルドを参照してください。
デバッグ
VillageSQLサーバーのデバッグには、LinuxではGDBを、macOSではlldbを使用します。macOSのGDBはコード署名が必要で、設定が面倒です。lldbはmacOSの標準デバッガーであり、そのまま動作します。
Linux(GDB)
VillageSQLをGDBで実行します。
GDB内:
一般的なGDBコマンド:
macOS(lldb)
VillageSQLをlldbで実行します。
lldb内:
一般的なlldbコマンド:
テストの実行
VillageSQLには、機能を確認するためのユニットテストと回帰テストの両方が含まれています。
ユニットテスト
VillageSQL固有のユニットテストを(ビルドディレクトリ内から)実行します。
または、すべてのユニットテストを実行します。
回帰テスト
mysql-testディレクトリに移動します。
MySQLの完全なテストスイートを実行します(時間がかかります)。
VillageSQL固有のテストのみを実行します。
すべてのサブスイートを含むVillageSQLテストを実行します。
--suiteと--do-suite:
--suite=villagesqlは、最上位レベルのvillagesqlテストのみを実行します。
--do-suite=villagesqlは、サブスイート(insert、select、stored_procedureなど)を含むすべてのテストを実行します。
個別のテストの実行
テスト名を指定して特定のテストを実行します。
サブスイートからテストを実行します。
テスト結果の更新
機能を変更し、期待されるテスト出力を更新する必要がある場合:
テスト記録: .resultファイルの変更は、常に確認し、バグではなく意図した動作を反映していることを確認してください。--recordフラグは、期待される出力を無条件に上書きします。
テストの移植性
テスト出力にテストランナーの一時ディレクトリからのパスが含まれている場合、.testファイル内に次のディレクティブを追加して、記録された結果に他のマシンで動作しなくなる絶対パスが含まれないようにします。
テスト失敗時のデバッグ
VillageSQL固有のログメッセージ(LogVSQL()を通じて出力される)は、デフォルトでは抑制されます。テスト実行中にエラーログに表示するには:
完全なエラーログは、mysql-test/var/log/mysqld.1.errにあります。
拡張回帰テストの作成については、開発ガイドを参照してください。
バイナリのインストール
VillageSQLをシステム全体にインストールするには(適切な権限が必要です)。
これにより、バイナリはデフォルトで/usr/local/mysql/にインストールされます。インストールプレフィックスをカスタマイズできます。
VillageSQLに貢献する場合は、貢献ガイドラインを参照して、コーディング標準と開発ワークフローを確認してください。