5.3 KiB
Инструкция по запуску тестов
Помимо тестов на корректные выходные данные система автотестирования будет проверять твою программу и ее исходный код по следующим пунктам:
-
Стилевые тесты. Чтобы проверить, насколько красота твоего кода соответствует стандартам, ты можешь протестировать свой код с помощью утилиты clang-format. В папке
materials/лежит файл.clang-format, который содержит необходимые настройки для стилевого теста. Данный конфигурационный файл распространяет свое действие на все файлы, которые лежат с ним в директории или в директориях ниже. Поэтому, чтобы данные настройки применились к твоим файлам с исходным кодом, скопируй.clang-formatв папкуsrc.
Чтобы запустить проверку на стиль, выполни следующую команду:
clang-format -n src/sourcefile_name.c
Чтобы скачать clang-format, введи в терминал одну из следующих команд:
brew install clang-format
или, если у тебя есть root-права (для Ubuntu / Linux Mint / Debian)
sudo apt install clang-formatНеобходимая версия clang-format:
Mac 18.1.8
Linux 18.1.8Google Style: https://google.github.io/styleguide/cppguide.html
-
Тест на корректную работу с памятью. При написании C-программ очень важно следить за утечками памяти. Для этого в Unix-подобных операционных системах довольно часто используют утилиту valgrind. Однако на OS X имеются проблемы с поддержкой valgrind, поэтому вместо нее можно использовать утилиту leaks. Вдаваться в механизм работы этих утилит мы сейчас не будем — если интересно, можешь почитать в гугле.
Чтобы запустить свой исполняемый файл с помощью этой утилиты, набери в терминале:
leaks -atExit -- ./main.out | grep LEAK:Обрати внимание на команду
| grep LEAK:. Мы используем ее для короткого вывода, чтобы видеть только линии с утечками, если они есть. Если ты хочешь увидеть весь вывод, просто удали эту команду.При запуске исполняемого файла с помощью leaks может появиться сообщение об ошибке:
dyld: could not load inserted library ‘/usr/local/lib/libLeaksAtExit.dylib’ because image not found
Ошибка возникает из-за того, что leaks не может найти библиотеку libLeaksAtExit.dylib.
В этом случае тебе необходимо ввести следующие команды:cd /usr/local/lib sudo ln -s /Applications/Xcode.app/Contents/Developer/usr/lib/libLeaksAtExit.dylibДополнительно:
Используй флаг-excludeутилиты leaks для того, чтобы отфильтровать утечки в функциях, где известно об утечках памяти. Этот флаг позволяет уменьшить количество посторонней информации, сообщаемой leaks.VALGRIND
Чтобы установить valgrind на компьютер, введи одну из следующих команд:
brew install valgrind
или, если у тебя есть root-права (для Ubuntu / Linux Mint / Debian)
sudo apt install valgrind
Чтобы запустить свой исполняемый файл с помощью этой утилиты, набери в терминале:
valgrind --tool=memcheck --leak-check=yes ./main.outНе рекомендуется использовать valgrind на OS X, вместо нее лучше использовать leaks.
-
Тест сборки. Программу можно проверить на корректность сборки на тестовой системе. Для этого потребуется установленный Docker. Если на системе есть докер, то можно зайти в директорию
materials/buildи запустить оттуда скрипт run.sh. Скрипт обернет твое решение в докер и запустит его вместе с типовым сценарием сборки.