online-judge-tools / verification-helper

a testing framework for snippet libraries used in competitive programming
MIT License
225 stars 54 forks source link

C++のヘッダファイルとして.hが使えないことを明記して欲しい #248

Closed yosupo06 closed 3 years ago

yosupo06 commented 4 years ago

現状hppにしか対応していないと思うのですが、これをhに拡張するか、もしくは警告を出すべきではという提案です

  File "/usr/local/lib/python3.7/site-packages/onlinejudge_verify/docs.py", line 282, in write_contents
    raise FileNotFoundError('{} seems not to exist in path_to_verification'.format(depends))
FileNotFoundError: /Users/yosupo/Programs/Sand/base.h seems not to exist in path_to_verification
kmyk commented 4 years ago

これは修正しておいた方がよさそう。特にエラーが FileNotFoundError になるのはひどい。 (競プロ界隈ならみんな何も考えず .cpp .hpp してるでしょと思って放置していました :bow:)

docs.py を触る必要があるかもでしんどいので、どう対応するかはすこし考えます。

メモ:

kmyk commented 4 years ago

たぶん以下の 3 つの異なる問題に分割できる

  1. [x] .hpp.cpp 以外のファイル (例: .h, .txt) は「ドキュメントを生成しない」「テストの対象として認識されない」だけでよいはず。コードのファイルがコード以外のファイル (辞書.txt とか) に依存するのはよくある状況であり、例外を発生させて落とすべきものではない (仕様あるいはコードのバグ)
  2. [x] C++ の拡張子が何であるかは自明でないのに、これについて記述がない (ドキュメントのバグ)
  3. [x] もし未対応のまま残すなら、.h .cs などありがちなものについては警告を出すべき (バグではないが不親切)
kmyk commented 3 years ago

これ忘れてたのですが、いまドキュメント更新しました。 また、ドキュメント生成パートの大改修の際に、ライブラリとして認識されてないファイルへの依存があったら警告とともに無視されるようになっています。なので現在ではすべて解決されています。