Кто как пишет юнит-тесты для драйверов NT + Моя идея песочни
От: LimyKurn  
Дата: 29.09.18 22:31
Оценка:
Хотел сперва задать свой вопрос-размышление о том, использовать ли в драйверах фичи C++, называть ли файлы .cpp и .hpp или .c и .h или .cpp и .h.
Но сперва задался более важным и фундаментальным вопросом и вы его читаете.

Итак, юнит-тесты для драйверов.

Во-первых, в драйверах все-таки приходится писать такие вещи, как: какая-то функция-хелпер, класс-хелпер, своя реализация чего-то там. Насколько часто — это вопрос, но даже в сэмплах от MS на гитхабе мы видим тому примеры.
Все это надо покрывать юнит-тестами, т.е. писать синтетический код, который будет вызывать конкретные функции и классы с разными параметрами.
И даже вызывать одно и то же по много раз. Не знаю, как это называется — может быть подойдет понятие stress testing. Но штука полезная, в частности для проверки на утечки памяти и на быстродействие.
Основная же суть тестирования просто в том, чтобы, внеся какое-то изменение в покрытый код, можно было убедиться в полном соответствии всем ранее выставленным требованиям. Причем юнит-тесты позволяют начать убеждаться в 2 клика и уже в первые доли секунды

Во-вторых, думаю, что хорошо бы и для именно NT-шных вещей, таких, как каллбеки минифильтров, тоже писать юнит-тесты. Но это уже намного сложнее — там слишком много специфики, которую в юзермоде сложно вызвать.

Оба случая, особенно второй, требует наличие какой-то системы, ну как минимум в какой IDE это делать, на каком языке (C++ или Си) и в каком виде.
Что кто использует?

Конечно, хотелось бы тестить в юзер-моде с песочницей, а не в режиме ядра. Но думаю это вообще несбыточно. А если написать, то юзать будут 1.5 человека со всей планеты, включая меня.
Отредактировано 30.09.2018 0:37 LimyKurn . Предыдущая версия . Еще …
Отредактировано 30.09.2018 0:36 LimyKurn . Предыдущая версия .
Отредактировано 29.09.2018 22:39 LimyKurn . Предыдущая версия .
Отредактировано 29.09.2018 22:37 LimyKurn . Предыдущая версия .
Отредактировано 29.09.2018 22:36 LimyKurn . Предыдущая версия .
Отредактировано 29.09.2018 22:35 LimyKurn . Предыдущая версия .
Отредактировано 29.09.2018 22:34 LimyKurn . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.