Winter TCPU

Конфигурация задания

Конфигурация задания описывается в файле 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>
Этот тег содержит в себе набор описания входных и выходных переменных.
Тег описания переменных 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. Для описания данного типа заданий необходимы лишь некоторые аттрибуты настроек:

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

Вернуться к оглавлению
(c) Vitaly Medvedsky, 2006-2007