|
- #!/bin/bash
-
- # Copyright (C) 2013 OpenStack Foundation
- #
- # 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.
-
- # This script tests the checkout functions defined in functions.sh.
-
- source functions.sh
-
- SUDO=""
- LOCAL_AAR_VARS="TEST_GIT_CHECKOUTS TEST_ZUUL_REFS GIT_CLONE_AND_CD_ARG"
-
- # Mock out the checkout function since the refs we're checking out do
- # not exist.
- function git_checkout_branch {
- local project=$1
- local branch=$2
-
- project=`basename $project`
- if [[ "$branch" == "FETCH_HEAD" ]]; then
- branch=$FETCH_HEAD
- fi
- TEST_GIT_CHECKOUTS[$project]=$branch
- }
-
- # Mock out the fetch function since the refs we're fetching do not
- # exist.
- function git_fetch_at_ref {
- local project=$1
- local ref=$2
-
- project=`basename $project`
- if [ "$ref" != "" ]; then
- if [[ "${TEST_ZUUL_REFS[$project]}" =~ "$ref" ]]; then
- FETCH_HEAD="$ref"
- return 0
- fi
- return 1
- else
- # return failing
- return 1
- fi
- }
-
- # Mock out git repo functions so the git repos don't have to exist.
- function git_has_branch {
- local project=$1
- local branch=$2
-
- case $branch in
- master) return 0 ;;
- stable/havana)
- case $project in
- openstack/glance) return 0 ;;
- openstack/swift) return 0 ;;
- openstack/nova) return 0 ;;
- openstack/keystone) return 0 ;;
- opestnack/tempest) return 0 ;;
- esac
- esac
- return 1
- }
-
- function git_prune {
- return 0
- }
-
- function git_remote_update {
- return 0
- }
-
- function git_remote_set_url {
- return 0
- }
-
- function git_clone_and_cd {
- if [[ "x${2}" == "x" ]]; then
- GIT_CLONE_AND_CD_ARG["ERROR"]="ERROR"
- return 1
- else
- GIT_CLONE_AND_CD_ARG[$2]="$1,$3"
- fi
- return 0
- }
-
- # Utility function for tests
- function assert_equal {
- local lineno
- local function
-
- lineno=$(caller 0 | awk '{print $1}')
- function=$(caller 0 | awk '{print $2}')
-
- if [[ "$1" != "$2" ]]; then
- echo "ERROR: $1 != $2 in $function:L$lineno!"
- ERROR=1
- else
- echo "$function:L$lineno - ok"
- fi
- }
-
- function assert_raises {
- local lineno
- local function
-
- lineno=$(caller 0 | awk '{print $1}')
- function=$(caller 0 | awk '{print $2}')
-
- eval "$@" &>/dev/null
- if [[ $? -eq 0 ]]; then
- ERROR=1
- echo "ERROR: \`\`$@\`\` returned OK instead of error in $function:L$lineno!"
- fi
- }
-
- # Tests follow:
- function test_one_on_master {
- # devstack-gate master ZA
- for aar_var in $LOCAL_AAR_VARS; do
- eval `echo "declare -A $aar_var"`
- done
- local ZUUL_PROJECT='openstack/devstack-gate'
- local ZUUL_BRANCH='master'
- local ZUUL_REF='refs/zuul/master/ZA'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZA'
-
- setup_project openstack/devstack-gate $ZUUL_BRANCH
-
- assert_equal "${TEST_GIT_CHECKOUTS[devstack-gate]}" 'refs/zuul/master/ZA'
- }
-
- function test_two_on_master {
- # devstack-gate master ZA
- # glance master ZB
- for aar_var in $LOCAL_AAR_VARS; do
- eval `echo "declare -A $aar_var"`
- done
- local ZUUL_PROJECT='openstack/glance'
- local ZUUL_BRANCH='master'
- local ZUUL_REF='refs/zuul/master/ZB'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZA'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZB'
- TEST_ZUUL_REFS[glance]+=' refs/zuul/master/ZB'
-
- setup_project openstack/devstack-gate $ZUUL_BRANCH
- setup_project openstack/glance $ZUUL_BRANCH
-
- assert_equal "${TEST_GIT_CHECKOUTS[devstack-gate]}" 'refs/zuul/master/ZB'
- assert_equal "${TEST_GIT_CHECKOUTS[glance]}" 'refs/zuul/master/ZB'
- }
-
- function test_multi_branch_on_master {
- # devstack-gate master ZA
- # glance stable/havana ZB
- # python-glanceclient master ZC
- for aar_var in $LOCAL_AAR_VARS; do
- eval `echo "declare -A $aar_var"`
- done
- local ZUUL_PROJECT='openstack/python-glanceclient'
- local ZUUL_BRANCH='master'
- local ZUUL_REF='refs/zuul/master/ZC'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZA'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZB'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZC'
- TEST_ZUUL_REFS[glance]+=' refs/zuul/stable/havana/ZB'
- TEST_ZUUL_REFS[glance]+=' refs/zuul/stable/havana/ZC'
- TEST_ZUUL_REFS[python-glanceclient]+=' refs/zuul/master/ZC'
-
- setup_project openstack/devstack-gate $ZUUL_BRANCH
- setup_project openstack/glance $ZUUL_BRANCH
- setup_project openstack/python-glanceclient $ZUUL_BRANCH
-
- assert_equal "${TEST_GIT_CHECKOUTS[devstack-gate]}" 'refs/zuul/master/ZC'
- assert_equal "${TEST_GIT_CHECKOUTS[glance]}" 'master'
- assert_equal "${TEST_GIT_CHECKOUTS[python-glanceclient]}" 'refs/zuul/master/ZC'
- }
-
- function test_multi_branch_project_override {
- # main branch is stable/havana
- # devstack-gate master ZA
- # devstack-gate master ZB
- # python-glanceclient master ZC
- # glance stable/havana ZD
- # tempest not in queue (override to master)
- # oslo.config not in queue (master because no stable/havana branch)
- # nova not in queue (stable/havana)
- for aar_var in $LOCAL_AAR_VARS; do
- eval `echo "declare -A $aar_var"`
- done
- local ZUUL_PROJECT='openstack/glance'
- local ZUUL_BRANCH='stable/havana'
- local OVERRIDE_TEMPEST_PROJECT_BRANCH='master'
- local ZUUL_REF='refs/zuul/stable/havana/ZD'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZA'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZB'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZC'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZD'
- TEST_ZUUL_REFS[python-glanceclient]+=' refs/zuul/master/ZC'
- TEST_ZUUL_REFS[python-glanceclient]+=' refs/zuul/master/ZD'
- TEST_ZUUL_REFS[glance]+=' refs/zuul/stable/havana/ZD'
-
- setup_project openstack/devstack-gate $ZUUL_BRANCH
- setup_project openstack/glance $ZUUL_BRANCH
- setup_project openstack/python-glanceclient $ZUUL_BRANCH
- setup_project openstack/tempest $ZUUL_BRANCH
- setup_project openstack/nova $ZUUL_BRANCH
- setup_project openstack/oslo.config $ZUUL_BRANCH
-
- assert_equal "${TEST_GIT_CHECKOUTS[devstack-gate]}" 'refs/zuul/master/ZD'
- assert_equal "${TEST_GIT_CHECKOUTS[glance]}" 'refs/zuul/stable/havana/ZD'
- assert_equal "${TEST_GIT_CHECKOUTS[tempest]}" 'master'
- assert_equal "${TEST_GIT_CHECKOUTS[nova]}" 'stable/havana'
- assert_equal "${TEST_GIT_CHECKOUTS[oslo.config]}" 'master'
- assert_equal "${TEST_GIT_CHECKOUTS[python-glanceclient]}" 'refs/zuul/master/ZD'
- }
-
- function test_multi_branch_on_stable {
- # devstack-gate master ZA
- # glance stable/havana ZB
- # python-glanceclient not in queue
- for aar_var in $LOCAL_AAR_VARS; do
- eval `echo "declare -A $aar_var"`
- done
- local ZUUL_PROJECT='openstack/glance'
- local ZUUL_BRANCH='stable/havana'
- local ZUUL_REF='refs/zuul/stable/havana/ZB'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZA'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZB'
- TEST_ZUUL_REFS[glance]+=' refs/zuul/stable/havana/ZB'
-
- setup_project openstack/devstack-gate $ZUUL_BRANCH
- setup_project openstack/glance $ZUUL_BRANCH
- setup_project openstack/python-glanceclient $ZUUL_BRANCH
-
- assert_equal "${TEST_GIT_CHECKOUTS[devstack-gate]}" 'refs/zuul/master/ZB'
- assert_equal "${TEST_GIT_CHECKOUTS[glance]}" 'refs/zuul/stable/havana/ZB'
- assert_equal "${TEST_GIT_CHECKOUTS[python-glanceclient]}" 'master'
- }
-
- function test_multi_git_base_project_override {
- # osrg/ryu https://github.com
- # test/devstack-gate https://example.com
- # openstack/keystone https://opendev.org
- # openstack/glance http://tarballs.openstack.org
- for aar_var in $LOCAL_AAR_VARS; do
- eval `echo "declare -A $aar_var"`
- done
- GIT_CLONE_AND_CD_ARG["ERROR"]="NULL"
- local ZUUL_PROJECT='openstack/neutron'
- local ZUUL_BRANCH='master'
- local ZUUL_REF='refs/zuul/master/ZA'
- local GIT_BASE=""
- local GIT_BASE_DEF="https://opendev.org"
-
- local OVERRIDE_RYU_GIT_BASE='https://github.com'
- setup_project "osrg/ryu" $ZUUL_BRANCH
- local OVERRIDE_DEVSTACK_GATE_GIT_BASE='https://example.com'
- setup_project "test/devstack-gate" $ZUUL_BRANCH
- setup_project "openstack/keystone" $ZUUL_BRANCH
- local GIT_BASE="http://tarballs.openstack.org"
- setup_project "openstack/glance" $ZUUL_BRANCH
-
- assert_equal "${GIT_CLONE_AND_CD_ARG["ryu"]}" "osrg/ryu,$OVERRIDE_RYU_GIT_BASE"
- assert_equal "${GIT_CLONE_AND_CD_ARG["devstack-gate"]}" "test/devstack-gate,$OVERRIDE_DEVSTACK_GATE_GIT_BASE"
- assert_equal "${GIT_CLONE_AND_CD_ARG["keystone"]}" "openstack/keystone,$GIT_BASE_DEF"
- assert_equal "${GIT_CLONE_AND_CD_ARG["glance"]}" "openstack/glance,$GIT_BASE"
- assert_equal "${GIT_CLONE_AND_CD_ARG["ERROR"]}" "NULL"
- }
-
- function test_grenade_backward {
- # devstack-gate master ZA
- # nova stable/havana ZB
- # keystone stable/havana ZC
- # keystone master ZD
- # glance master ZE
- # swift not in queue
- # python-glanceclient not in queue
- # havana -> master (with changes)
-
- for aar_var in $LOCAL_AAR_VARS; do
- eval `echo "declare -A $aar_var"`
- done
- local ZUUL_PROJECT='openstack/glance'
- local ZUUL_BRANCH='master'
- local ZUUL_REF='refs/zuul/master/ZE'
- local GRENADE_OLD_BRANCH='stable/havana'
- local GRENADE_NEW_BRANCH='master'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZA'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZB'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZC'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZD'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZE'
- TEST_ZUUL_REFS[nova]+=' refs/zuul/stable/havana/ZB'
- TEST_ZUUL_REFS[nova]+=' refs/zuul/stable/havana/ZC'
- TEST_ZUUL_REFS[nova]+=' refs/zuul/stable/havana/ZD'
- TEST_ZUUL_REFS[nova]+=' refs/zuul/stable/havana/ZE'
- TEST_ZUUL_REFS[keystone]+=' refs/zuul/stable/havana/ZC'
- TEST_ZUUL_REFS[keystone]+=' refs/zuul/stable/havana/ZD'
- TEST_ZUUL_REFS[keystone]+=' refs/zuul/stable/havana/ZE'
- TEST_ZUUL_REFS[keystone]+=' refs/zuul/master/ZD'
- TEST_ZUUL_REFS[keystone]+=' refs/zuul/master/ZE'
- TEST_ZUUL_REFS[glance]+=' refs/zuul/master/ZE'
-
- setup_project openstack/devstack-gate $GRENADE_OLD_BRANCH
- setup_project openstack/nova $GRENADE_OLD_BRANCH
- setup_project openstack/keystone $GRENADE_OLD_BRANCH
- setup_project openstack/glance $GRENADE_OLD_BRANCH
- setup_project openstack/swift $GRENADE_OLD_BRANCH
- setup_project openstack/python-glanceclient $GRENADE_OLD_BRANCH
-
- assert_equal "${TEST_GIT_CHECKOUTS[devstack-gate]}" 'refs/zuul/master/ZE'
- assert_equal "${TEST_GIT_CHECKOUTS[nova]}" 'refs/zuul/stable/havana/ZE'
- assert_equal "${TEST_GIT_CHECKOUTS[keystone]}" 'refs/zuul/stable/havana/ZE'
- assert_equal "${TEST_GIT_CHECKOUTS[glance]}" 'stable/havana'
- assert_equal "${TEST_GIT_CHECKOUTS[swift]}" 'stable/havana'
- assert_equal "${TEST_GIT_CHECKOUTS[python-glanceclient]}" 'master'
-
- declare -A TEST_GIT_CHECKOUTS
-
- setup_project openstack/devstack-gate $GRENADE_NEW_BRANCH
- setup_project openstack/nova $GRENADE_NEW_BRANCH
- setup_project openstack/keystone $GRENADE_NEW_BRANCH
- setup_project openstack/glance $GRENADE_NEW_BRANCH
- setup_project openstack/swift $GRENADE_NEW_BRANCH
- setup_project openstack/python-glanceclient $GRENADE_NEW_BRANCH
-
- assert_equal "${TEST_GIT_CHECKOUTS[devstack-gate]}" 'refs/zuul/master/ZE'
- assert_equal "${TEST_GIT_CHECKOUTS[nova]}" 'master'
- assert_equal "${TEST_GIT_CHECKOUTS[keystone]}" 'refs/zuul/master/ZE'
- assert_equal "${TEST_GIT_CHECKOUTS[glance]}" 'refs/zuul/master/ZE'
- assert_equal "${TEST_GIT_CHECKOUTS[swift]}" 'master'
- assert_equal "${TEST_GIT_CHECKOUTS[python-glanceclient]}" 'master'
- }
-
- function test_grenade_forward {
- # devstack-gate master ZA
- # nova master ZB
- # keystone stable/havana ZC
- # keystone master ZD
- # glance stable/havana ZE
- # swift not in queue
- # python-glanceclient not in queue
- # havana (with changes) -> master
-
- for aar_var in $LOCAL_AAR_VARS; do
- eval `echo "declare -A $aar_var"`
- done
- local ZUUL_PROJECT='openstack/glance'
- local ZUUL_BRANCH='stable/havana'
- local ZUUL_REF='refs/zuul/stable/havana/ZE'
- local GRENADE_OLD_BRANCH='stable/havana'
- local GRENADE_NEW_BRANCH='master'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZA'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZB'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZC'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZD'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZE'
- TEST_ZUUL_REFS[nova]+=' refs/zuul/master/ZB'
- TEST_ZUUL_REFS[nova]+=' refs/zuul/master/ZC'
- TEST_ZUUL_REFS[nova]+=' refs/zuul/master/ZD'
- TEST_ZUUL_REFS[nova]+=' refs/zuul/master/ZE'
- TEST_ZUUL_REFS[keystone]+=' refs/zuul/stable/havana/ZC'
- TEST_ZUUL_REFS[keystone]+=' refs/zuul/stable/havana/ZD'
- TEST_ZUUL_REFS[keystone]+=' refs/zuul/stable/havana/ZE'
- TEST_ZUUL_REFS[keystone]+=' refs/zuul/master/ZD'
- TEST_ZUUL_REFS[keystone]+=' refs/zuul/master/ZE'
- TEST_ZUUL_REFS[glance]+=' refs/zuul/stable/havana/ZE'
-
- setup_project openstack/devstack-gate $GRENADE_OLD_BRANCH
- setup_project openstack/nova $GRENADE_OLD_BRANCH
- setup_project openstack/keystone $GRENADE_OLD_BRANCH
- setup_project openstack/glance $GRENADE_OLD_BRANCH
- setup_project openstack/swift $GRENADE_OLD_BRANCH
- setup_project openstack/python-glanceclient $GRENADE_OLD_BRANCH
-
- assert_equal "${TEST_GIT_CHECKOUTS[devstack-gate]}" 'refs/zuul/master/ZE'
- assert_equal "${TEST_GIT_CHECKOUTS[nova]}" 'stable/havana'
- assert_equal "${TEST_GIT_CHECKOUTS[keystone]}" 'refs/zuul/stable/havana/ZE'
- assert_equal "${TEST_GIT_CHECKOUTS[glance]}" 'refs/zuul/stable/havana/ZE'
- assert_equal "${TEST_GIT_CHECKOUTS[swift]}" 'stable/havana'
- assert_equal "${TEST_GIT_CHECKOUTS[python-glanceclient]}" 'master'
-
- declare -A TEST_GIT_CHECKOUTS
-
- setup_project openstack/devstack-gate $GRENADE_NEW_BRANCH
- setup_project openstack/nova $GRENADE_NEW_BRANCH
- setup_project openstack/keystone $GRENADE_NEW_BRANCH
- setup_project openstack/glance $GRENADE_NEW_BRANCH
- setup_project openstack/swift $GRENADE_NEW_BRANCH
- setup_project openstack/python-glanceclient $GRENADE_NEW_BRANCH
-
- assert_equal "${TEST_GIT_CHECKOUTS[devstack-gate]}" 'refs/zuul/master/ZE'
- assert_equal "${TEST_GIT_CHECKOUTS[nova]}" 'refs/zuul/master/ZE'
- assert_equal "${TEST_GIT_CHECKOUTS[keystone]}" 'refs/zuul/master/ZE'
- assert_equal "${TEST_GIT_CHECKOUTS[glance]}" 'master'
- assert_equal "${TEST_GIT_CHECKOUTS[swift]}" 'master'
- assert_equal "${TEST_GIT_CHECKOUTS[python-glanceclient]}" 'master'
- }
-
- function test_branch_override {
- # glance stable/havana ZA
- # devstack-gate master ZB
- # swift not in queue
- # python-glanceclient not in queue
-
- for aar_var in $LOCAL_AAR_VARS; do
- eval `echo "declare -A $aar_var"`
- done
- local ZUUL_PROJECT='openstack/devstack-gate'
- local ZUUL_BRANCH='master'
- local ZUUL_REF='refs/zuul/master/ZB'
- local OVERRIDE_ZUUL_BRANCH='stable/havana'
- TEST_ZUUL_REFS[devstack-gate]+=' refs/zuul/master/ZB'
- TEST_ZUUL_REFS[glance]+=' refs/zuul/stable/havana/ZA'
- TEST_ZUUL_REFS[glance]+=' refs/zuul/stable/havana/ZB'
-
- setup_project openstack/devstack-gate $OVERRIDE_ZUUL_BRANCH
- setup_project openstack/glance $OVERRIDE_ZUUL_BRANCH
- setup_project openstack/swift $OVERRIDE_ZUUL_BRANCH
- setup_project openstack/python-glanceclient $OVERRIDE_ZUUL_BRANCH
-
- assert_equal "${TEST_GIT_CHECKOUTS[devstack-gate]}" 'refs/zuul/master/ZB'
- assert_equal "${TEST_GIT_CHECKOUTS[glance]}" 'refs/zuul/stable/havana/ZB'
- assert_equal "${TEST_GIT_CHECKOUTS[swift]}" 'stable/havana'
- assert_equal "${TEST_GIT_CHECKOUTS[python-glanceclient]}" 'master'
- }
-
- function test_periodic {
- # No queue
-
- for aar_var in $LOCAL_AAR_VARS; do
- eval `echo "declare -A $aar_var"`
- done
- local ZUUL_BRANCH='stable/havana'
- local ZUUL_PROJECT='openstack/glance'
-
- setup_project openstack/glance $ZUUL_BRANCH
-
- assert_equal "${TEST_GIT_CHECKOUTS[glance]}" 'stable/havana'
- }
-
- # Run setup_project without setting a ZUUL_BRANCH which is how a subset of
- # periodic jobs operate
- function test_periodic_no_branch {
-
- declare -A TEST_GIT_CHECKOUTS
- declare -A TEST_ZUUL_REF
- local ZUUL_PROJECT='openstack/glance'
-
- setup_project openstack/glance 'master'
-
- assert_equal "${TEST_GIT_CHECKOUTS[glance]}" 'master'
- }
-
- # setup_workspace fails without argument
- function test_workspace_branch_arg {
- assert_raises setup_workspace
- }
-
- function test_call_hook_if_defined {
-
- local filename=test_call_hook_if_defined.txt
- local save_dir
-
- save_dir=$(pwd)/tmp
- mkdir -p $save_dir
-
- function demo_script {
- local filename=$1
- local save_dir=$2
- # Clean up any files from previous tests
- rm -f $save_dir/$filename
- call_hook_if_defined test_hook $filename $save_dir
- ret_val=$?
- return $ret_val
- }
-
- # No hook defined returns success 0 & no file created
- demo_script $filename $save_dir
- ret_val=$?
- assert_equal "$ret_val" "0"
-
- [[ -e $save_dir/$filename ]]
- file_exists=$?
- assert_equal $file_exists 1
-
- # Hook defined returns its error code and file with output
- function test_hook {
- echo "hello test_hook"
- return 123
- }
- demo_script $filename $save_dir
- ret_val=$?
- assert_equal "$ret_val" "123"
-
- [[ -e $save_dir/$filename ]]
- file_exists=$?
- assert_equal $file_exists 0
-
- # Make sure the expected contents has length > 0
- result_expected=`cat $save_dir/$filename | grep "hello test_hook"`
- [[ ${#result_expected} -eq "0" ]]
- assert_equal $? 1
-
- # Hook defined with invalid file fails
- demo_script /invalid/file.txt $save_dir
- ret_val=$?
- assert_equal "$ret_val" "1"
-
- # Clean up
- rm -rf $save_dir
- }
-
- # test that reproduce file is populated correctly
- function test_reproduce {
- # expected result
- read -d '' EXPECTED_VARS << EOF
- declare -x ZUUL_VAR="zuul-var"
- declare -x DEVSTACK_VAR="devstack-var"
- declare -x ZUUL_VAR_MULTILINE="zuul-var-setting1
- zuul-var-setting2"
- declare -x DEVSTACK_VAR_MULTILINE="devstack-var-setting1
- devstack-var-setting2"
- gate_hook ()
- {
- echo "The cake is a lie"
- }
- declare -fx gate_hook
- EOF
-
- # prepare environment for test
- WORKSPACE=.
- export DEVSTACK_VAR=devstack-var
- export DEVSTACK_VAR_MULTILINE="devstack-var-setting1
- devstack-var-setting2"
- export ZUUL_VAR=zuul-var
- export ZUUL_VAR_MULTILINE="zuul-var-setting1
- zuul-var-setting2"
- function gate_hook {
- echo "The cake is a lie"
- }
- export -f gate_hook
- mkdir $WORKSPACE/logs
-
- # execute call and assert
- reproduce
-
- [[ -e $WORKSPACE/logs/reproduce.sh ]]
- file_exists=$?
- assert_equal $file_exists 0
-
- result_expected=`cat $WORKSPACE/logs/reproduce.sh | grep "$EXPECTED_VARS"`
- [[ ${#result_expected} -eq "0" ]]
- assert_equal $? 1
-
- # clean up environment
- rm -rf $WORKSPACE/logs
- rm -rf $WORKSPACE/workspace
- unset WORKSPACE
- unset DEVSTACK_VAR
- unset DEVSTACK_VAR_MULTILINE
- unset ZUUL_VAR
- unset ZUUL_VAR_MULTILINE
- unset gate_hook
- }
-
- # Run tests:
- #set -o xtrace
- test_branch_override
- test_grenade_backward
- test_grenade_forward
- test_multi_branch_on_master
- test_multi_branch_on_stable
- test_multi_branch_project_override
- test_multi_git_base_project_override
- test_one_on_master
- test_periodic
- test_periodic_no_branch
- test_two_on_master
- test_workspace_branch_arg
- test_call_hook_if_defined
- test_reproduce
-
- if [[ ! -z "$ERROR" ]]; then
- echo
- echo "FAIL: Tests have errors! See output above."
- echo
- exit 1
- else
- echo
- echo "Tests completed successfully!"
- echo
- fi
|