Page 1 of 1

Система тестирования ядра (runtests.py)

Posted: Wed Dec 15, 2021 8:31 pm
by Boppan
Приветствую!

В ядре присутствует система тестирования операционной системы. Имеются как тесты с использованием qemu, так и тесты на UMKa (они скачиваются вместе с репозиторием UMKa, см. далее).

Тесты работают следующим образом:

qemu

1 Происходит поиск папок с тестами в папке test. Если папка содержит файл test.py, то она считается тестом.
2 Для каждого теста:
2.1 Происходит запуск функции run(root_dir, test_dir) каждого теста. Первым аргументом в функцию передаётся путь к kernel/trunk, а вторым - путь к папке с этим тестом (в которой лежит запускаемый test.py).

API предоставляемый для тестирования можно посмотреть в kernel/trunk/test/common/__init__.py.

UMKa (на стадии альфа)

1 Происходит загрузка образов, используемых при тестировании.
2 Происходит загрузка кода UMKa из репозитория.
3 Происходит переход на ветку trunk.
4 UMKa компилируется с использованием llvm-mingw или clang.
5 Запускаются все тесты для UMKa (под тестами понимаются все файлы с расширением ".t" из папки umka/test). В случае провала любого теста тестирование останавливается с надписью FAILURE.

Limitations:
- Пока тесты запускаются все, какие бы ни были нужны
- Пока загрузка происходит всех образов дисков для тестов (если use_umka == True)
- Пока компиляция Умки происходит при каждом запуске теста (если use_umka == True)

Проблемы/предложения/контрибьютинг приветствуются.