Файлы описания задания для 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>