Skip to content
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

[WIP] 結果比較用のシェルスクリプトなどを追加 #6

Draft
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

gfngfn
Copy link
Collaborator

@gfngfn gfngfn commented Feb 15, 2022

以下のPRによって birds コマンドの動作が変わったりしないことを確認をするために使ったシェルスクリプトです:

benchmark.sh

オプショナルな引数を取れるようになっており,その引数のディレクトリにベンチマークプログラムの変換結果などを出力します(デフォルトは results で,これは従来の挙動と同じ).

例えば以下だと results-foo/ 以下に結果が出力されます:

$ ./benchmark.sh results-foo

compare_results.sh

2つの結果 <DIR1><DIR2> を比較するためのスクリプト.以下のいずれかの形式の引数をとる:

$ ./compare_results.sh <DIR1> <DIR2> list
$ ./compare_results.sh <DIR1> <DIR2> check <REL-PATH> [<DIFF-CMD>]
$ ./compare_results.sh <DIR1> <DIR2> check_all
  • list: 結果として出力されたSQLファイルの相対パス一覧を表示する.
  • check <REL-PATH>: 相対パス <REL-PATH> に出力されたファイルを <DIR1><DIR2> とで比べる.<DIFF-CMD> にdiffをとるのに使うコマンドを与えることができ,省略した場合は単に diff が使われる.
  • check_all: 出力された全てのSQLファイルを <DIR1><DIR2> とで比べる.

例えば,従来の実装による結果を results-develop/ に,新しい実装による結果を results-ir/ に出力した後,それぞれの gensql/case-study/ced.sql のパスにあるファイルを比較するには以下のように実行します(icdiff はdiffをとるツールのひとつ):

$ ./compare_results.sh results-develop results-ir check gensql/case-study/ced.sql icdiff

see_results.sh

出力されたログファイルを比較するためのスクリプト.以下のいずれかの形式の引数をとる:

$ ./see_results.sh see_log <DIR>
$ ./see_results.sh see_err <DIR>
$ ./see_results.sh diff_log <DIR1> <DIR2>
$ ./see_results.sh diff_err <DIR1> <DIR2>
  • see_log: 結果 <DIR> 以下の正常ログファイルの中身を全て表示する.
  • see_err: 結果 <DIR> 以下のエラーログファイルの中身を全て表示する.
  • diff_log: 結果 <DIR1><DIR2> とでそれぞれ対応する正常ログファイルのdiffをとって表示する.
  • diff_err: 結果 <DIR1><DIR2> とでそれぞれ対応するエラーログファイルのdiffをとって表示する.

上記PRでどのように使ったか

  • ./compare_results.sh を使っていくつかの出力されたSQLファイルのdiffを表示し,問題なさそうな差分であることを目視で確かめた
  • ./see_results.sh を使って正常ログ・エラーログともに全くdiffがないことを確かめた

@gfngfn gfngfn mentioned this pull request Jan 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant