-
Notifications
You must be signed in to change notification settings - Fork 170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
テストカバレッジを少し改善する #1508
テストカバレッジを少し改善する #1508
Conversation
std::wstring_viewのコンストラクタに長さを指定しない場合、 最初に現れたNULの手前までの長さの文字列になるので希望するテストができていなかった。
Kudos, SonarCloud Quality Gate passed! |
✅ Build sakura 1.0.3350 completed (commit a82031e8ee by @berryzplus) |
個々の変更に文句はありませんが、いろいろ混ぜすぎの雰囲気を感じました。 テストケースの修正部分は非常に警備なので、 |
はい、喜んで😄 |
海外の大手プロジェクトでは、いろいろ混ぜすぎ、かつ、1コミットなPRが普通に通ってるので別にいいような気がしてきました。 個人的には、挙動が変わったときにどの関数のどういう条件の挙動が変わったかを検出できるテストケースが好みです。 |
レビューありがとうございます。 |
PR の目的
今後のPR作成をやりやすくするために、テストカバレッジを少し改善する変更を行います。
カテゴリ
PR の背景
SonarCloud解析の結果を眺めていて、ソースコードの行数が想定より6万行ほど多いことに気付きました。
調べてみたら、解析対象が1ファイル余分でした。

この画像の一番下に出てる
tests1-coverage.xml
が余計です。このことから2点、修正したほうが良さそうな事案があることに気付きました。
tests1-coverage.xml
を除外したほうが良さそうです。tests1-googletest.xml
が出力できていないです。なので、出力先を変更する必要がありそうです。
その他、
GetDateTimeFormat
のテストケースの一部が期待したチェックになっていないようなので暫定修正を入れます。また、
GetDateTimeFormat
と同ファイルに実装されているCompareVersion
について、比較的簡単にテストを書くことができたので対応ついででテストケースを導入してしまいます。https://sakura-editor.github.io/help/HLP000268.html#CompareVersion
PR のメリット
PR のデメリット (トレードオフとかあれば)
とくにないと思います。
仕様・動作説明
アプリ(=サクラエディタ)の仕様・機能に変更はありません。
PR の影響範囲
アプリコードを変更しないのでテストと解析結果のみに影響する変更です。
SonarCloud側の仕様についてはこのへんを参照してください。
https://docs.sonarqube.org/latest/analysis/coverage/
テスト内容
berryzplus/sakura を使って事前検証を行いました。
GetDateTimeFormat
に渡すフォーマット文字列の途中にNUL記号(\0)
が含まれていた場合の分岐が実行されること。sakura_core/util/format.cpp
のテストカバレッジが 100% となること関連 issue, PR
#1504
参考資料
https://docs.sonarqube.org/latest/analysis/coverage/
https://sakura-editor.github.io/help/HLP000268.html#CompareVersion