4
0
Files
public-tests-2026/README.md
2026-02-10 13:40:02 +00:00

5.1 KiB
Raw Blame History

Тесты к курсу «Язык программирования C++»

Условия лабораторных работ вы можете найти в таблице курса.

Порядок запуска локального тестирования:

  1. Склонировать этот репозиторий

    git clone https://gitea.mkorn.me/ai360-cpp/public-tests-2026.git
    
  2. Инициализировать виртуальную среду Python

  3. Скомпилировать разработанную программу

  4. Выполнить команду:

    python main.py --executable-path <путь к исполняемому файлу> --suite <набор тестов>
    

    Примечание. В *nix-подобных системах команда python может быть недоступна, вместо неё используйте команду python3.

  5. Для ускорения отладки рекомендуется создать скрипт, выполняющий шаги 3-4.

  6. Для обновления тестов выполнить команду:

    git pull
    

Лабораторные работы

Ниже представлена таблица доступных для тестирования (как локально, так и автоматически в репозиториях) лабораторных работ с названием набора тестов для тестера (suite).

Лабораторная работа Набор тестов
0 Интро intro

Скрипт запуска

Note

Вы можете запустить команду python main.py --help для получения справочной информации.

Тестер выполняет тестирование программы методом "чёрного ящика", то есть на вход input программа выдаёт какой-то выход output, который должен быть правильным с точки зрения текущего теста. Необходимыми и достаточными параметрами main.py являются:

  • --executable-path <path/to/executable> - путь к исполняемому файлу;
  • --suite <name> - выбор задания (набор тестов).

Поскольку отсутствие оптимизации при сборке и санитайзеры могут замедлить вашу программу, то имеет смысл установить множитель максимального времени исполнения процесса на все тесты:

  • --timeout-factor <float> - множитель максимального времени исполнения порождённого процесса программы (по умолчанию: 1.0).

Для генерации полного отчёта (общая информация и информация по каждому тесту) в формате JSON:

  • --report-output-path <filename> - генерация JSON отчёта с заданным названием файла (по умолчанию: нет генерации).

Имеется возможность проверить программу с поддержанными динамическими анализаторами и дебаггерами:

  • --dynamic-wrapper <choice> - запуск приложения в обёртке динамического анализатора или дебаггера (по умолчанию: нет обёртки).

    Примечание. Требуемая операционная система: Linux. Обёртки: дебаггер gdb, динамический анализатор valgrind.

Виртуальная среда Python

Для тестирования рекомендуется создать виртуальную среду venv и тестироваться через неё. Таким образом, можно поднять уровень изоляции от всей системы и избежать установки конфликтующих библиотек:

  1. создание новой среды:

    python -m venv venv
    
  2. активация текущей командной строки как venv:

    source ./venv/bin/activate
    # на Linux/MacOS (Bash)
    
    .\venv\Scripts\Activate.ps1
    # на Windows (Powershell)
    
    .\venv\Scripts\activate.bat
    REM на Windows (CMD)
    
  3. установка всех необходимых для тестирования библиотек:

    pip install -r requirements.txt