Конфигурация задания описывается в файле config.xml.
Структура файла:
<?xml version="1.0" encoding="Windows-1251" ?>
<task type="d"> - Корневой тег задания
<tests> - Количество тестов
Txx
</tests>
<offset> - Смещение
Offset
</offset>
<variables> - Описание переменных
<input> - Описание входных переменных
<var> - Переменная #1
...
</var>
<var> - Переменная #2
...
</var>
...
<var> - Переменная #N
...
</var>
</input>
<output> - Описание выходных переменных
<var> - Переменная #1
...
</var>
<var> - Переменная #2
...
</var>
...
<var> - Переменная #M
...
</var>
</output>
</variables>
</task>
Теперь о каждом типе тегов подробнее:
<?xml version="1.0" encoding="Windows-1251" ?> - заголовок xml файла, остается неизменным.
|
<task type="d"> ... </task> |
Корневой тег задания, содержит в себе все другие теги описания. Имеет атрибут type="d", где d - тип задания Winter TCPU. |
Тег task включает в себя следующие теги:
|
<tests> Txx </tests> |
Данный тег задает количество тестов для прохождения пользователя, где:Txx - натуральное число, количество тестов.
|
|
<offset> Offset </offset> |
Данный тег задает смещение для конкретного задания, которое используется при его тестировании в среде Winter.Offset - натуральное число, смещение.
|
|
<variables> ... </variables> |
Этот тег содержит в себе набор описания входных и выходных переменных. |
|
<input> <var>...</var> ... </input> |
Данный тег задает набор описаний входных переменных. Где тег var - описание переменной.
|
|
<output> <var>...</var> ... </output> |
Данный тег задает набор описаний выходных переменных. Где тег var - описание переменной.
|
Выделяют два типа входных переменных:
<var>
<name>vName</var>
<type>vType</type>
<isVisible>vVis</isVisible>
<range>range</range>
<generate>
<loBound>LO</loBound>
<hiBound>HI</hiBound>
</generate>
</var>
|
Этот тег задает описание генерируемой целочисленной входной переменной, где:vName - имя переменной.vType - допустимый тип переменной, подробнее о типах тут.vVis - признак видимости переменной, может принимать значения только TRUE или FALSE.range - диапазон устанавливаемых значений, определяется строкой полностью отражающей формат соблюдаемый в Winter. (Например 0.1 .. 0.6 означает, что значения переменной будут установлены с 1-го по 6-ой биты 0-вого байта).LO - нижняя граница генерирования.HI - верхняя граница генерирования.
|
<var>
<name>vName</var>
<type>vType</type>
<isVisible>vVis</isVisible>
<range>range</range>
<preset>
<value>value1</value>
<value>value2</value>
...
<value>valueN</value>
</preset>
</var>
|
Данный тег задает описание выходной переменной, где:vName - имя переменной.vType - допустимый тип переменной, подробнее о типах тут.vVis - признак видимости переменной, может принимать значения только TRUE или FALSE.range - диапазон устанавливаемых значений, определяется строкой полностью отражающей формат соблюдаемый в Winter. (Например 0.1 .. 0.6 означает, что значения переменной будут установлены с 1-го по 6-ой биты 0-вого байта).value1, value2, ..., valueN - допустимые значения переменной.
|
|
<var> <name>vName</name> <type>vType</type> <isVisible>vVis</isVisible> <range>range</range> </var> |
Данный тег задает описание выходной переменной, где:vName - имя переменной.vType - допустимый тип переменной, подробнее о типах тут.vVis - признак видимости переменной, может принимать значения только TRUE или FALSE.
range - диапазон устанавливаемых значений, определяется строкой полностью отражающей формат соблюдаемый в Winter. (Например 0.1 .. 0.6 означает, что значения переменной будут установлены с 1-го по 6-ой биты 0-вого байта). |
Пример файла конфигурации config.xml задания для Winter TCPU(ссылка для просмотра файла в браузере):
<?xml version="1.0" encoding="Windows-1251" ?>
<task type="d">
<tests>3</tests>
<offset>10</offset>
<variables>
<input>
<var>
<name<A</name>
<type>REGISTER</type>
<isVisible>TRUE</isVisible>
<generate>
<loBound>1</loBound>
<hiBound>5</hiBound>
</generate>
</var>
</input>
<output>
<var>
<name>R1</name>
<type>REGISTER</type>
<isVisible>TRUE</isVisible>
</var>
</output>
</variables>
</task>
|
| Тип переменной | Описание | Генерация | Предустановка |
| MEMORY | Переменная ссылающаяся на значения в памяти(Data, Stack). | + | + |
| REGISTER | Переменная - регистр. | + | + |
Конфигурация тестирования описывается в файле task.cfg. Для описания данного типа заданий необходимы лишь некоторые аттрибуты настроек:
CHECKFILES = {*.*} - Маска файлов необходимых для чекера.
CHECKSUBJECT = FILE - Указание чекеру на объект тестирования.
TYPE = USERS - "Пользовательский" тип чекера.
EXTTYPE = 'Пользовательская' - Указание тестирующей системе на запуск чекера.
CHECKER = '«строка запуска проверяющего модуля»' - Запуск внешнего модуля для проверки.
Пример файла task.cfg задания для Winter TCPU:
|
TYPE = USERS CHECKER = 'D:\Delta\CHECKERS\WChecker\wtcheck3.cmd 1.tcpu $MAXPOINT$ $SOLUTION$ 1.hex >nul' CHECKFILES = {*.*} CHECKSUBJECT = FILE EXTTYPE = 'Пользовательская' |
Здесь 1.tcpu и 1.hex - файл для отображения пользователю и файл для тестирования соответственно.