From: Kefu Chai Date: Fri, 2 Aug 2019 05:26:36 +0000 (+0800) Subject: cmake: use script/run_tox.sh for running tox for dashboard X-Git-Tag: v15.1.0~1959^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f0079a1030bd021a7e34ed4128b01aff5776aecb;p=ceph.git cmake: use script/run_tox.sh for running tox for dashboard * adapt script/run_tox.sh to use different envs for dashboard's tox test. * use script/run_tox.sh for running dashboard's tox test * remove pybind/mgr/dashboard/run-tox.sh Signed-off-by: Kefu Chai --- diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt index 24a2efc9e292..29ee2c8da6bd 100644 --- a/src/pybind/mgr/dashboard/CMakeLists.txt +++ b/src/pybind/mgr/dashboard/CMakeLists.txt @@ -1,12 +1,3 @@ -set(MGR_DASHBOARD_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/mgr-dashboard-virtualenv) - -add_custom_target(mgr-dashboard-test-venv - COMMAND - ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV} - WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard - COMMENT "dashboard tests virtualenv is being created") -add_dependencies(tests mgr-dashboard-test-venv) - include(CMakeParseArguments) function(add_npm_command) set(options NODEENV) diff --git a/src/pybind/mgr/dashboard/run-tox.sh b/src/pybind/mgr/dashboard/run-tox.sh deleted file mode 100755 index 8086bb4e5f8f..000000000000 --- a/src/pybind/mgr/dashboard/run-tox.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env bash - -function dump_envvars { - echo "WITH_PYTHON2: ->$WITH_PYTHON2<-" - echo "WITH_PYTHON3: ->$WITH_PYTHON3<-" - echo "TOX_PATH: ->$TOX_PATH<-" - echo "ENV_LIST: ->$ENV_LIST<-" -} - -# run from ./ or from ../ -: ${CEPH_BUILD_DIR:=$PWD/.tox} -: ${MGR_DASHBOARD_VIRTUALENV:=$CEPH_BUILD_DIR/mgr-dashboard-virtualenv} -: ${WITH_PYTHON2:=ON} -: ${WITH_PYTHON3:=3} -test -d dashboard && cd dashboard - -if [ -e tox.ini ]; then - TOX_PATH=$(readlink -f tox.ini) -else - TOX_PATH=$(readlink -f $(dirname $0)/tox.ini) -fi - -# tox.ini will take care of this. -unset PYTHONPATH -export CEPH_BUILD_DIR=$CEPH_BUILD_DIR - -source ${MGR_DASHBOARD_VIRTUALENV}/bin/activate - -if [ "$WITH_PYTHON2" = "ON" ]; then - if [[ -n "$@" ]]; then - ENV_LIST+="py27-run," - else - ENV_LIST+="py27-cov,py27-lint,py27-check," - fi -fi -# WITH_PYTHON3 might be set to "ON" or to the python3 RPM version number -# prevailing on the system - e.g. "3", "36" -if [[ "$WITH_PYTHON3" =~ (^3|^ON) ]]; then - if [[ -n "$@" ]]; then - ENV_LIST+="py3-run," - else - ENV_LIST+="py3-cov,py3-lint,py3-check," - fi -fi -# use bash string manipulation to strip off any trailing comma -ENV_LIST=${ENV_LIST%,} - -tox -c "${TOX_PATH}" -e "${ENV_LIST}" "$@" -TOX_STATUS="$?" -test "$TOX_STATUS" -ne "0" && dump_envvars -exit $TOX_STATUS diff --git a/src/script/run_tox.sh b/src/script/run_tox.sh index 1417a2695cd3..ed4846ac585b 100755 --- a/src/script/run_tox.sh +++ b/src/script/run_tox.sh @@ -28,6 +28,46 @@ function get_tox_path() { fi } +function get_env_list_for_dashboard() { + local with_python2=$1 + shift + local with_python3=$1 + shift + local env_list + if $with_python2; then + if [ $# -gt 0 ]; then + env_list+="py27-run," + else + env_list+="py27-cov,py27-lint,py27-check," + fi + fi + if $with_python3; then + if [ $# -gt 0 ]; then + env_list+="py3-run," + else + env_list+="py3-cov,py3-lint,py3-check," + fi + fi + # use bash string manipulation to strip off any trailing comma + echo "${env_list%,}" +} + +function get_env_list() { + local with_python2=$1 + shift + local with_python3=$1 + shift + local env_list + if $with_python2; then + env_list+="py27," + fi + if $with_python3; then + env_list+="py3," + fi + # use bash string manipulation to strip off any trailing comma + echo "${env_list%,}" +} + function main() { local tox_path local script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" @@ -71,15 +111,23 @@ function main() { esac done + # normalize options + [ "$with_python2" = "ON" ] && with_python2=true || with_python2=false + # WITH_PYTHON3 might be set to "ON" or to the python3 RPM version number + # prevailing on the system - e.g. "3", "36" + [[ "$with_python3" =~ (^3|^ON) ]] && with_python3=true || with_python3=false + + local test_name if [ -z "$tox_path" ]; then # try harder - local test_name if [ $# -gt 0 ]; then test_name=$1 shift fi tox_path=$(get_tox_path $test_name) venv_path="$build_dir/$test_name" + else + test_name=$(basename $tox_path) fi if [ ! -f ${venv_path}/bin/activate ]; then @@ -91,17 +139,13 @@ function main() { # tox.ini will take care of this. export CEPH_BUILD_DIR=$build_dir - if [ "$with_python2" = "ON" ]; then - ENV_LIST+="py27," - fi - # WITH_PYTHON3 might be set to "ON" or to the python3 RPM version number - # prevailing on the system - e.g. "3", "36" - if [[ "$with_python3" =~ (^3|^ON) ]]; then - ENV_LIST+="py3," + local env_list + if [ $test_name = "dashboard" ]; then + env_list=$(get_env_list_for_dashboard $with_python2 $with_python3 "$@") + else + env_list=$(get_env_list $with_python2 $with_python3) fi - # use bash string manipulation to strip off any trailing comma - ENV_LIST=${ENV_LIST%,} - tox -c $tox_path/tox.ini -e "${ENV_LIST}" "$@" + tox -c $tox_path/tox.ini -e "$env_list" "$@" } main "$@" diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt index da417b5d4814..d9649f86fd80 100644 --- a/src/test/CMakeLists.txt +++ b/src/test/CMakeLists.txt @@ -540,34 +540,15 @@ add_ceph_test(test_objectstore_memstore.sh ${CMAKE_CURRENT_SOURCE_DIR}/test_obje add_ceph_test(smoke.sh ${CMAKE_CURRENT_SOURCE_DIR}/smoke.sh) -# XXX are these safe to remove? they used to be around for ceph-disk tox testing -set(env_vars_for_tox_tests - CEPH_BUILD_DIR=${CMAKE_BINARY_DIR} - CEPH_ROOT=${CMAKE_SOURCE_DIR} - CEPH_BIN=${CMAKE_RUNTIME_OUTPUT_DIRECTORY} - CEPH_LIB=${CMAKE_LIBRARY_OUTPUT_DIRECTORY} - CEPH_BUILD_VIRTUALENV=${CEPH_BUILD_VIRTUALENV} - LD_LIBRARY_PATH=${CMAKE_BINARY_DIR}/lib - PATH=$ENV{PATH}:${CMAKE_RUNTIME_OUTPUT_DIRECTORY}:${CMAKE_SOURCE_DIR}/src - PYTHONPATH=${CMAKE_SOURCE_DIR}/src/pybind - WITH_PYTHON2=${WITH_PYTHON2} - WITH_PYTHON3=${WITH_PYTHON3}) - if(WITH_MGR) - add_test(NAME run-tox-mgr-dashboard COMMAND bash ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/run-tox.sh) - list(APPEND tox_tests run-tox-mgr-dashboard) - set(MGR_DASHBOARD_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/mgr-dashboard-virtualenv) - list(APPEND env_vars_for_tox_tests MGR_DASHBOARD_VIRTUALENV=${MGR_DASHBOARD_VIRTUALENV}) - + add_tox_test(mgr-dashboard + ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard) add_tox_test(mgr-insights ${CMAKE_SOURCE_DIR}/src/pybind/mgr/insights) - add_tox_test(mgr-ansible ${CMAKE_SOURCE_DIR}/src/pybind/mgr/ansible) - add_tox_test(mgr-orchestrator_cli ${CMAKE_SOURCE_DIR}/src/pybind/mgr/orchestrator_cli) - add_tox_test(python-common ${CMAKE_SOURCE_DIR}/src/python-common) endif()