aicers / giganto

Raw-Event Storage System for AICE
Apache License 2.0
5 stars 2 forks source link

Add Code Coverage in Giganto #91

Closed MontyCoder0701 closed 2 years ago

MontyCoder0701 commented 2 years ago

Refer to similar commit in Github Server to add code coverage feature.

MontyCoder0701 commented 2 years ago

Branch를 따로 생성해서 PR을 올렸더니 check가 fail하는 현상이 일어나므로 PR을 close하였습니다.

msk commented 2 years ago

문제는 giganto의 tests 폴더에 있는 테스트가 giganto를 별도로 돌고 있는 걸 전제로 하고 있어서 tarpaulin이 테스트를 실행하면 gignato가 없으므로 타임아웃이 난다는 점입니다. 해결책은

  1. 우리가 CI에서 --bin giganto 옵션을 줘서 unit tests만 실행하고 tests 폴더에 있는 테스트는 실행하지 않는 것처럼 tarpaulin도 tests 폴더의 테스트는 제외하도록 하는 것(구체적인 방법은 찾지 못했습니다),
  2. tests 폴더에 있는 테스트들을 전부 unit test 형식으로 바꿔서 따로 giganto를 실행하지 않아도 되도록 하는 것

입니다. 2번은 oinq의 unit test가 쓰는 방식을 참조하면 가능하긴 할텐데, async task들을 실행하는 순서를 잘 맞춰주지 않으면 deadlock이 생길 수 있어서 간단하진 않습니다.

MontyCoder0701 commented 2 years ago

문제는 giganto의 tests 폴더에 있는 테스트가 giganto를 별도로 돌고 있는 걸 전제로 하고 있어서 tarpaulin이 테스트를 실행하면 gignato가 없으므로 타임아웃이 난다는 점입니다. 해결책은

  1. 우리가 CI에서 --bin giganto 옵션을 줘서 unit tests만 실행하고 tests 폴더에 있는 테스트는 실행하지 않는 것처럼 tarpaulin도 tests 폴더의 테스트는 제외하도록 하는 것(구체적인 방법은 찾지 못했습니다),
  2. tests 폴더에 있는 테스트들을 전부 unit test 형식으로 바꿔서 따로 giganto를 실행하지 않아도 되도록 하는 것

입니다. 2번은 oinq의 unit test가 쓰는 방식을 참조하면 가능하긴 할텐데, async task들을 실행하는 순서를 잘 맞춰주지 않으면 deadlock이 생길 수 있어서 간단하진 않습니다.

Cargo Tarpaulin 대한 blog를 참고하여 test folder에 있는 특정 test를 무시하도록 수정했습니다.