Различия между версиями 4 и 5
Версия 4 от 2015-02-14 14:03:38
Размер: 4281
Редактор: FrBrGeorge
Комментарий:
Версия 5 от 2015-02-14 14:16:18
Размер: 4285
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 20: Строка 20:
  * Кнопка «проверить»
   * Сгенерированная тестером страница отчёта `UserName/ContestName/TaskName\Report`
    * {1} неизменяемая
    * {2} с подсчётом количества запусков
  * Кнопка «проверить»
  * Сгенерированная тестером страница отчёта `UserName/ContestName/TaskName/Report`
  * {1} неизменяемая
  * {2} с подсчётом количества запусков

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

Концепция:

  • вся информация хранится в 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)