moevm / oclint_extensions

2 stars 1 forks source link

OCLint extensions

Как собрать?

  1. Собрать докер-образ:
./scripts/build.sh
  1. Готово!

Как запускать?

Папка examples содержит примеры для проверки работоспособности критериев.

Примеры запуска проверки:

docker run --rm -v ./pr-2023-3384/:/app/solution/:ro oclint_checker \
    --test repo --format csv -- --rule MallocSizeof --rule StringCompare \
    --rc=LONG_METHOD=100 1> report.csv

Разработка

Без compile_commands.json ориентироваться в этом всём сложно, поэтому будет полезно собрать всё локально (без докера):

  1. Сначала надо собрать oclint, это займет очень много времени:
sudo scripts/get_oclint.sh
  1. После этого критерии можно собирать с помощью CMake. Например так:
mkdir build
cd build
cmake ../
cmake --build .

(или можно использовать любое расширение для вашего редактора кода, которое сделает это за вас)

  1. Перед запуском тестов критерии нужно еще установить
cd build
sudo cmake --install .

Тесты (или не тесты) запускаются с помощью scripts/entry.py. Это буквально точка входа докер образа, поэтому аргументы подаются точно также. Но поскольку всё запускается локально, входные данные подаются не через докеровский -v/--mount, а через -i/--input.