Alt-test
Материал из ALT Linux Wiki
(Различия между версиями)
(→Комментарии в выводе) |
Yaleks (обсуждение | вклад) м |
||
(2 промежуточные версии не показаны) | |||
Строка 1: | Строка 1: | ||
- | '''alt-test''' — инфраструктура тестирования ALT Linux на базе [ | + | '''alt-test''' — инфраструктура тестирования ALT Linux на базе [[Tapper]]. |
Программа распространяется под условиями лицензии '''GPLv3'''. | Программа распространяется под условиями лицензии '''GPLv3'''. | ||
Строка 64: | Строка 64: | ||
|{{cmd|test_exec}} <имя программы> [<описание при неудаче>]||проверить, существует ли исполняемая программа и доступна ли она для запуска | |{{cmd|test_exec}} <имя программы> [<описание при неудаче>]||проверить, существует ли исполняемая программа и доступна ли она для запуска | ||
|- | |- | ||
- | |{{cmd|test_package}} <имя пакета> [<описание при неудаче>]||проверить, установлен ли пакет в системе или существует на диске | + | |{{cmd|test_package}} <имя пакета> [<описание при неудаче>]||проверить, установлен ли пакет в системе или существует на диске. Имя пакета можно указывать с версией и знаком сравнения {{Since|1.1.2}}. Пример: {{prg|test_package "samba>4.0.16"}} |
+ | |- | ||
+ | |{{cmd|test_unwished_package}} <имя пакета> [<описание при неудаче>]||проверить, отсутствует ли нежелательный пакет в системе или на диске.{{Since|1.1.4}} | ||
|} | |} | ||
=== Переменные среды окружения === | === Переменные среды окружения === | ||
Строка 72: | Строка 74: | ||
!Описание | !Описание | ||
|- | |- | ||
- | |{{prg| | + | |{{prg|TEST_PACKAGE_SOURCE}}||Путь к файлу с образом ISO, где проверять наличие пакетов {{Since|1.1.2}} |
|} | |} | ||
Текущая версия на 11: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