Конфигурация задания описывается в файле config.xml.
Структура файла:<?xml version="1.0" encoding="Windows-1251" ?> <task type="b"> - Корневой тег задания <tests> - Количество тестов Txx </tests> <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="b"> ... </task> |
Корневой тег задания, содержит в себе все другие теги описания. Имеет атрибут type="b" , где b - тип задания Winter ASM. |
Тег task
включает в себя следующие теги:
<tests> Txx </tests> |
Данный тег задает количество тестов для прохождения пользователя, где:Txx - натуральное число, количество тестов.
|
<variables> ... </variables> |
Этот тег содержит в себе набор описания входных и выходных переменных. |
<input> <var>...</var> ... </input> |
Данный тег задает набор описаний входных переменных. Где тег var - описание переменной.
|
<output> <var>...</var> ... </output> |
Данный тег задает набор описаний выходных переменных. Где тег var - описание переменной.
|
Выделяют два типа входных переменных:
<var> <name>vName</var> <type>vType</type> <isVisible>vVis</isVisible> <generate> <loBound>LO</loBound> <hiBound>HI</hiBound> </generate> </var> |
Этот тег задает описание генерируемой целочисленной входной переменной, где:vName - имя переменной.vType - допустимый тип переменной, подробнее о типах тут.vVis - признак видимости переменной, может принимать значения только TRUE или FALSE .LO - нижняя граница генерирования.HI - верхняя граница генерирования.
|
<var> <name>vName</var> <type>vType</type> <isVisible>vVis</isVisible> <generate> <length>len</length> <charset>set</charset> <delimiter>del</delimter> </generate> </var> |
Этот тег задает описание генерируемой строковой входной переменной, где:vName - имя переменной.vType - допустимый тип переменной, подробнее о типах тут.vVis - признак видимости переменной, может принимать значения только TRUE или FALSE .len - длина строки.set - набор симовлов для генерирования.del - строка/символ разделитель строки, может быть пустым.
|
<var> <name>vName</var> <type>vType</type> <isVisible>vVis</isVisible> <preset> <value>value1</value> <value>value2</value> ... <value>valueN</value> </preset> </var> |
Данный тег задает описание выходной переменной, где:vName - имя переменной.vType - допустимый тип переменной, подробнее о типах тут.vVis - признак видимости переменной, может принимать значения только TRUE или FALSE .value1, value2, ..., valueN - допустимые значения переменной.
|
<var> <name>vName</name> <type>vType</type> <isVisible>vVis</isVisible> </var> |
Данный тег задает описание выходной переменной, где:vName - имя переменной.vType - допустимый тип переменной, подробнее о типах тут.vVis - признак видимости переменной, может принимать значения только TRUE или FALSE .
|
Пример файла конфигурации config.xml задания (ссылка для просмотра файла в браузере):
<?xml version="1.0" encoding="Windows-1251" ?> <task type="b"> <tests>3</tests> <variables> <input> <var> <name>w</name> <type>WORD</type> <isVisible>TRUE</isVisible> <preset> <value>2</value> <value>3</value> <value>4</value> <value>5</value> </preset> </var> <var> <name>e</name> <type>WORD</type> <isVisible>TRUE</isVisible> <generate> <loBound>0</loBound> <hiBound>9</hiBound> </generate> </var> </input> <output> <var> <name>s</name> <type>STRING</type> <isVisible>TRUE</isVisible> </var> </output> </variables> </task> |
Тип переменной | Описание | Генерация | Предустановка |
BYTE | Целочисленная переменная размером в один байт. | + | + |
WORD | Целочисленная переменная размером в два байта. | + | + |
STRING | Строковая переменная произвольной длины. | + | + |
Конфигурация тестирования описывается в файле task.cfg. Для описания данного типа заданий необходимы лишь некоторые аттрибуты настроек:
CHECKFILES = {*.*}
- Маска файлов необходимых для чекера.
CHECKSUBJECT = FILE
- Указание чекеру на объект тестирования.
TYPE = USERS
- "Пользовательский" тип чекера.
EXTTYPE = 'Пользовательская'
- Указание тестирующей системе на запуск чекера.
CHECKER = '«строка запуска проверяющего модуля»'
- Запуск внешнего модуля для проверки.
Пример файла task.cfg задания:
TYPE = USERS CHECKER = 'D:\Delta\CHECKERS\WChecker\wtcheck2.cmd task.pas $MAXPOINT$ $SOLUTION$ >nul' CHECKFILES = {*.*} CHECKSUBJECT = FILE EXTTYPE = 'Пользовательская' |
Здесь task.pas
- файл c исходным текстом задания.