Файлы описания задания для Test Grid.
Версия документа : 0.2
История изменений:
18 окт. 2005 - Исправлены неточности в формате файла для Java [Кузнецов А.]
17 окт. 2005 - Исправлены неточности в формате файла для Java [Кузнецов А.]
17 окт. 2005 - Изменен формат файла
описания: добавлен числовой идентификатор теста
[Савенко Д.]
12 окт. 2005 - Первая версия документа [Кузнецов А.]
18 янв. 2006 - Изменен формат файла описания [Кузнецов А.]
1. Назначение файла описания
Файл описания поставляется с каждым рабочим модулем системы BOINC.
Файл описания используется клиентом системы BOINC и тестирующим модулем.
В этом файле содержатся следующие сведения:
- Тип задания.
- Ссылка на файл, содержащий описание задания.
в дальнейшем, если понадобится, будут введены какие-либо дополнительные теги, например "extension_tag".
При этом использование происходит следующим образом: клиент принимает решение о возможности
запуска теста на основе информации о типе задания и запускает тестирующий модуль.
Тестирующий модуль проверяет системные требования и запускает тесты поочереди по списку.
В случае, если тестурующий модуль обнаруживает, что система не удовлетворяет системным требованиям,
результат со специфической ошибкой возвращается клиенту без запуска каких-либо тестов из списка.
Тестурующий модуль способен распознавать определенные параметры указанные для каждого теста, и применить их.
Список распознаваемых параметров будет указан в документации к каждому тестирующему модулю.
2. Формат файла описания
Файл описания задания будет представлять собой XML-файл определенной структуры.
<?xml version="1.0"?>
<test type="JavaTest">
<description file="./description.xml"/>
<extension_tag>
...
</extension_tag>
</test>
Файл description.xml в данном примере, будет содержать информацию о системных требованиях к тестам.
Данные сведения будут иметь специфичную для каждого типа тестов структуру.
Также он содержит список тестов и параметров к ним.
3. Формат файла описания для Java-тестов
Ниже приведен пример файла описания системных требований и набора
Java-тестов. Описание тестирующего модуля для Java-кода
здесь.
Требования описываются в разделе <demands> и разделены на несколько категорий.
Это сделано для возможности расширить наборы тестов введением дополнительных модулей.
Изначально существуют следующие категории:
<jvm> - Определяют необходимые параметры JVM
<jdk> - Определяют необходимые параметры JDK (набор библиотек-тестов, выясняющих комплектацию JDK)
Далее следует список тестов в разделе <tests>.
Каждый тест характеризуется осмысленным именем, именем класса для запуска,
максимальным временем тестирования.
<?xml version="1.0"?>
<description>
<demands>
<requirement name="jvm">
<vendor>
<variant>*</variant>
</vendor>
<architecture>
<variant>x86</variant>
<variant>ia64</variant>
</architecture>
<version>
<range>
<min>
<major>1</major>
<middle>4</middle>
<minor>2</minor>
<tail>*</tail>
</min>
<max>
<major>1</major>
<middle>5</middle>
<minor>*</minor>
<tail>*</tail>
</max>
</range>
</version>
</requirement>
</demands>
<tests>
<test id="1">
<name>MegaTest</name>
<class>ru.nsu.swsoft.tgrid.tframework.execution.example.HelloWorldTest</class>
<timeout>500</timeout>
</test>
</tests>
</description>