Skip to content

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