Pull to refresh

Comments 6

Спасибо.

А теперь вопрос: драйвер-то после изменений работает? То есть меня всегда удивляло, как можно рефакторить код, который не покрыт тестами.
Конкретно этот компилируется, а в целом тестируется на реальном железе обычно, так что в других случаях, например, в этом, драйвер работает на MinnowBoard (v1) или вот этот на Galileo, хотя в другом закралась ошибка, исправленная позднее.
Я сейчас даже не наезжаю на тему «рефакторите то, что не можете проверить», а мне интересно, как это вообще в комьюнити работает?

Допустим, приходит архитектор и говорит: давайте вместо стопятьсот строк кода будут вот эти три — одинаковые и удобные. И как бы да. Но теперь надо в тысячах драйверов это поправить. Допустим, энтузиазм таков, что поправляют. Но дальше-то… Кто проверяет, что при этом драйвера работают? Производители железа ровными рядами идут тестировать изменения? А если кто-то не простестировал?

К чему я? Как в ядре решается вопрос с тестированием кода драйверов? Я вот даже придумать ничего не могу, кроме как гигантских рядов с стендами и разными железками…
Давайте я в свободное время подготовлю развёрнутый ответ на этот вопрос в виде статьи. Поля для комментария явно мало.
Десять рук за и заранее спасибо.

Потому что даже в отрыве от Ядра, я не понимаю, как делать тестирование кода, который сильно зависит от внешнего мира, который тяжело мокать.
кому девайс нужен — тот тестирует. для остальных критерий работоспособности этого участка ядра (неиспользуемого у 99.99% пользователей) — его компилируемость.

в общем, кому надо — жалуется :-)
Sign up to leave a comment.

Articles