blob: c1f90320cf7a1eb89d0ee1c6e4a5b963eccf3810 [file] [log] [blame]
# Copyright 2019-present Open Networking 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.
# Makefile for testing and developing XOS
# set default shell
SHELL = bash -e -o pipefail
# Variables
XOS_LIBRARIES := $(wildcard lib/*)
XOS_DIR := "."
venv-xos:
./scripts/setup_venv.sh
# tests
test: lib-test xos-test migration-test core-xproto-test
lib-test:
for lib in $(XOS_LIBRARIES); do pushd $$lib; tox; popd; done
xos-test: venv-xos
source ./venv-xos/bin/activate ; set -u ;\
nose2 -c tox.ini --verbose --junit-xml
# FIXME: should run `flake8 xos` as a part of this target
migration-test: venv-xos
source ./venv-xos/bin/activate ; set -u ;\
xos-migrate --xos-dir . -s core --check
create-migrations: venv-xos
source ./venv-xos/bin/activate ; set -u ;\
xos-migrate --xos-dir . -s core -v
core-xproto-test: venv-xos
source ./venv-xos/bin/activate ; set -u ;\
xosgenx xos/core/models/core.xproto --lint --strict
clean:
find . -name '*.pyc' | xargs rm -f
find . -name '__pycache__' | xargs rm -rf
rm -rf \
.coverage \
coverage.xml \
nose2-results.xml \
venv-xos \
lib/*/.tox \
lib/*/build \
lib/*/dist \
lib/*/*.egg-info \
lib/*/.coverage \
lib/*/coverage.xml \
lib/*/*results.xml \
lib/*/*/VERSION \
lib/xos-genx/xos-genx-tests/out/* \
lib/xos-util/tests/test_version.py