1 # Copyright 2017 Sandvine
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
8 # http://www.apache.org/licenses/LICENSE-2.0
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
17 # These variables need to be defined in environment or passed in
18 # the make invocation.
20 # export OSM_HOSTNAME=1.2.3.4:8008
21 # export OS_AUTH_URL=https://<keystoneserver>:5000/v2.0
22 # export OS_USERNAME=admin
23 # export OS_PASSWORD=admin
24 # export OS_PROJECT_NAME=admin
32 OPTION_OS_AUTH_URL
=--os-url
$(OS_AUTH_URL
)
35 OPTION_OS_USERNAME
=--os-username
$(OS_USERNAME
)
38 OPTION_OS_PASSWORD
=--os-password
$(OS_PASSWORD
)
41 OPTION_OS_PROJECT_NAME
=--os-project-name
$(OS_PROJECT_NAME
)
44 ifdef TEST_VNFD_DESCRIPTORS
45 OPTION_TEST_VNFD_DESCRIPTORS
=--osm-vnfd-descriptor-packages
$(TEST_VNFD_DESCRIPTORS
)
47 ifdef TEST_NSD_DESCRIPTORS
48 OPTION_TEST_NSD_DESCRIPTORS
=--osm-nsd-descriptor-packages
$(TEST_NSD_DESCRIPTORS
)
51 DESCRIPTOR_REPO_NAME
= descriptor-packages
52 DESCRIPTOR_REPO_DIR ?
= $(shell pwd
)/descriptor-packages
53 DESCRIPTOR_BUILD_DIR
:= $(DESCRIPTOR_REPO_DIR
)/build
54 OPTION_DESCRIPTOR_BUILD_DIR
=--osm-descriptor-packages
$(DESCRIPTOR_BUILD_DIR
)
56 TEST_OSM_NS_NAME_PREFIX
=pytest-
$(shell date
+%D-
%T
)-
57 OPTION_TEST_OSM_NS_NAME_PREFIX
=--osm-ns-name-prefix
$(TEST_OSM_NS_NAME_PREFIX
)
59 JUNITXML_DIR
= reports
61 JUNITXML ?
= pytest-output.xml
66 DESCRIPTOR_REPO ?
= https
://osm.etsi.org
/gerrit
/osm
/$(DESCRIPTOR_REPO_NAME
)
69 TEST_VNFD_DESCRIPTORS ?
= None
70 TEST_NSD_DESCRIPTORS ?
= None
73 all: smoke cirros ping_pong
76 $(Q
)if
[ -z
"$($(1))" ]; then echo
"error: $(1) not set"; exit
1; fi
80 $(call check_env_var
,OSM_HOSTNAME
)
83 $(call check_env_var
,OS_AUTH_URL
)
84 $(call check_env_var
,OS_USERNAME
)
85 $(call check_env_var
,OS_PASSWORD
)
86 $(call check_env_var
,OS_PROJECT_NAME
)
88 .PHONY
: check_openstack_env check_OSM_HOSTNAME
91 test -e
$(DESCRIPTOR_REPO_NAME
) || git clone
$(DESCRIPTOR_REPO
)
92 $(MAKE
) -C
$(DESCRIPTOR_REPO_NAME
)
99 --osmhost
$(OSM_HOSTNAME
) \
100 $(OPTION_OS_AUTH_URL
) \
101 $(OPTION_OS_USERNAME
) \
102 $(OPTION_OS_PASSWORD
) \
103 $(OPTION_OS_PROJECT_NAME
) \
104 $(OPTION_TEST_VNFD_DESCRIPTORS
) \
105 $(OPTION_TEST_NSD_DESCRIPTORS
) \
106 $(OPTION_DESCRIPTOR_BUILD_DIR
) \
107 $(OPTION_TEST_OSM_NS_NAME_PREFIX
) \
108 --junitxml
$(JUNITXML_DIR
)/$(JUNITXML
) \
111 cirros
: check_OSM_HOSTNAME check_openstack_env
113 TEST_VNFD_DESCRIPTORS
=$(DESCRIPTOR_BUILD_DIR
)/vnfd_pkgs
/cirros_vnf.
tar.gz \
114 TEST_NSD_DESCRIPTORS
=$(DESCRIPTOR_BUILD_DIR
)/nsd_pkgs
/cirros_ns.
tar.gz \
115 JUNITXML
=pytest-
$@.xml \
116 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m vnf" _run_test
118 ns_scale
: check_OSM_HOSTNAME check_openstack_env
120 TEST_VNFD_DESCRIPTORS
=$(DESCRIPTOR_BUILD_DIR
)/vnfd_pkgs
/cirros_vnf.
tar.gz \
121 TEST_NSD_DESCRIPTORS
=$(DESCRIPTOR_BUILD_DIR
)/nsd_pkgs
/cirros_ns.
tar.gz \
122 JUNITXML
=pytest-
$@.xml \
123 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m ns_scale" _run_test
125 smoke
: check_OSM_HOSTNAME
127 JUNITXML
=pytest-
$@.xml \
128 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m smoke" _run_test
130 vim
: check_OSM_HOSTNAME check_openstack_env
132 JUNITXML
=pytest-
$@.xml \
133 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m vim" _run_test
135 ping_pong
: check_OSM_HOSTNAME check_openstack_env
137 TEST_VNFD_DESCRIPTORS
="$(DESCRIPTOR_BUILD_DIR)/vnfd_pkgs/ping_vnf.tar.gz,$(DESCRIPTOR_BUILD_DIR)/vnfd_pkgs/pong_vnf.tar.gz" \
138 TEST_NSD_DESCRIPTORS
="$(DESCRIPTOR_BUILD_DIR)/nsd_pkgs/ping_pong_ns.tar.gz" \
139 JUNITXML
=pytest-
$@.xml \
140 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m vnf" _run_test
142 .PHONY
: report_dir cirros vim smoke ping_pong