blob: 1e19cf1ab7d5ef33b879208010bb7d812608975c [file] [log] [blame]
Zack Williams3798b412018-07-12 15:31:52 -07001#!/usr/bin/env bash
2
3# Copyright 2018-present Open Networking Foundation
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17# xos-unit.sh - perform a unit test on XOS or synchronizers
18set -e -o pipefail
19
20# when not running under Jenkins, use current dir as workspace, and 'xos' as GERRIT_PROJECT
21WORKSPACE=${WORKSPACE:-.}
22GERRIT_PROJECT=${GERRIT_PROJECT:-xos}
23
24# create python virtual env
25export XOS_DIR=${WORKSPACE}/cord/orchestration/xos
26$XOS_DIR/scripts/setup_venv.sh
27source venv-xos/bin/activate
28
29# find the path to the project that is checked out
30PROJECT_PATH=$(xmllint --xpath "string(//project[@name=\"$GERRIT_PROJECT\"]/@path)" cord/.repo/manifest.xml)
31
32if [ "$GERRIT_PROJECT" = 'xos' ] ; then
33 pushd "$WORKSPACE/cord/$PROJECT_PATH"
34else
35 pushd "$WORKSPACE/cord/$PROJECT_PATH/xos"
36fi
37
38echo "Performing nose2 tests"
39nose2 --verbose --with-coverage --coverage-report xml --coverage-report term --junit-xml
40popd
41