Автоматизированное тестирование привилегированных операций


Как вы тестируете модульный / интеграционный код, который требует другого уровня привилегий, чем существует в вашей среде непрерывной интеграции?

В моей некорневой, CCRB-управляемой среде сборки, у меня есть некоторые служебные функции, которые предполагают привилегии, которые не удерживаются в моей автоматизированной среде сборки: либо привилегии root, либо специальные учетные записи и группы. (Например, одна функция изменяет UID/GID и дополнительные группы на указанную учетную запись, изменяет root и current рабочий каталог, и разводы от любого управляющего терминала.)

Конечно, мы могли бы выполнить тесты вручную, но тогда мы могли бы забыть их выполнить.

Как другие решали эту проблему?

1 2

1 ответ:

Я бы попытался разложить на множители код управления безопасностью за поддельным интерфейсом, чтобы в модульных тестах я мог предоставлять поддельные привилегии, как я хочу.

Таким образом, можно было бы проверить как то, что при отсутствии требуемых привилегий функция терпит неудачу, так и то, что с предоставленными привилегиями она делает то, что должна делать.

Без более конкретных деталей трудно сказать больше.