blob: 90c56d50a855fb6eaaf752c5d758c88d4adfdfce [file] [log] [blame]
Mike Marchetti08f04282017-05-04 16:43:09 -04001# Copyright 2017 Sandvine
2# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15
16#
17# These variables need to be defined in environment or passed in
18# the make invocation.
19# eg.
20# export OSM_HOSTNAME=1.2.3.4:8008
Mike Marchetti6930bc02017-05-31 16:33:02 -040021# export OS_AUTH_URL=https://<keystoneserver>:5000/v2.0
Mike Marchetti08f04282017-05-04 16:43:09 -040022# export OS_USERNAME=admin
23# export OS_PASSWORD=admin
24# export OS_PROJECT_NAME=admin
25OSM_HOSTNAME ?=
Mike Marchetti6930bc02017-05-31 16:33:02 -040026OS_AUTH_URL ?=
Mike Marchetti08f04282017-05-04 16:43:09 -040027OS_USERNAME ?=
28OS_PASSWORD_NAME ?=
29OS_PROJECT_NAME ?=
30
Mike Marchettib884a462017-10-05 13:28:33 -040031TOPDIR=$(shell readlink -f .|sed -e 's/systest.*//')
32
Mike Marchetti6930bc02017-05-31 16:33:02 -040033ifdef OS_AUTH_URL
34 OPTION_OS_AUTH_URL=--os-url $(OS_AUTH_URL)
Mike Marchetti08f04282017-05-04 16:43:09 -040035endif
36ifdef OS_USERNAME
37 OPTION_OS_USERNAME=--os-username $(OS_USERNAME)
38endif
39ifdef OS_PASSWORD
40 OPTION_OS_PASSWORD=--os-password $(OS_PASSWORD)
41endif
42ifdef OS_PROJECT_NAME
43 OPTION_OS_PROJECT_NAME=--os-project-name $(OS_PROJECT_NAME)
44endif
45
46ifdef TEST_VNFD_DESCRIPTORS
47 OPTION_TEST_VNFD_DESCRIPTORS=--osm-vnfd-descriptor-packages $(TEST_VNFD_DESCRIPTORS)
48endif
49ifdef TEST_NSD_DESCRIPTORS
50 OPTION_TEST_NSD_DESCRIPTORS=--osm-nsd-descriptor-packages $(TEST_NSD_DESCRIPTORS)
51endif
52
Mike Marchettib884a462017-10-05 13:28:33 -040053DESCRIPTOR_DIR ?= $(TOPDIR)/descriptor-packages
Mike Marchetti08f04282017-05-04 16:43:09 -040054
55TEST_OSM_NS_NAME_PREFIX=pytest-$(shell date +%D-%T)-
56OPTION_TEST_OSM_NS_NAME_PREFIX=--osm-ns-name-prefix $(TEST_OSM_NS_NAME_PREFIX)
57
58JUNITXML_DIR = reports
59
60JUNITXML ?= pytest-output.xml
61
62PYTEST_OPTIONS=
63Q=@
64
Mike Marchetti08f04282017-05-04 16:43:09 -040065TEST_VNFD_DESCRIPTORS ?= None
66TEST_NSD_DESCRIPTORS ?= None
67
68.NOTPARALLEL:
69all: smoke cirros ping_pong
70
71define check_env_var
72 $(Q)if [ -z "$($(1))" ]; then echo "error: $(1) not set"; exit 1; fi
73endef
74
75check_OSM_HOSTNAME:
76 $(call check_env_var,OSM_HOSTNAME)
77
78check_openstack_env:
Mike Marchetti6930bc02017-05-31 16:33:02 -040079 $(call check_env_var,OS_AUTH_URL)
Mike Marchetti08f04282017-05-04 16:43:09 -040080 $(call check_env_var,OS_USERNAME)
81 $(call check_env_var,OS_PASSWORD)
82 $(call check_env_var,OS_PROJECT_NAME)
83
84.PHONY: check_openstack_env check_OSM_HOSTNAME
85
Mike Marchetti08f04282017-05-04 16:43:09 -040086report_dir:
87 @mkdir -p reports
88
Mike Marchetti6930bc02017-05-31 16:33:02 -040089_run_test: report_dir
Mike Marchetti08f04282017-05-04 16:43:09 -040090 $(Q)py.test \
91 --osmhost $(OSM_HOSTNAME) \
Mike Marchetti6930bc02017-05-31 16:33:02 -040092 $(OPTION_OS_AUTH_URL) \
Mike Marchetti08f04282017-05-04 16:43:09 -040093 $(OPTION_OS_USERNAME) \
94 $(OPTION_OS_PASSWORD) \
95 $(OPTION_OS_PROJECT_NAME) \
96 $(OPTION_TEST_VNFD_DESCRIPTORS) \
97 $(OPTION_TEST_NSD_DESCRIPTORS) \
98 $(OPTION_DESCRIPTOR_BUILD_DIR) \
99 $(OPTION_TEST_OSM_NS_NAME_PREFIX) \
100 --junitxml $(JUNITXML_DIR)/$(JUNITXML) \
101 $(PYTEST_OPTIONS)
102
Mike Marchettib884a462017-10-05 13:28:33 -0400103$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/%.tar.gz:
104 $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/cirros_vnf
105
106$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/%.tar.gz:
107 $(MAKE) -C $(DESCRIPTOR_DIR)/nsd/cirros_ns
108
109cirros: check_OSM_HOSTNAME check_openstack_env \
110 $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
111 $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz
Mike Marchetti08f04282017-05-04 16:43:09 -0400112 $(Q)$(MAKE) \
Mike Marchettib884a462017-10-05 13:28:33 -0400113 TEST_VNFD_DESCRIPTORS=$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
114 TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
Mike Marchetti08f04282017-05-04 16:43:09 -0400115 JUNITXML=pytest-$@.xml \
116 PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vnf" _run_test
117
Mike Marchettib884a462017-10-05 13:28:33 -0400118ns_scale: check_OSM_HOSTNAME check_openstack_env \
119 $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
120 $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz
Mike Marchetti6228f562017-06-15 14:51:27 -0400121 $(Q)$(MAKE) \
Mike Marchettib884a462017-10-05 13:28:33 -0400122 TEST_VNFD_DESCRIPTORS=$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
123 TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
Mike Marchetti6228f562017-06-15 14:51:27 -0400124 JUNITXML=pytest-$@.xml \
125 PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m ns_scale" _run_test
126
Mike Marchetti08f04282017-05-04 16:43:09 -0400127smoke: check_OSM_HOSTNAME
128 $(Q)$(MAKE) \
129 JUNITXML=pytest-$@.xml \
130 PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m smoke" _run_test
131
132vim: check_OSM_HOSTNAME check_openstack_env
133 $(Q)$(MAKE) \
134 JUNITXML=pytest-$@.xml \
135 PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vim" _run_test
136
Mike Marchettib884a462017-10-05 13:28:33 -0400137$(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/%.tar.gz:
138 $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/ping_vnf
139
140$(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/%.tar.gz:
141 $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/pong_vnf
142
Mike Marchetti2cea6a02017-10-13 13:58:54 -0400143$(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/%.tar.gz:
Mike Marchettib884a462017-10-05 13:28:33 -0400144 $(MAKE) -C $(DESCRIPTOR_DIR)/nsd/ping_pong_ns
145
Mike Marchetti2cea6a02017-10-13 13:58:54 -0400146ping_pong: check_OSM_HOSTNAME check_openstack_env \
147 $(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/ping_vnf.tar.gz \
148 $(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/pong_vnf.tar.gz \
149 $(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/ping_pong_ns.tar.gz
Mike Marchetti08f04282017-05-04 16:43:09 -0400150 $(Q)$(MAKE) \
Mike Marchetti2cea6a02017-10-13 13:58:54 -0400151 TEST_VNFD_DESCRIPTORS="$(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/ping_vnf.tar.gz,$(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/pong_vnf.tar.gz" \
Mike Marchettib884a462017-10-05 13:28:33 -0400152 TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/ping_pong_ns.tar.gz \
Mike Marchetti08f04282017-05-04 16:43:09 -0400153 JUNITXML=pytest-$@.xml \
154 PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vnf" _run_test
155
156.PHONY: report_dir cirros vim smoke ping_pong