開発者ガイド

この開発者ガイドは、LNTの開発を始めるためのものです。現時点では、詳細な情報が不足していますが、これがあなたのスタートになることを願っています。

インストール

インストール設定については、クイックスタートガイドを参照してください。~/lnt/setup.py を実行する際に「develop」オプションを使用してください。

LNTの回帰テストの実行

LNTには、既存の機能を誤って壊すことなくLNTを改善しやすくするための回帰テストがますます増えています。他のほとんどのLLVMサブプロジェクトを開発する場合と同様に、追加するすべての機能または修正するすべてのバグに対して回帰テストを追加することを検討する必要があります。回帰テストは常に合格する必要があるため、他のLLVMサブプロジェクトを開発するときと同様に、開発ワークフローの一部として回帰テストを実行する必要があります。

LNT回帰テストでは、litおよびFileCheckなどの他のツールを利用します。現時点では、おそらくそれらをインストールする最も簡単な方法は、LLVMをコンパイルし、そこで生成されるバイナリを使用することです。LLVMを$LLVMBUILDにビルドし、lntを$LNTINSTALLにインストールしたと仮定すると、次のコマンドを使用して回帰テストを実行できます

PATH=$LLVMBUILD/bin:$LNTINSTALL/bin:$PATH llvm-lit -sv ./tests

LNTソースディレクトリに一時ファイルが作成されるのが嫌な場合は、別のディレクトリでテストを実行することもできます

mkdir ../run_lnt_tests
cd ../run_lnt_tests
PATH=$LLVMBUILD/bin:$LNTINSTALL/bin:$PATH llvm-lit -sv ../lnt/tests

簡単な変更の場合、回帰テストを追加し、すべての回帰テストが合格することを確認することは、多くの場合、十分なテストアプローチです。一部の変更では、既存の回帰テストは現時点では十分ではなく、手動テストが必要になります。

オプションテスト

一部のテストでは、追加のツールをインストールする必要があり、デフォルトでは有効になっていません。litに追加のフラグを渡すことで有効にできます

-Dpostgres=1

postgresデータベースのサポートテストを有効にします。これには、少なくともpostgresバージョン9.2およびパス内のinitdbpostgresバイナリが必要です。実際にはサーバーをセットアップする必要はなく、テストは必要に応じて一時インスタンスを作成します。

-Dmysql=1

mysqlデータベースのサポートテストを有効にします。これには、MySQL-pythonがインストールされている必要があり、パス内のmysqldおよびmysqladminバイナリが必要です。実際にはサーバーをセットアップする必要はなく、テストは必要に応じて一時インスタンスを作成します。

-Dtidylib=1

tidy-html5を使用して、生成されたhtmlページの誤りをチェックします。これには、pytidylibとtidy-html5をインストールする必要があります。

-Dcheck-coverage=1

coverage.pyレポートを有効にします。coverageモジュールがインストールされ、仮想環境のsitecustomize.pyが適切に変更されていることを前提とします。

PATH=$LLVMBUILD/bin:$LNTINSTALL/bin:$PATH llvm-lit -sv -Dpostgres=1 -Dmysql=1 -Dtidylib=1 ../lnt/tests