Test parallellization uses a stupid strategy
オープン
まだ誰も着手していません。
Bug
Category: Tests
Status: Needs Triage
- 主要言語
- C
- スター
- 40.4k
- フォーク
- 8.1k
- 平均マージ
- 2日 13時間
- マージ済み PR(30日)
- 96
説明
Description
When running ./run-test.php with the -j argument, all the tests are scheduled to the workers before even running them. This means that if you have a worker which finishes all its tests quickly it'll sit idle even if there are many more other tests to run. One can observe this often because at the end of a test run the number of concurrent working test runners drops quickly.
PHP Version
8.4+
Operating System
N/A
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
./run-test.php から始めて、-j オプションをテストのスケジューリングとワーカーへのディスパッチのロジックまで追跡してください。実行前にテストがどのように割り当てられるかを確認し、そのうえで、テストが残っていなくなるまで利用可能なワーカーに継続して処理を供給するようスケジューリングを変更してください。並列実行で、処理が保留中なのにワーカーがアイドル状態のままにならないことを検証してください。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- php
- 領域
- testing-qa, tooling
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100