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

update) fix main, add test #20

Closed
wants to merge 4 commits into from
Closed

update) fix main, add test #20

wants to merge 4 commits into from

Conversation

ak0327
Copy link
Owner

@ak0327 ak0327 commented Aug 21, 2023

#24 にまとめる
説明用に残しておくが、そのうち閉じる

変更点

makefileの修正のついでにバグを見つけたので修正&ついでにテストも追加

Makefile修正

  • bfff7f8
  • objs/以下のディレクトリが作成されず、.oの作成をミスっている点を修正

conf pathの受け取り部分を修正

  • de90ce8
  • argc == 1はエラーに変更(confがないとweb serverとして機能しない)
  • 関連箇所の変更(get_valid_config_file_path() の引数など)

testを追加

  • google test(C++用のテストフレームワーク)を使ってみた 592ea6b
  • メリット
    • アサーションマクロを使うだけなので、テストの作成が用意
    • 例外のチェックも可能
    • 読み込んだソースにあるテスト関数を自動で拾ってくれる
    • NGケースも表示される
  • デメリット
    • 学習コストがかかる(記述方法、コンパイル、実行方法など)
    • 用意されたマクロでしか評価できない
    • 意図せぬ例外に弱い気がする
      • 二値比較のマクロで例外が発生した場合、以降のテストは飛ばされる
      • エラー箇所がわからないため特定に手間がかかるかも)
  • 実行方法
    • make unitで実行するようmake ruleを変更(cmakeでビルドしたテスト用の実行ファイルを実行している)
    • 実行結果はこんな感じ
  • rename
    • run_unit_test.shで実行していた方:UNIT_TEST -> UNIT_TEST_SH
    • 今回追加した方:GOOGLE_TEST -> UNIT_TEST
    • 現状はproject_root/CMakeLists.txtに記述したテストファイルから実行ファイルunit_testを生成し、全テストを一度に実行しているが、あるテスト単独でのみ実行したい場合は個別の生成ルールを記述しなければならないかも? -> 選択的に実行したい場合はfileter optionを使えばOK
    • fileの保存先はこんな感じ?
      project_root/
      ┣ Makefile  		# for project executable file
      ┣ srcs/			# project source files
      ┃    ┣ main.c
      ┃    ┣ ClassA/
      ┃    ┃      ┗ ClassA.cpp
      ┃    ┣ ClassB/
      ┃    ┃      ┗ ClassB.cpp
      ┃    ┃
      ┃    ┗ includes/
      ┃           ┣ ClassA.hpp
      ┃           ┗ ClassB.hpp
      ┃
      ┣ CMakeLists.txt 	# for test executable file
      ┗ test/			# test source files
           ┗ unit_test/
                  ┣ TestClassA.hpp
                  ┗ TestClassB.hpp
      

@ak0327 ak0327 linked an issue Aug 21, 2023 that may be closed by this pull request
@ak0327 ak0327 self-assigned this Aug 21, 2023
@ak0327 ak0327 marked this pull request as ready for review August 21, 2023 07:15
@ak0327 ak0327 requested a review from molhot August 21, 2023 07:15
@ak0327 ak0327 marked this pull request as draft August 23, 2023 14:53
@ak0327 ak0327 changed the title fix) Makefile fix) main Aug 23, 2023
@ak0327 ak0327 force-pushed the 19-fix-makefile branch 5 times, most recently from 6ba832d to 4c905c4 Compare August 24, 2023 01:51
@ak0327 ak0327 changed the title fix) main update) fix main, add test Aug 24, 2023
@ak0327 ak0327 marked this pull request as ready for review August 24, 2023 03:25
@ak0327 ak0327 marked this pull request as draft August 24, 2023 11:49
@ak0327 ak0327 mentioned this pull request Aug 25, 2023
7 tasks
@molhot molhot marked this pull request as ready for review September 4, 2023 21:08
@ak0327 ak0327 marked this pull request as draft September 4, 2023 22:14
@ak0327 ak0327 removed the request for review from molhot September 5, 2023 02:58
@ak0327 ak0327 closed this Sep 5, 2023
@ak0327 ak0327 deleted the 19-fix-makefile branch September 6, 2023 02:38
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.

update) fix main, add test
1 participant