Commit b177b614 authored by Dimitris Lampridis's avatar Dimitris Lampridis

Merge branch '29-run-pytests-in-ci' into 'master'

Resolve "Run pytests in CI"

Closes #29

See merge request be-cem-edl/common/mockturtle!20
parents e573abc6 19cd0973
......@@ -14,6 +14,7 @@ include:
- 'edl-gitlab-ci.yml'
- local: 'hdl/syn/.gitlab-ci.yml'
- local: 'hdl/testbench/.gitlab-ci.yml'
- local: 'tests/.gitlab-ci.yml'
cppcheck:
stage: analyse
......@@ -29,10 +30,13 @@ build-centos-7:
name: gitlab-registry.cern.ch/be-cem-edl/evergreen/gitlab-ci/build-fec-sw:latest
script:
- make
- make -C tests/firmware
artifacts:
paths:
- include/
- software/lib/
- software/include/mockturtle/hw/mockturtle_cpu*.h
- software/kernel/*.ko
- software/lib/*.so*
- tests/firmware/*/*.bin
build-kernel:
interruptible: true
......
# SPDX-FileCopyrightText: 2022 CERN (home.cern)
#
# SPDX-License-Identifier: LGPL-2.1-or-later
test_on_hw:
stage: validate
parallel:
matrix:
- CARD:
- spec
- svec
needs:
# unfortunately the $CARD variable cannot be expanded here
- "fpga_synthesis: [spec_mt_demo]"
- "fpga_synthesis: [svec_mt_demo]"
- "build-centos-7"
tags:
- fec-runner
- card-$CARD
variables:
VID: "000010dc"
_BITSTREAM_DEST: $CI_PROJECT_DIR/$EDL_CI_EOS_OUTPUT_DIR/bitstreams
rules:
- if: $CARD == "spec"
variables:
PID: "4d544443"
BUS: "PCI"
MODULE: "FMC-SPEC"
_BITSTREAM_NAME: "spec-mt_demo-45t.bin"
- if: $CARD == "svec"
variables:
PID: "4d544456"
BUS: "VME"
MODULE: "FMC-SVEC"
_BITSTREAM_NAME: "svec-mt_demo.bin"
before_script:
- export PATH=$PATH:/acc/local/share/ht_tools/L867/git/latest
- rmmod mockturtle-demo-$CARD || true
- rmmod mockturtle || true
- rmmod $CARD-fmc-carrier || true
- sh /usr/local/drivers/scripts/${CARD}_fmc_carrier_install.sh
- export TMP_DIR=$(mktemp -d)
- mkdir -p $TMP_DIR/lib/modules
- cp -r /usr/local/lib/modules/$(uname -r) $TMP_DIR/lib/modules
- cp software/kernel/*.ko $TMP_DIR/lib/modules/$(uname -r)/extra/cern/
- export MODPROBE_ROOT=$TMP_DIR
- depmod -b $MODPROBE_ROOT
- export FIRMWARE_PATH=$TMP_DIR/bitstreams
- mkdir -p $FIRMWARE_PATH
- tar xf $_BITSTREAM_DEST/${CARD}_mt_demo.tar.xz -C $FIRMWARE_PATH
- ln -sf $FIRMWARE_PATH/${CARD}_mt_demo.bin $FIRMWARE_PATH/$_BITSTREAM_NAME
- export SLOT=$(cat /etc/transfer.ref | grep $MODULE | grep $BUS | head -n 1 | awk '{print $20}')
- |
if [ $CARD = "spec" ]; then
export DEVID="0000:$(dynpci -s $SLOT | awk '{print $2}')"
export FPGAID="spec-$DEVID"
elif [ $CARD = "svec" ]; then
export DEVID="svec-vme.$SLOT"
export FPGAID="$DEVID-fpga"
else
echo -e "\e[31mUnknown card $CARD. Aborting...\e[0m"
exit 1
fi
- source /usr/local/drivers/scripts/environment.sh && card_slot_fpga_configure $BUS $SLOT mt_demo
- modprobe -d $MODPROBE_ROOT mockturtle
- modprobe -d $MODPROBE_ROOT mockturtle-${CARD}-demo
- export MT_NODE=$(ls -d /sys/bus/platform/devices/id\:$VID$PID.*/mock-turtle.* | cut -d '.' -f 4)
- DESTLIBDIR=$TMP_DIR/lib make -C software/lib install
- export LD_LIBRARY_PATH=$TMP_DIR/lib
- source /acc/local/share/python/acc-py/base/pro/setup.sh
- acc-py venv $TMP_DIR/venv
- source $TMP_DIR/venv/bin/activate
- pip install software/lib/PyMockTurtle
- pip install -r tests/requirements.txt
script:
- tail -n +1 /sys/kernel/debug/$DEVID/fpga_device_metadata
- tail -n +1 /sys/kernel/debug/$DEVID/$FPGAID/build_info
- /usr/local/bin/lsmockturtle
- cd tests
- pytest --id $MT_NODE --junitxml=./pytest.xml
artifacts:
when: always
paths:
- tests/pytest.xml
reports:
junit: tests/pytest.xml
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment