Непрерывная интеграция
Студенты должны пройти все проверки в конвейере CI, прежде чем начнется проверка работы студентами и преподавателями. Это включает в себя успешную проверку кода, а также стадии построения и тестирования. Каждая интеграция проверяется автоматизированной сборкой и автоматизированными тестами.
CI конвейер
CI конвейер для данного проекта выражается с помощью наглядной схемы:
Running scripts/run_tests.py
Automated tests are executed through the scripts/run_tests.py
helper. The
script requires several environment variables to be defined:
PPC_NUM_THREADS
Number of threads to use. The value is also exported as
OMP_NUM_THREADS
.PPC_NUM_PROC
Number of MPI processes to launch.
PPC_ASAN_RUN
Set to
1
when sanitizers are enabled to skipvalgrind
runs (optional, default0
).PPC_IGNORE_TEST_TIME_LIMIT
Set to
1
to disable test time limits (optional, default0
).
The execution mode is selected with --running-type
. The most common modes
are threads
for shared-memory backends and processes
for MPI based
tests. performance
mode runs performance benchmarks.
Example usage:
export PPC_NUM_THREADS=4
export PPC_NUM_PROC=2
# Multithreaded functional tests
scripts/run_tests.py --running-type="threads"
# MPI functional tests
scripts/run_tests.py --running-type="processes"
# Performance benchmarks
scripts/run_tests.py --running-type="performance"
Additional MPI arguments can be supplied with --additional-mpi-args
when
running in processes
mode.