diff options
Diffstat (limited to 'resources/libraries/bash/entry')
6 files changed, 41 insertions, 15 deletions
diff --git a/resources/libraries/bash/entry/README.txt b/resources/libraries/bash/entry/README.txt index 1f6cf522bb..bf7897f8a6 100644 --- a/resources/libraries/bash/entry/README.txt +++ b/resources/libraries/bash/entry/README.txt @@ -1,3 +1,16 @@ +# Copyright (c) 2019 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + Scripts in this directory are to be executed (or sourced) directly from Jenkins executor (or manually by user when testing locally), as opposed to indirectly from other CSIT scripts (or from Robot). diff --git a/resources/libraries/bash/entry/bootstrap_verify_perf.sh b/resources/libraries/bash/entry/bootstrap_verify_perf.sh index cfe94686cb..7c00491c90 100644 --- a/resources/libraries/bash/entry/bootstrap_verify_perf.sh +++ b/resources/libraries/bash/entry/bootstrap_verify_perf.sh @@ -43,6 +43,8 @@ reserve_testbed || die ansible_hosts "run-jitter-tool" || die select_tags || die compose_pybot_arguments || die +generate_tests || die +archive_tests || die run_pybot || die untrap_and_unreserve_testbed || die copy_archives || die diff --git a/resources/libraries/bash/entry/bootstrap_vpp_device.sh b/resources/libraries/bash/entry/bootstrap_vpp_device.sh index 139e1e99ab..156a8b32ac 100755 --- a/resources/libraries/bash/entry/bootstrap_vpp_device.sh +++ b/resources/libraries/bash/entry/bootstrap_vpp_device.sh @@ -41,6 +41,8 @@ activate_virtualenv || die activate_docker_topology || die select_vpp_device_tags || die compose_pybot_arguments || die +generate_tests || die +archive_tests || die run_pybot || die copy_archives || die die_on_pybot_error || die diff --git a/resources/libraries/bash/entry/check/autogen.sh b/resources/libraries/bash/entry/check/autogen.sh index 35ecc281ee..0164b65962 100644 --- a/resources/libraries/bash/entry/check/autogen.sh +++ b/resources/libraries/bash/entry/check/autogen.sh @@ -18,13 +18,16 @@ set -exuo pipefail # This file does not have executable flag nor shebang, # to dissuade non-tox callers. -# This script run every executable *.py script anywhere within tests/ dir, +# This script starts with copying ${CSIT_DIR}/tests to ${GENERATED_DIR}/. +# Then the script runs every executable *.py script anywhere in the copied dir, # the working directory temporarily changed to where the *.py file is. # Proper virtualenv is assumed to be active. -# If "git diff" sees any change, this script fails. -# The diff output stored to autogen.log (overwriting). -# The *.py files are assumed to be robot suite generators, -# any change means the contribution does not match the generated code. +# Then another directory in ${GENERATED_DIR} is created, where +# the just generated content is copied and then overwitten by the non-generated. +# If "diff -dur" sees any changes by the overwrite, this script fails. +# The diff output is stored to autogen.log (overwriting). +# The executed *.py files are assumed to be robot suite generators, +# any change means the contribution is not consistent with the regenerated code. # "set -eu" handles failures from the following two lines. BASH_CHECKS_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))" @@ -33,20 +36,21 @@ source "${BASH_FUNCTION_DIR}/common.sh" || { echo "Source failed." >&2 exit 1 } - +common_dirs work_dir="$(pwd)" || die trap "cd '${work_dir}'" EXIT || die -file_list="$(find ./tests -type f -executable -name '*.py')" || die -for gen in ${file_list}; do - directory="$(dirname "${gen}")" || die - filename="$(basename "${gen}")" || die - pushd "${directory}" || die - ./"${filename}" || die - popd || die -done +generate_tests + +rm -rf "${GENERATED_DIR}/tests_tmp" +cp -r "${GENERATED_DIR}/tests" "${GENERATED_DIR}/tests_tmp" +# Default cp behavior is to put inside a targed dir, not to override. +cp -rf "${CSIT_DIR}/tests"/* "${GENERATED_DIR}/tests_tmp"/ +# TODO: Do we want to archive ${GENERATED_DIR}? +# I think archiving the diff is enough. -lines="$(git diff | tee "autogen.log" | wc -l)" || die +diff_cmd=("diff" "-dur" "${GENERATED_DIR}/tests_tmp" "${GENERATED_DIR}/tests") +lines="$("${diff_cmd[@]}" | tee "autogen.log" | wc -l)" || die if [ "${lines}" != "0" ]; then # TODO: Decide which text goes to stdout and which to stderr. warn "Autogen conflict diff nonzero lines: ${lines}" diff --git a/resources/libraries/bash/entry/per_patch_device.sh b/resources/libraries/bash/entry/per_patch_device.sh index 11203316fb..7115dc14fc 100644 --- a/resources/libraries/bash/entry/per_patch_device.sh +++ b/resources/libraries/bash/entry/per_patch_device.sh @@ -51,6 +51,8 @@ activate_virtualenv "${VPP_DIR}" || die activate_docker_topology || die select_vpp_device_tags || die compose_pybot_arguments || die +generate_tests || die +archive_tests || die run_pybot || die copy_archives || die archive_test_results "csit_current" || die diff --git a/resources/libraries/bash/entry/per_patch_perf.sh b/resources/libraries/bash/entry/per_patch_perf.sh index c176bbfd5f..d3aabfae17 100644 --- a/resources/libraries/bash/entry/per_patch_perf.sh +++ b/resources/libraries/bash/entry/per_patch_perf.sh @@ -56,9 +56,12 @@ activate_virtualenv "${VPP_DIR}" || die reserve_testbed || die select_tags || die compose_pybot_arguments || die +generate_tests || die +archive_tests || die iterations=8 for ((iter=0; iter<iterations; iter++)); do # TODO: Use less heavy way to avoid apt remove falilures. + # Also, reserve_testbed has already called cleanup once. cleanup_topo select_build "build_parent" || die check_download_dir || die |