Testing of Linux File System Drivers

The paper investigates issues of Linux file system driver testing. Linux file system drivers are implemented as kernel modules, which works in the same address space as kernel core. For that reason, the driver should be very reliable. It should react adequately to incorrect file system images, to fa...

Full description

Bibliographic Details
Main Authors: A. V. Tsyvarev, V. A. Martirosyan
Format: Article
Language:English
Published: Ivannikov Institute for System Programming of the Russian Academy of Sciences 2018-10-01
Series:Труды Института системного программирования РАН
Subjects:
Online Access:https://ispranproceedings.elpub.ru/jour/article/view/993
_version_ 1811276257799700480
author A. V. Tsyvarev
V. A. Martirosyan
author_facet A. V. Tsyvarev
V. A. Martirosyan
author_sort A. V. Tsyvarev
collection DOAJ
description The paper investigates issues of Linux file system driver testing. Linux file system drivers are implemented as kernel modules, which works in the same address space as kernel core. For that reason, the driver should be very reliable. It should react adequately to incorrect file system images, to faults in operating system, etc. Also drivers should free all resources it requests as far as kernel have to work for long time without restart. Another important feature of file system drivers is that they are programs with multiple entry points, which may be executed simultaneously in respect with each other and with other kernel code.Most of existing test systems verify only driver's behavior in normal situations by calling system calls, which are eventually dispatched by the kernel into the driver's functions. Some of them also check driver in concurrent scenarios but only at very basic level. Some test systems also verify driver's behavior under faulty environment, when request for memory allocation or disk read/write may fail. But fault scenarios used in those systems are probabilistic, which leads to problems with tests' reproducibility and requires to repeat tests many times to achieve better coverage. There is one test system, which checks for memory leaks in the driver under test.The paper concludes by statement of requirements for more throughout file system driver testing. According to the requirements a test system have to cover the following aspects:Normal scenarios on system calls level.Parallel scenarios with additional checks for data races.Fault scenarios with insufficient memory and faulty block devices using such techniques as fault injection.Handling of incorrect file system images.Driver testing on system calls with invalid arguments.Check leaks of memory and other resources requested by driver under test.
first_indexed 2024-04-12T23:54:20Z
format Article
id doaj.art-16563da4dbb34339be1f1ae257c15b7c
institution Directory Open Access Journal
issn 2079-8156
2220-6426
language English
last_indexed 2024-04-12T23:54:20Z
publishDate 2018-10-01
publisher Ivannikov Institute for System Programming of the Russian Academy of Sciences
record_format Article
series Труды Института системного программирования РАН
spelling doaj.art-16563da4dbb34339be1f1ae257c15b7c2022-12-22T03:11:35ZengIvannikov Institute for System Programming of the Russian Academy of SciencesТруды Института системного программирования РАН2079-81562220-64262018-10-0123010.15514/ISPRAS-2012-23-24993Testing of Linux File System DriversA. V. Tsyvarev0V. A. Martirosyan1ИСП РАНИСП РАНThe paper investigates issues of Linux file system driver testing. Linux file system drivers are implemented as kernel modules, which works in the same address space as kernel core. For that reason, the driver should be very reliable. It should react adequately to incorrect file system images, to faults in operating system, etc. Also drivers should free all resources it requests as far as kernel have to work for long time without restart. Another important feature of file system drivers is that they are programs with multiple entry points, which may be executed simultaneously in respect with each other and with other kernel code.Most of existing test systems verify only driver's behavior in normal situations by calling system calls, which are eventually dispatched by the kernel into the driver's functions. Some of them also check driver in concurrent scenarios but only at very basic level. Some test systems also verify driver's behavior under faulty environment, when request for memory allocation or disk read/write may fail. But fault scenarios used in those systems are probabilistic, which leads to problems with tests' reproducibility and requires to repeat tests many times to achieve better coverage. There is one test system, which checks for memory leaks in the driver under test.The paper concludes by statement of requirements for more throughout file system driver testing. According to the requirements a test system have to cover the following aspects:Normal scenarios on system calls level.Parallel scenarios with additional checks for data races.Fault scenarios with insufficient memory and faulty block devices using such techniques as fault injection.Handling of incorrect file system images.Driver testing on system calls with invalid arguments.Check leaks of memory and other resources requested by driver under test.https://ispranproceedings.elpub.ru/jour/article/view/993linuxфайловые системыдрайвермодуль ядра ос linuxтестирование
spellingShingle A. V. Tsyvarev
V. A. Martirosyan
Testing of Linux File System Drivers
Труды Института системного программирования РАН
linux
файловые системы
драйвер
модуль ядра ос linux
тестирование
title Testing of Linux File System Drivers
title_full Testing of Linux File System Drivers
title_fullStr Testing of Linux File System Drivers
title_full_unstemmed Testing of Linux File System Drivers
title_short Testing of Linux File System Drivers
title_sort testing of linux file system drivers
topic linux
файловые системы
драйвер
модуль ядра ос linux
тестирование
url https://ispranproceedings.elpub.ru/jour/article/view/993
work_keys_str_mv AT avtsyvarev testingoflinuxfilesystemdrivers
AT vamartirosyan testingoflinuxfilesystemdrivers