kusumotolab / kGenProg

A High-performance, High-extensibility and High-portability APR System
MIT License
48 stars 13 forks source link

シンボリックリンクのテストが環境依存 #805

Closed shinsuke-mat closed 3 years ago

shinsuke-mat commented 3 years ago

win環境下ではシンボリックリンクの作成に権限が必要. 権限与えてないとテストが落ちる.

より正確には,symlinkを確認するテストの準備段階で,symlinkを作ろうとしてRuntimeExceptionで死ぬ.

jp.kusumotolab.kgenprog.ConfigurationBuilderTest#testBuildFromConfigFileWithSymbolicLink

example\BuildSuccess08\src-example: クライアントは要求された特権を保有していません。
java.nio.file.FileSystemException: example\BuildSuccess08\src-example: クライアントは要求された特権を保有していません。
    at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:92)
    at
...
    at jp.kusumotolab.kgenprog.ConfigurationBuilderTest.testBuildFromConfigFileWithSymbolicLink(ConfigurationBuilderTest.java:2862)

ここがまずい. https://github.com/kusumotolab/kGenProg/blob/7e226c3c13350aa3eff6d3e24fa0fcc87b766cd5/src/test/java/jp/kusumotolab/kgenprog/ConfigurationBuilderTest.java#L2862

shinsuke-mat commented 3 years ago

2択?

A. シンボリックリンクのテストを削除

pro テストの哲学に従う con symlinkがテストされない

B. シンボリックリンクを作れない場合はそのテストをスキップ

pro 一応(条件付きで)symlinkのテストができる con テストの哲学に反する.

shinsuke-mat commented 3 years ago

個人的にはB +1

symlinkはテストした方が良いとは思う. 実験等でsymlink使うことが結構あるのでその挙動はテストしておきたい.

Bはテストの哲学に反するが, 同じようなテストがすでに存在するので許してもよいかも. https://github.com/kusumotolab/kGenProg/pull/785#issuecomment-693222968