Файлы описания задания для Test Grid.

Версия документа : 0.2

История изменений:
18 окт. 2005 - Исправлены неточности в формате файла для Java [Кузнецов А.]
17 окт. 2005 - Исправлены неточности в формате файла для Java [Кузнецов А.]
17 окт. 2005 - Изменен формат файла описания: добавлен числовой идентификатор теста [Савенко Д.]
12 окт. 2005 - Первая версия документа [Кузнецов А.]

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>
                	<jvm>
                        	<version>1.5.0.4\1.4.2\1.3</version>        
  	                	<vendor>Sun\Bea\... или *</vendor>
                        	<architecture>x86</architecture>
                          	....
                	</jvm>
                	<jdk>
                        	<module>JavaMail</module>
                        	<module>JAF</module>
                        	<module>JAXP</module>
                          	....
                	</jdk>
        	</demands>
        	<tests>
                	<test id="1">
                        	<name>MegaClassTest</name>
                        	<class>com.swsoft.coolprog.MegaClassTest</class>    
                        	<timeout>60</timeout>       
                          	....
                	</test>
        	</tests>
        </description>