Alt-test: различия между версиями
(Новая страница: «alt-test — инфраструктура тестирования ALT Linux на базе [http://developer.amd.com/tools-and-sdks/open-source/tapper/ Tapper]. П...») |
Yaleks (обсуждение | вклад) мНет описания правки |
||
(не показано 11 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
alt-test — инфраструктура тестирования ALT Linux на базе [ | '''alt-test''' — инфраструктура тестирования ALT Linux на базе [[Tapper]]. | ||
Программа распространяется под условиями лицензии GPLv3. | Программа распространяется под условиями лицензии '''GPLv3'''. | ||
Использование: | Использование: | ||
Строка 10: | Строка 10: | ||
!Описание | !Описание | ||
|- | |- | ||
|-l||Показать список доступных модулей тестирования | |{{prg|-l}}||Показать список доступных модулей тестирования | ||
|- | |- | ||
|-h||Справка по использованию | |{{prg|-h}}||Справка по использованию | ||
|- | |- | ||
|-v||Показывать полный ход тестирования | |{{prg|-v}}||Показывать полный ход тестирования | ||
|- | |- | ||
|--version||Версия программы | |{{prg|--version}}||Версия программы | ||
|} | |} | ||
Строка 38: | Строка 38: | ||
. alt-test-functions | . alt-test-functions | ||
После этого следует | После этого следует одна или несколько проверок и заканчивается файл описания теста вызовом функции | ||
test_end | test_end | ||
Строка 54: | Строка 54: | ||
test_end</source> | test_end</source> | ||
== | == Проверки == | ||
{|class="standard" | |||
!Проверка | |||
!Описание | |||
|- | |||
|{{cmd|test_file}} <имя файла> [<описание при неудаче>]||проверить, существует ли файл | |||
|- | |||
|{{cmd|test_exec}} <имя программы> [<описание при неудаче>]||проверить, существует ли исполняемая программа и доступна ли она для запуска | |||
|- | |||
|{{cmd|test_package}} <имя пакета> [<описание при неудаче>]||проверить, установлен ли пакет в системе или существует на диске. Имя пакета можно указывать с версией и знаком сравнения {{Since|1.1.2}}. Пример: {{prg|test_package "samba>4.0.16"}} | |||
|- | |||
|{{cmd|test_unwished_package}} <имя пакета> [<описание при неудаче>]||проверить, отсутствует ли нежелательный пакет в системе или на диске.{{Since|1.1.4}} | |||
|} | |||
=== Переменные среды окружения === | |||
== | {|class="standard" | ||
!Переменная | |||
!Описание | |||
|- | |||
|{{prg|TEST_PACKAGE_SOURCE}}||Путь к файлу с образом ISO, где проверять наличие пакетов {{Since|1.1.2}} | |||
|} | |||
=== Полезные функции === | |||
{|class="standard" | |||
!Функция | |||
!Описание | |||
|- | |||
|{{cmd|get_package_version}} <имя пакета>||Получить версию и релиз установленного или существующего на диске пакета {{Since|1.1.0}} | |||
|} | |||
== Универсальная проверка == | |||
<вызов программы> | <вызов программы> | ||
ok $? "<описание при неудаче>" | ok $? "<описание при неудаче>" | ||
== Комментарии в выводе == | |||
append_comment "Комментарий" | |||
Имена вызываемых файлов с тестами выводятся в комментариях {{Since|1.1.1}}. | |||
= Советы и секреты = | |||
== Потоковая обработка == | |||
Так как результаты тестов накапливаются в переменной {{term|$TAP}}, то при потоковой обработке избегайте использования subshell (например, в конвейерах): | |||
'''Неправильно:''' | |||
<source lang="Bash">find /usr/share/applications -name \*.desktop | while read desktop_file; do | |||
test_desktop_l10n "$desktop_file" | |||
done</source> | |||
'''Правильно:''' | |||
<source lang="Bash">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</source> | |||
[[Категория:Тестирование]] | [[Категория:Тестирование]] |
Текущая версия от 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