Конфигурация задания описывается в файле 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
- файл для отображения пользователю и файл для тестирования соответственно.