LINUX.ORG.RU

kernel module testing


0

1

Здравствуйте господа.

Такой вопрос: есть ли на просторах интернета какой-то готовый фреймворк для тестирования собственноручно написанных модулей для линукс ядра? Ну или отработанная технология. Ну т.е. вот пишем мы модуль и хотим покрыть его юнит тестами. Гугление ничего вразумительного мне на дало. Возможно плохо гуглил.


Ответ на: комментарий от tailgunner

Это функциональные тесты на разные подсистемы ядра:

l:~/ltp-full-20110915$ls -1 testcases/kernel/
connectors
containers
controllers
device-drivers
fs
hotplug
include
io
ipc
Makefile
mce-test
mem
module
numa
performance_counters
power_management
pty
sched
security
syscalls
timers
tracing

ttnl ★★★★★
()
Ответ на: комментарий от ttnl

функциональные и стрессовые, если точнее

ttnl ★★★★★
()
Ответ на: комментарий от tailgunner

>Насколько я понимаю, всё это тестируется из юзерспейса. Это не то, о чем спрашивал ТС и не то, что нужно мне.

А в каком месте TC говорил о kernel space?

ttnl ★★★★★
()
Ответ на: комментарий от ttnl

>> Насколько я понимаю, всё это тестируется из юзерспейса. Это не то, о чем спрашивал ТС и не то, что нужно мне.

А в каком месте TC говорил о kernel space?

Он говорил о unit-тестировании ядреных модулей. Сделать это в из userspace в рамках обычного около-POSIX приложения тупо невозможно. Да и вообще сомнительно, что можно сделать это в userspace - нетривиальный модуль обычно завязан на API ядра, о реализации которого в виде userspace-библиотек я лично никогда не слышал (за исключением UML). Остается только kernel space.

А для нормального тестирования драйверов хоть ты пиши специальные эмуляторы :/

tailgunner ★★★★★
()

Что за модуль-то? Если файловой системы, то для валидации через МАЫ наверняка что-то есть. Если для железки, то сам понимаешь, что готового универсального решения быть не может.

Я для copy_to/from_user на systemtap портянку писал.

mv ★★★★★
()
Ответ на: комментарий от johnson102

> а почему не UML, действительно?

Ну, у меня характерные предрассудки драйверописателя - UML с устройствами не общается, AFAIK, значит, он не нужен. Но для абстрактных ядерных модулей в вакууме - может, и подойдет. Но инфраструктуры нет, опять же AFAIK.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Он говорил о «готовом фреймворке для тестирования собственноручно написанных модулей для линукс ядра». LTP полностью подходит под это описание. Более того, некоторые железки, например, такие элементарные, как сетевые драйвера, ты нормально не оттестируешь, не прогнав качественные стресс-тесты. В LTP для этого написано достаточно.

ttnl ★★★★★
()
Ответ на: комментарий от ttnl

> Он говорил о «готовом фреймворке для тестирования собственноручно написанных модулей для линукс ядра». LTP полностью подходит под это описание.

Ну-ну. Ни один из модулей ядра, которые я написал, им протестировать нельзя. А для unit-тестирования («пишем мы модуль и хотим покрыть его юнит тестами») LTP не подходит вообще.

tailgunner ★★★★★
()

хм... интересная тема, неужели под какую-либо ОС существует нечто подобное? присоединяюсь к теме, тоже нужна такая штука

I-Love-Microsoft ★★★★★
()

Итого

Не ожидал, что вопрос окажется таким интересным :)

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

Насчет systemtrap - интересная вещь, может и пригодится.

debugfs нам слабо поможет, но буду знать.

LTP уже нагугливал, но я так понял это исключительно userspace и тестирование внешнее по отношению к модулю.

C http://autotest.kernel.org/ надо разобраться что это за зверь вообще.

Писать полноценный эмулятор не вариант ибо слишком трудоемкая задача.

Про UML уже смотрел - вещь полезная в некоторых случаях, но это не готовое решения для юниттестирования, к тому же есть специфика по использованию. Хотя думаю мы его будем использовать, но немного для другого - для безпасного запуска kernel space модулей, чтобы не ронять основное ядро.

Теперь вопрос закрывать ли эту тему? В целом советы я получил да и ответ на вопрос, разве что кто-то еще что-то добавит) Ладно, подожду денек и закрою.

Vark
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.