Comments 6
Спасибо.
А теперь вопрос: драйвер-то после изменений работает? То есть меня всегда удивляло, как можно рефакторить код, который не покрыт тестами.
А теперь вопрос: драйвер-то после изменений работает? То есть меня всегда удивляло, как можно рефакторить код, который не покрыт тестами.
+4
Конкретно этот компилируется, а в целом тестируется на реальном железе обычно, так что в других случаях, например, в этом, драйвер работает на MinnowBoard (v1) или вот этот на Galileo, хотя в другом закралась ошибка, исправленная позднее.
0
Я сейчас даже не наезжаю на тему «рефакторите то, что не можете проверить», а мне интересно, как это вообще в комьюнити работает?
Допустим, приходит архитектор и говорит: давайте вместо стопятьсот строк кода будут вот эти три — одинаковые и удобные. И как бы да. Но теперь надо в тысячах драйверов это поправить. Допустим, энтузиазм таков, что поправляют. Но дальше-то… Кто проверяет, что при этом драйвера работают? Производители железа ровными рядами идут тестировать изменения? А если кто-то не простестировал?
К чему я? Как в ядре решается вопрос с тестированием кода драйверов? Я вот даже придумать ничего не могу, кроме как гигантских рядов с стендами и разными железками…
Допустим, приходит архитектор и говорит: давайте вместо стопятьсот строк кода будут вот эти три — одинаковые и удобные. И как бы да. Но теперь надо в тысячах драйверов это поправить. Допустим, энтузиазм таков, что поправляют. Но дальше-то… Кто проверяет, что при этом драйвера работают? Производители железа ровными рядами идут тестировать изменения? А если кто-то не простестировал?
К чему я? Как в ядре решается вопрос с тестированием кода драйверов? Я вот даже придумать ничего не могу, кроме как гигантских рядов с стендами и разными железками…
+3
Давайте я в свободное время подготовлю развёрнутый ответ на этот вопрос в виде статьи. Поля для комментария явно мало.
+6
кому девайс нужен — тот тестирует. для остальных критерий работоспособности этого участка ядра (неиспользуемого у 99.99% пользователей) — его компилируемость.
в общем, кому надо — жалуется :-)
в общем, кому надо — жалуется :-)
0
Sign up to leave a comment.
Сделаем код чище: Рефакторинг драйвера PCI для контроллера NAND Denali