Различия между версиями 3 и 4
Версия 3 от 2015-02-14 14:02:53
Размер: 4281
Редактор: FrBrGeorge
Комментарий:
Версия 4 от 2015-02-14 14:03:38
Размер: 4281
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 6: Строка 6:
 * запуск тестов в статически развёрнутом [[ALT:Hasher]]-е (без сети) с переписыванием только тестирующей и пользовательской частей  * запуск тестов в статически развёрнутом [[Alt:Hasher]]-е (без сети) с переписыванием только тестирующей и пользовательской частей
Строка 36: Строка 36:
 * Первичное развёртывание [[ALT:Hasher]], один раз на запуск системы
  * {2} тип окружения (что ставить в [[ALT:Hasher]])
 * Каждый тест — с перезатиранием $HOME и $TEST ⇒ не нужно переразворачивать [[ALT:Hasher]]
 * Первичное развёртывание [[Alt:Hasher]], один раз на запуск системы
  * {2} тип окружения (что ставить в [[Alt:Hasher]])
 * Каждый тест — с перезатиранием $HOME и $TEST ⇒ не нужно переразворачивать [[Alt:Hasher]]

Проект простой проверялки Д/З

Концепция:

  • вся информация хранится в Moin, код просто вставляется в страницу
    • вставка специально оформляется (например, вход и выход в тесте)
  • запуск тестов в статически развёрнутом Hasher-е (без сети) с переписыванием только тестирующей и пользовательской частей

/!\ Можно ли сделать из страницы «форму», т. е. проверять исходник на наличие каких-то обязательных частей и вообще синтаксическую правильность, и не давать записывать, если испорчено?

Интерфейс/база на основе MoinMoin

  • Одна страничка вида Contests/Name на каждое тестирование

    • Подстраничка вида /TaskName для задачи

      • {1} Недоступна пользоватлеям на запись

      • Подстранички вида /TaskName/TestName для тестов

        • {1} недоступны пользователям

      • /!\ как задаётся тестирующая программа?

      • {2} /!\ Всякие другие подстранички (например, Makefile или что-то такое)

  • Индивидуальные странички пользователей
    • Подстранички UserName/ContestName/TaskName для решений

      • {1} недоступные другим пользователям

    • Кнопка «проверить»
      • Сгенерированная тестером страница отчёта UserName/ContestName/TaskName\Report

        • {1} неизменяемая

        • {2} с подсчётом количества запусков

    • {1} Сводная страница со всеми Report-ами UserName/ContestName/Reports

      • {2} Удобно отформатированная

    • {2} пользователь в группе ContestName

  • Макросы:
    • Создание тестирования
    • Создание задачи
      • Создание теста
      • /!\ не забыть про указание/задание тестирующей программы

    • Волшебный макрос, показывающий, каких решений ещё нет, и позволяющий создать страничку с решением по шаблону

/!\ Тестер на другой машине (передача по ssh?)

Тестер в чруте без сети (hasher)

  • Первичное развёртывание Hasher, один раз на запуск системы

    • {2} тип окружения (что ставить в Hasher)

  • Каждый тест — с перезатиранием $HOME и $TEST ⇒ не нужно переразворачивать Hasher

    • Пользовательские файлы копируются в $HOME от builder

      • Это вынутое содержимое UserName/ContestName/TaskName

    • Тесты и тестирующие программы копируются в $TEST от rooter

      • Это вынутое содержимое Contests/Name/TaskName/*

  • Стадии теста:
    1. {2} Компиляция исходника (с ограничением по времени)

    2. Запуск тестирующей программы, на входе — первый тест (с ограничением по времени и памяти)
    3. Второй…
    4. Генерация отчёта

Дерево страниц

  • UserName0

    • ContestName0

      • TaskName0

        • Report

      • TaskName1

      • Reports

    • ContestName1

  • UserName1

  • Contest

    • Name0

      • TaskName0

        • TestName0

        • TestName1

      • TaskName1

    • Name1

FrBrGeorge/SimpleTaskTester (последним исправлял пользователь FrBrGeorge 2015-02-14 14:59:57)