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

Refactor testscript #120

Merged
merged 20 commits into from
Dec 6, 2023
Merged

Refactor testscript #120

merged 20 commits into from
Dec 6, 2023

Conversation

kohei-noda-qcrg
Copy link
Member

@kohei-noda-qcrg kohei-noda-qcrg commented Dec 5, 2023

このプルリクは何?

プルリクの内容を記述してください

  • テストスクリプトの記述を簡潔にしました
    今までは15行程度必要だったファイルパスとテストコマンドの設定が
    # Set file names
    input_file = "active.inp" # Input
    ref_output_file = "reference.c32h_co2_slow.out" # Reference
    output_filename = "c32h_co2_slow.caspt2.out" # Output (This file is compared with Reference)
    latest_passed_output = "latest_passed.c32h_co2_slow.caspt2.out" # latest passed output (After test, the output file is moved to this)
    # Get this files path and change directory to this path
    test_path = os.path.dirname(os.path.abspath(__file__)) # The path of this file
    os.chdir(test_path) # Change directory to the path of this file
    print(test_path, "test start") # Debug output
    # Set file paths
    ref_output_file_path = os.path.abspath(os.path.join(test_path, ref_output_file))
    output_file_path = os.path.abspath(os.path.join(test_path, output_filename))
    latest_passed_file_path = os.path.abspath(os.path.join(test_path, latest_passed_output))
    binary_dir = os.path.abspath(os.path.join(test_path, "../../../bin")) # Set the Built binary directory
    dcaspt2 = os.path.join(binary_dir, "dcaspt2") # Set the dcaspt2 binary path
    test_command = create_test_command_dcaspt2(dcaspt2, mpi_num_process, omp_num_threads, input_file, output_file_path, test_path, save)

    以下のように1行で必要なパスとテストコマンドを取得できるようになりました
    (test_path, ref_output_path, output_path, latest_passed_path, test_command) = env_setup_caspt2

    ※unit_testについてはより複雑なfixtureを定義しないといけないので、別のissue, pull requestにする予定です
  • Intel LLVM(新しいIntel Fortranコンパイラ)に対応しました(該当コミット)
    • GitHub ActionsでもIntel LLVMバージョンのテストを流しています
    • gfortranと同様にsetup-fortranを使ってビルドしようとしましたがこのissueにあるように、現在特定のバージョンでないとMPI対応していないようなので、手動でセットアップをしています
    • mpiifx又はifxが新しいコンパイラのコマンドです
    • ただしCMakeがバージョン3.20.2でIntel LLVMに対応したので、新しいIntel FortranコンパイラでビルドするにはCMakeのバージョンが3.20.2以上でなければいけません
  • gfortranのテストはオプションなしのテスト(コミット時のテスト)のとき、OpenMPのスレッド数を2にするように変更
    • OpenMPのテストができていなかったため
    • この変更でいくつかOpenMPの実装上のバグを発見したので、その修正も行っています

実装の内容

実装の内容を記述してください

  • テストスクリプトを簡潔にするためにenv_setup_[caspt2, ivo]というfixtureを用意しました
    • env_setup_ivoを使うために、IVOテストのディレクトリ構成を変更しました(テストの内容に変更はありません)

(optional) 考慮事項

起こりうるバグなどがわかっている場合記述してください

@kohei-noda-qcrg kohei-noda-qcrg added bug Something isn't working enhancement New feature or request refactor Code refactoring CI (Automated testing) Continuous Integration labels Dec 5, 2023
@kohei-noda-qcrg kohei-noda-qcrg added the documentation Improvements or additions to documentation label Dec 5, 2023
@kohei-noda-qcrg kohei-noda-qcrg requested review from minoria-hiroshima and removed request for minoria-hiroshima December 5, 2023 09:01
c1_methane_slow, cs_methanol_slow tests failed with --omp > 1
ref: #121
@kohei-noda-qcrg kohei-noda-qcrg merged commit b2a5f8f into main Dec 6, 2023
14 checks passed
@kohei-noda-qcrg kohei-noda-qcrg deleted the refactor-testscript branch December 6, 2023 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working CI (Automated testing) Continuous Integration documentation Improvements or additions to documentation enhancement New feature or request refactor Code refactoring
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants