sysprog icon indicating copy to clipboard operation
sysprog copied to clipboard

dockerfile for allcups

Open azlymoon opened this issue 1 year ago • 0 comments

Автоматизированная проверка для второй домашки и небольшой шаблон для оформления остальных работа.

Идея следующая: В статических данных храним test.c/checker.py, Makefile и hw_number.json. Первые два файла нужны, чтобы студенты не поломали тестирование, третий необходим, чтобы можно было различить с какой именно домашней работой взаимодействуем. Для каждой задачи эти файлы будут собственные. После моунта всех путей, запускаем test.sh, который определяет номер работы, копирует тесты и Makefile, собирает решение и запускает тесты. Исходя из результата тестов записывает ответ в output.json. Студент может отправить неограниченное количество файлов, если упакует их в архив. Изначально считаю, что загружают solution.zip

Вопросы:

  1. Makefile'ы местами немного различаются. Где-то происходит только сборка, где-то сборка и запуск тестов. Возможно стоит немного переписать их под общий стиль, чтобы не покрывать это условиями в test.sh, потому что логика тестирования для 3, 4 и 5 работ одинаковая.
  2. Не совсем понимаю как проверить из test.sh какие макросы, объявленные у студента в работе, чтобы выставить корректное количество баллов. Есть вариант в исходном файле с помощью grep проверить наличие макроса, но не уверен, что это будет хорошим решением.
  3. Кажется в одной из работы был момент, когда проверка может производиться совсем долго. Что делаем в такой ситуации?

Тестировал подобным запуском:

docker build . -f DockAllcups.dockerfile -t allcups
docker run --mount "type=bind,src=$(pwd)/../testDockerFiles/resources,dst=/tmp/data" --mount "type=bind,src=$(pwd)/../testDockerFiles/solution,dst=/sysprog/solution" allcups 

Где в папке testDockerFiles эмитировал решения студента и статические файлы для задачи.

azlymoon avatar Oct 16 '24 22:10 azlymoon