bbfdm/gitlab-ci/memory-test.sh

76 lines
2.3 KiB
Bash
Executable file

#!/bin/bash
echo "Functional API Tests"
pwd
source ./gitlab-ci/shared.sh
# install required packages
exec_cmd apt update
exec_cmd apt install -y zip
date +%s > timestamp.log
# compile and install libbbf
install_libbbf
install_libbbf_test
install_libbulkdata
#install_libperiodicstats
supervisorctl status all
supervisorctl update
sleep 5
supervisorctl status all
ret=0
function run_valgrind()
{
echo "Running bbf_dm $1 in valgrind"
valgrind --xml=yes --xml-file=/builds/iopsys/bbf/$2 --leak-check=full --show-reachable=yes --show-leak-kinds=all --errors-for-leak-kinds=all --error-exitcode=1 --track-origins=yes /builds/iopsys/bbf/test/bbf_test/bbf_dm $1 > /builds/iopsys/bbf/$3
ret=$(( ret + $? ))
}
echo "Running memory check on datamodel"
run_valgrind "-u get_info Device. 0" "memory-report-usp-get_info-all-schema.xml" "output-report-usp-get_info-all-schema.log"
run_valgrind "-u get_info Device. 1" "memory-report-usp-get_info-param-only.xml" "output-report-usp-get_info-param-only.log"
run_valgrind "-u get_info Device. 2" "memory-report-usp-get_info-event-only.xml" "output-report-usp-get_info-event-only.log"
run_valgrind "-u get_info Device. 3" "memory-report-usp-get_info-operate-only.xml" "output-report-usp-get_info-operate-only.log"
run_valgrind "-u get Device." "memory-report-usp-get.xml" "output-report-usp-get.log"
run_valgrind "-u list_operate" "memory-report-usp-operate.xml" "output-report-usp-operate.log"
run_valgrind "-u get_schema" "memory-report-usp-schema.xml" "output-report-usp-schema.log"
run_valgrind "-u instances Device." "memory-report-usp-instances.xml" "output-report-usp-instances.log"
run_valgrind "-c get Device." "memory-report-cwmp-get.xml" "output-report-cwmp-get.log"
run_valgrind "-c list_operate" "memory-report-cwmp-operate.xml" "output-report-cwmp-operate.log"
run_valgrind "-c get_schema" "memory-report-cwmp-schema.xml" "output-report-cwmp-schema.log"
run_valgrind "-c instances Device." "memory-report-cwmp-instances.xml" "output-report-cwmp-instances.log"
if [ "$ret" -ne 0 ]; then
echo "Memory check failed"
check_ret $ret
fi
supervisorctl stop all
supervisorctl status
exec_cmd zip -r bbf_out.zip memory-report-* output-report-*
#report part
#GitLab-CI output
gcovr -r . 2> /dev/null #throw away stderr
# Artefact
gcovr -r . 2> /dev/null --xml -o ./memory-test-coverage.xml
echo "Memory Test :: PASS"