You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 6, 2022. It is now read-only.
где `URL` — путь до страницы авторизации в ejudge (https://caos.ejudge.ru/ej/client), а `CONTEST_ID` — параметр GET запроса на страницу авторизации (например, для https://caos.ejudge.ru/ej/client?contest_id=72`CONTEST_ID` равен 72).
98
+
99
+
Второй вариант — передача существующей сессии командам cacos: дописывайте
где `COOKIE` — значение куки EJSID (в Chrome можно найти в Developer Tools -> Application -> Cookies), а `TOKEN` — токен, добавляющийся к url-у всех страниц ejudge: например, для https://caos.ejudge.ru/ej/client/main-page/S5912f2126073f1a7?lt=1 токен есть `S5912f2126073f1a7`.
104
+
105
+
###### Общая таблица задач
106
+
```
107
+
$ cacos status
108
+
```
109
+
110
+
###### Просмотр условий
111
+
```
112
+
$ cacos task statement sm34-5
113
+
```
114
+
(в настоящее время не все условия отображаются корректно, будет исправлено).
115
+
116
+
###### Список посылок по задаче
117
+
```
118
+
$ cacos task run list sm12-3
119
+
```
120
+
###### Загрузка посылок
121
+
```
122
+
$ cacos task run get <RUN_ID>
123
+
```
124
+
где `RUN_ID` — номер посылки из `task run list`.
125
+
126
+
###### Сравнение посылок
127
+
```
128
+
$ cacos task diff <FIRST> <SECOND>
129
+
```
130
+
где `FIRST` и `SECOND` — номера посылок или пути до локальных файлов.
131
+
132
+
#### Тестирование
133
+
134
+
Тесты делятся на два вида — canonical и diff. Для первых задан ожидаемый вывод, для вторых требуется чекер.
135
+
136
+
Компиляторы, линкеры и интерпретаторы описаны в файле `langs.toml`; при первом запуске [стандартная конфигурация](config/langs.toml) будет установлена в `~/.config/cacos/` или аналог.
137
+
138
+
Прежде всего, выполните
139
+
```
140
+
$ cacos init
141
+
```
142
+
в директории задачи.
143
+
144
+
Опционально можно настроить параметны тестируемой программы:
$ cacos test gen diff --for VAR:FROM:TO:STEP --name <NAME> --generator <GENERATOR> --gen.stdin <GEN_INPUT> --test.stdin <TEST_INPUT>
159
+
$ cacos test gen canonical --for VAR:FROM:TO:STEP --name <NAME> --generator <GENERATOR> --gen.stdin <GEN_INPUT> --test.stdin <TEST_INPUT> --test.stdout <TEST_OUTPUT>
160
+
```
161
+
*`--for` задает переменную с именем `VAR`, которая доступна через запись `@{VAR}` в параметрах теста: `NAME`, `GET_INPUT`, аргументах (`--gen.arg`) и переменных окружения (`--gen.env`) генератора. Для каждой возможной комбинации переменных будет сгенерирован один тест. Например, для `--for i:1:3 --for j:1:5:2` будут сгенерированны тесты при `(i = 1, j = 1)`, `(i = 2, j = 1)`, `(i = 1, j = 3)`, `(i = 2, j = 3)`.
162
+
*`--generator` — исполняемый файл или список исходных файлов, разделенных запятыми.
163
+
*`--gen.stdin` — строка; можно использовать подстановку переменных через `@{VAR}`.
164
+
*`--test.stdin`, `--test.stdout` — файлы; вывод генератора записывается в `gen.stdout` и `gen.stderr`, по умолчанию `--test.stdin` равен `gen.stdout`, и для canonical тестов `--test.stdout` равен `gen.stderr`. Другими словами, по умолчанию ввод для теста равен stdout генератора, а вывод — stderr.
165
+
166
+
Для отладки генератора можно использовать `--keep-working-dirs`. При указании данного флага все файлы, созданные генератором, не будут удалены.
167
+
168
+
###### Запуск тестов
169
+
```
170
+
$ cacos test run
171
+
```
172
+
Опциональные параметры:
173
+
*`--exe` — список исходных файлов, по умолчанию из `cacos.toml` (который настраивается через `cacos config task`).
174
+
*`--checker` — исполняемый файл или список исходников чекера. Требуется для diff тестов.
175
+
*`--suite` — указать конкретное подмножество тестов для запуска.
0 commit comments