]>
git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/run-backend-api-tests.sh
3 # cross shell: Are we sourced?
4 # Source: https://stackoverflow.com/a/28776166/3185053
5 ([[ -n $ZSH_EVAL_CONTEXT && $ZSH_EVAL_CONTEXT = ~
: file $
]] ||
6 [[ -n $KSH_VERSION && $
( cd "$(dirname -- " $0 ")" &&
7 printf '%s' " ${PWD%/} /" ) $
( basename -- " $0 " ) != " ${.sh.file} " ]] ||
8 [[ -n $BASH_VERSION ]] && ( return 0 2 >/ dev
/ null
)) && sourced
= 1 || sourced
= 0
10 if [ " $sourced " -eq 0 ] ; then
14 if [[ " $1 " = "-h" ||
" $1 " = "--help" ]]; then
15 echo "Usage (run from ./):"
16 echo -e " \t ./run-backend-api-tests.sh"
17 echo -e " \t ./run-backend-api-tests.sh [tests]..."
20 echo -e " \t ./run-backend-api-tests.sh tasks.mgr.dashboard.test_pool.DashboardTest"
22 echo "Or source this script. This allows to re-run tests faster:"
23 echo -e " \t source run-backend-api-tests.sh"
24 echo -e " \t run_teuthology_tests [tests]..."
25 echo -e " \t cleanup_teuthology"
31 get_cmake_variable
() {
33 grep " $variable " CMakeCache.txt | cut
-d "=" -f 2
36 [ -z " $BUILD_DIR " ] && BUILD_DIR
= build
38 LOCAL_BUILD_DIR
= " $CURR_DIR /../../../../ $BUILD_DIR "
44 virtualenv
--python = ${TEUTHOLOGY_PYTHON_BIN:-/usr/bin/python} venv
45 source venv
/ bin
/ activate
46 pip
install 'setuptools >= 12'
47 pip
install git
+ https
:// github.com
/ ceph
/ teuthology
#egg=teuthology[test]
49 pip
install -r requirements.txt
-c constraints.txt
56 # In CI environment we cannot install coverage in system, so we install it in a dedicated venv
57 # so only coverage is available when adding this path.
59 virtualenv
--python =/ usr
/ bin
/ python3 coverage-venv
60 source coverage-venv
/ bin
/ activate
62 pip
install coverage
== 4.5.2
63 COVERAGE_PATH
= $
( python
-c "import sysconfig; print(sysconfig.get_paths()['platlib'])" )
68 if [[ -n " $JENKINS_HOME " ]]; then
69 CEPH_OUT_DIR
= ${CEPH_OUT_DIR:-"$LOCAL_BUILD_DIR"/out}
70 MGR_LOG_FILES
= $
( find " $CEPH_OUT_DIR " -iname "mgr.*.log" |
tr ' \n ' ' ' )
71 MGR_LOG_FILE_LAST_LINES
= 60000
72 for mgr_log_file
in ${MGR_LOG_FILES[@]} ; do
73 printf " \n\n Displaying last ${MGR_LOG_FILE_LAST_LINES} lines of: $mgr_log_file \n\n "
74 tail -n ${MGR_LOG_FILE_LAST_LINES} $mgr_log_file
75 printf " \n\n End of: $mgr_log_file \n\n "
77 printf " \n\n TEST FAILED. \n\n "
81 run_teuthology_tests
() {
82 trap on_tests_error ERR
85 find ..
/ src
/ pybind
/ mgr
/ dashboard
/ -name '*.pyc' -exec rm -f {} \
;
89 if [[ "$@" == '' ||
"$@" == '--create-cluster-only' ]]; then
90 TEST_CASES
= `for i in \` ls $LOCAL_BUILD_DIR / ..
/ qa
/ tasks
/ mgr
/ dashboard
/ test_
* \
`; do F=$(basename $i ); M=" ${F%.*} "; echo -n " tasks.mgr.dashboard. $M "; done`
91 # Mgr selftest module tests have to be run at the end as they stress the mgr daemon.
92 TEST_CASES
= "tasks.mgr.test_dashboard $TEST_CASES tasks.mgr.test_module_selftest"
93 if [[ "$@" == '--create-cluster-only' ]]; then
98 TEST_CASES
= " $TEST_CASES $t "
102 export PATH
= $LOCAL_BUILD_DIR / bin
: $PATH
103 source $TEMP_DIR / venv
/ bin
/ activate
# Run after setting PATH as it does the last PATH export.
104 export LD_LIBRARY_PATH
= $LOCAL_BUILD_DIR / lib
/ cython_modules
/ lib
.3 /: $LOCAL_BUILD_DIR / lib
105 local source_dir
= $
( dirname " $LOCAL_BUILD_DIR " )
106 local pybind_dir
= $source_dir / src
/ pybind
107 local python_common_dir
= $source_dir / src
/ python-common
108 # In CI environment we set python paths inside build (where you find the required frontend build: "dist" dir).
109 if [[ -n " $JENKINS_HOME " ]]; then
110 export PYBIND
= $LOCAL_BUILD_DIR / src
/ pybind
113 export PYTHONPATH
= $source_dir / qa
: $LOCAL_BUILD_DIR / lib
/ cython_modules
/ lib
.3 /: $pybind_dir : $python_common_dir : ${COVERAGE_PATH}
116 export COVERAGE_ENABLED
= true
117 export COVERAGE_FILE
= .coverage.mgr.dashboard
118 find .
-iname "* ${COVERAGE_FILE} *" -type f
-delete
120 python ..
/ qa
/ tasks
/ vstart_runner.py
--ignore-missing-binaries $OPTIONS $
( echo $TEST_CASES )
126 cleanup_teuthology
() {
127 cd " $LOCAL_BUILD_DIR "
130 if [[ " $COVERAGE_ENABLED " == 'true' ]]; then
131 source $TEMP_DIR / coverage-venv
/ bin
/ activate
132 ( coverage combine
&& coverage report
) || true
143 unset LOCAL_BUILD_DIR
145 unset setup_teuthology
148 unset run_teuthology_tests
149 unset cleanup_teuthology
154 run_teuthology_tests
--create-cluster-only
156 # End sourced section. Do not exit shell when the script has been sourced.
157 if [ " $sourced " -eq 1 ] ; then
161 run_teuthology_tests
"$@"