Я пытаюсь запустить некоторые тесты через sudo, так как они требуют разрешений сетевого администратора, и я не могу использовать setcap, так как мы запускаем некоторые из этих тестов под valgrind, который не может быть запущен на исполняемых файлах setcap.По какой-то причине sudo не найден.sudo работает как положено, когда вызывается из терминала bash или из системного вызова () в приложении C.
Пример CMakeLists.txt:
cmake_minimum_required(VERSION 3.9)
enable_testing()
add_test(NAME dummy_test
COMMAND sudo ls
)
Вывод:
$ make test
Running tests...
Test project /home/cmorgan/projects/test/build
Start 1: dummy_test
Could not find executable sudo
Looked in the following places:
sudo
sudo
Release/sudo
Release/sudo
Debug/sudo
Debug/sudo
MinSizeRel/sudo
MinSizeRel/sudo
RelWithDebInfo/sudo
RelWithDebInfo/sudo
Deployment/sudo
Deployment/sudo
Development/sudo
Development/sudo
Unable to find executable: sudo
1/1 Test #1: dummy_test .......................***Not Run 0.00 sec
0% tests passed, 1 tests failed out of 1
Total Test time (real) = 0.00 sec
The following tests FAILED:
1 - dummy_test (Not Run)
Errors while running CTest
make: *** [Makefile:73: test] Error 8
Я пытался использовать абсолютный путь к sudo, / usr / bin / sudo с той же проблемой.
Похоже, это может быть связано с тем, что sudo является приложением setuid, но я не совсем уверенкак действовать.