История изменений
Исправление
kirk_johnson,
(текущая версия)
:
Их стоит проверить утилитам типа useradd и polkit (внезапно).
Это называется unit-тестирование. Когда ты проверяешь отдельный компонент. А ещё есть integration-тестирование. Когда ты проверяешь, что все компоненты связаны и работают *В СВЯЗКЕ* как надо. Что ты получаешь *ОЖИДАЕМОЕ ОТ СИСТЕМЫ* поведение.
Для systemd это детали реализации вспомогательных утилит. Проверка их unit-тестами на стороне systemd нелогична.
Ты проверяешь не polkit, ты проверяешь *ЧТО SYSTEMCTL НЕ ПУСКАЕТ ЮЗЕРА, КОТОРОГО НЕ ДОЛЖЕН ПУСТИТЬ СОГЛАСНО ТЕСТОВОМУ ПЛАНУ*. Потому что баг может оказаться на стыке компонентов. Поэтому unit-тестирование и integration-тестирование — разные виды тестирования, часто приводящие к разному результату.
То что system взаимодействует с большим количеством сервисов не повод все баги этих сервисов вешать на разработчиков systemd.
*ФИЧА SYSTEMD* (то есть возможность выполнения привилегированных операций от непривилегированного юзера) — это фича systemd, а не polkit. То, что оно работает через polkit — детали реализации.
P.S. Жирненьким я отметил важные пункты.
Исходная версия
kirk_johnson,
:
Их стоит проверить утилитам типа useradd и polkit (внезапно).
Это называется unit-тестирование. Когда ты проверяешь отдельный компонент. А ещё есть integration-тестирование. Когда ты проверяешь, что все компоненты связаны и работают *В СВЯЗКЕ* как надо. Что ты получаешь *ОЖИДАЕМОЕ ОТ СИСТЕМЫ* поведение.
Для systemd это детали реализации вспомогательных утилит. Проверка их unit-тестами на стороне systemd нелогична.
Ты проверяешь не polkit, ты проверяешь *ЧТО SYSTEMCTL НЕ ПУСКАЕТ ЮЗЕРА, КОТОРОГО НЕ ДОЛЖЕН ПУСТИТЬ СОГЛАСНО ТЕСТОВОМУ ПЛАНУ*. Потому что баг может оказаться на стыке компонентов. Поэтому unit-тестирование и integration-тестирование — разные виды тестирования, часто приводящие к разному результату.
То что system взаимодействует с большим количеством сервисов не повод все баги этих сервисов вешать на разработчиков systemd.
*ФИЧА SYSTEMD* (то есть возможность выполнения привилегированных операций от непривилегированного юзера) — это фича systemd, а не polkit. То, что оно работает через polkit — детали реализации.