Chromium Chronicle #14: ウォーターフォールへのテストの追加

エピソード 14: Zhaoyang Li(MTV)、Eric Aleshire(韓国)(2020 年 10 月)
前のエピソード

Chrome の新機能に対するリグレッションを検出するには、を ウォーターフォール(Chrome の継続的なビルドとテスト インフラストラクチャ)にテストを実行できます。

Chrome のウォーターフォールには、さまざまなデバイスでテストを行うビルダーが多数あります 説明します。この記事では、テストスイートを既存の 作成します。先に進む前に、次のことを検討してください。

新しいテストは、まったく新しいスイートで実施すべきですか、それとも既存のスイートに追加すべきですか?

  • テストは、ソースの場所とテーマの近さを基準にテストスイートにまとめられています。 新しいテストが既存のスイートに論理的に収まらない場合は、 新しいスイートが必要だとします。

テストはパブリック ビルダーと内部ビルダーのどちらで実行すればよいですか?

  • コードが内部リポジトリにある場合は内部ビルダーを使用します。または、 テストに機密データが含まれる。

テストは、FYI CI、メイン CI、commit キュー(CQ)のどちらで実行すればよいですか?

  • 参考として、CI にはセルフ モニタリングが必要で、テストの調整や 必要があります。
  • 保安官によって主要な CI テストが定期的にモニタリングされています
  • CQ は失敗時に CL の送信をブロックしますが、より多くのインフラ リソースが必要になります。 新しいスイートは常に CQ に昇格する前に CI から開始する必要があります。
  • 判断に迷う場合は、プラットフォームの EngProd チームにお問い合わせください。

すでに CI で実行されているテストスイートがあります。CQ に追加するにはどうすればよいですか?/ 新しい工具が必要か?

既存のビルダーにテストスイートを追加する方法

テストスイートを既存のビルダーに追加するには、いくつかのファイルを設定する必要があります (//src/testing/buildbot/):

  1. gn_isolate_map.pyl で新しいテストスイートのキーを作成します。 ターゲット ラベルとタイプ情報です。
  2. そのキーを test_suites.pyl のテストグループに追加します。 (ビルダー名からビルダーのテストグループへのマッピングは、 waterfalls.pyl)。

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. さらにファインチューニング。

    • mixins.pyl に含まれる引数。 さまざまなグループ レベルのテストのグループに適用できます。
    • variants.pyl は、スイートを複数のインスタンスで実行できます。 使用できます
  4. 次のコマンドを実行して、構成ファイルを再生成します。 generate_buildbot_json.py

その後は、構成の変更をチェックインするだけです。 このスイートを実行しているビルダーは新しいテストを自動的に取得し、 のビルダーの結果がウェブ インターフェースに取り込まれます。 ウォーターフォール - 障害発生時のデバッグ情報が豊富に用意されています。