Alt-test: различия между версиями
Yaleks (обсуждение | вклад) мНет описания правки |
|||
Строка 1: | Строка 1: | ||
'''alt-test''' — инфраструктура тестирования ALT Linux на базе [ | '''alt-test''' — инфраструктура тестирования ALT Linux на базе [[Tapper]]. | ||
Программа распространяется под условиями лицензии '''GPLv3'''. | Программа распространяется под условиями лицензии '''GPLv3'''. |
Текущая версия от 14:52, 18 октября 2015
alt-test — инфраструктура тестирования ALT Linux на базе Tapper.
Программа распространяется под условиями лицензии GPLv3.
Использование:
alt-test [параметры] [тест1 ...]
Параметр | Описание |
---|---|
-l | Показать список доступных модулей тестирования |
-h | Справка по использованию |
-v | Показывать полный ход тестирования |
--version | Версия программы |
Тесты расположены в /usr/lib/alt-test.
Примечание: С программой тестирования поставляются два теста: altlinux и selftest. Первый позволяет проверить, является ли текущая система дистрибутивом ALT Linux, вторая — показать заведомо непроходимые тесты
Пример запуска тестирования
alt-test altlinux alt-test -v selftest
Написание тестов
Файл теста имеет расширение .t и является скриптом на shell. Начинается со строки указания интерпретатора:
#!/bin/sh
Затем подключаются функции проверки:
. alt-test-functions
После этого следует одна или несколько проверок и заканчивается файл описания теста вызовом функции
test_end
Пример
#!/bin/sh
. alt-test-functions
test_file /etc/hosts
test_exec ls
test_package coreutils
test_end
Проверки
Проверка | Описание |
---|---|
test_file <имя файла> [<описание при неудаче>] | проверить, существует ли файл |
test_exec <имя программы> [<описание при неудаче>] | проверить, существует ли исполняемая программа и доступна ли она для запуска |
test_package <имя пакета> [<описание при неудаче>] | проверить, установлен ли пакет в системе или существует на диске. Имя пакета можно указывать с версией и знаком сравнения с версии 1.1.2 . Пример: test_package "samba>4.0.16" |
test_unwished_package <имя пакета> [<описание при неудаче>] | проверить, отсутствует ли нежелательный пакет в системе или на диске. с версии 1.1.4 |
Переменные среды окружения
Переменная | Описание |
---|---|
TEST_PACKAGE_SOURCE | Путь к файлу с образом ISO, где проверять наличие пакетов с версии 1.1.2 |
Полезные функции
Функция | Описание |
---|---|
get_package_version <имя пакета> | Получить версию и релиз установленного или существующего на диске пакета с версии 1.1.0 |
Универсальная проверка
<вызов программы> ok $? "<описание при неудаче>"
Комментарии в выводе
append_comment "Комментарий"
Имена вызываемых файлов с тестами выводятся в комментариях с версии 1.1.1 .
Советы и секреты
Потоковая обработка
Так как результаты тестов накапливаются в переменной $TAP, то при потоковой обработке избегайте использования subshell (например, в конвейерах):
Неправильно:
find /usr/share/applications -name \*.desktop | while read desktop_file; do
test_desktop_l10n "$desktop_file"
done
Правильно:
out="$(mktemp)"
find /usr/share/applications -name \*.desktop > $out
while read -r desktop_file; do
test_desktop_l10n "$desktop_file"
done < $out
rm -f $out