スーパーユーザー権限が前提の機能をテストしたいときに。
元ネタはここ。
前準備として次の内容のスクリプトを作って chmod で実行可能にしておく。
場所は ${CMAKE_SOURCE_DIR}/cmake/sudo.sh あたりに。
# !/bin/sh
/usr/bin/sudo $*
で、 CTest の設定時に次のようにする。
add_executable(my-test
main.cpp
)
add_test(
NAME MyTest
COMMAND ${CMAKE_SOURCE_DIR}/cmake/sudo.sh $<TARGET_FILE:my-test>
)
こうすると ctest したときに sudo 経由で実行してくれる。
sudoers でパスワードを要求するようにしてるともちろんパスワード聞かれるので都度いれるかたちで。