Alt-test: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «alt-test — инфраструктура тестирования ALT Linux на базе [http://developer.amd.com/tools-and-sdks/open-source/tapper/ Tapper]. П...»)
 
мНет описания правки
 
(не показано 11 промежуточных версий 2 участников)
Строка 1: Строка 1:
alt-test — инфраструктура тестирования ALT Linux на базе [http://developer.amd.com/tools-and-sdks/open-source/tapper/ Tapper].  
'''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>


== Базовые тесты ==
== Проверки ==


test_file <имя файла> [<описание при неудаче>] проверить, существует ли файл
{|class="standard"
test_exec <имя программы> [<описание при неудаче>] проверить, существует ли исполняемая программа
!Проверка
test_package <имя файла> [<описание при неудаче>] проверить, установлен ли пакет
!Описание
|-
|{{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