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

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