LINUX.ORG.RU

История изменений

Исправление 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 — детали реализации.