Skip to content

cppdevcourse/hw-real48

Repository files navigation

Домашнее задание 'Hide Secret'

Выполнение

Добавьте в корневую директорию репозитория файл real48.cpp. Отредактируйте файл real48.hpp. Требования к программе возьмите из документа с домашним заданием.

Сборка

Для сборки проекта выполните:

cmake -B build/
cmake --build build/ -j $(nproc)

Тестирование

Зависимости

Для тестирования проекта используются следующие зависимости:

  • GoogleTest — библиотека/фреймворк для написания юнит-тестов для C/C++.

  • libFuzzer — часть тулчейна LLVM для написания фаззинг-тестов.

GoogleTest можно установить стандартным пакетным менеджером операционной системы. libFuzzer устанавливается вместе с тулчейном LLVM. Для его использования достаточно установить Clang как компилятор для C/C++ по-умолчанию. Если текущий компилятор — не Clang, то будут собраны только юнит-тесты, сборка фаззинг-тестов пропускается.

Nix

Note

Необязательный раздел

Есть возможность установить зависимости выше при помощи пакетного менеджера Nix. Преимущество такого подхода в том, что при использовании Nix возможно получить точно такое же окружение сборки, как и в GitHub Actions. Для этого установите Nix, включите Nix Flakes и выполните:

nix develop

Сборка

Для сборки проекта с тестами выполните:

CC=clang CXX=clang++ cmake -B tests/ -DWITH_TESTS=ON
cmake --build tests/ -j $(nproc)

Запуск тестов

Для запуска тестов выполните:

ctest --test-dir tests/ --output-on-failure

Обратите внимание, что последний тест — фаззинг-тест. Его выполнение занимает примерно минуту, он не завис.

Решение

Решение в зашифрованном виде хранится в директории solution.

About

Домашнее задание "Real48"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors