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_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_URL
=--os-url
$(OS_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_BUILD_DIR
:= $(shell pwd
)/$(DESCRIPTOR_REPO_NAME
)/build
53 OPTION_DESCRIPTOR_BUILD_DIR
=--osm-descriptor-packages
$(DESCRIPTOR_BUILD_DIR
)
55 TEST_OSM_NS_NAME_PREFIX
=pytest-
$(shell date
+%D-
%T
)-
56 OPTION_TEST_OSM_NS_NAME_PREFIX
=--osm-ns-name-prefix
$(TEST_OSM_NS_NAME_PREFIX
)
58 JUNITXML_DIR
= reports
60 JUNITXML ?
= pytest-output.xml
65 DESCRIPTOR_REPO ?
= https
://osm.etsi.org
/gerrit
/osm
/$(DESCRIPTOR_REPO_NAME
)
68 TEST_VNFD_DESCRIPTORS ?
= None
69 TEST_NSD_DESCRIPTORS ?
= None
72 all: smoke cirros ping_pong
75 $(Q
)if
[ -z
"$($(1))" ]; then echo
"error: $(1) not set"; exit
1; fi
79 $(call check_env_var
,OSM_HOSTNAME
)
82 $(call check_env_var
,OS_URL
)
83 $(call check_env_var
,OS_USERNAME
)
84 $(call check_env_var
,OS_PASSWORD
)
85 $(call check_env_var
,OS_PROJECT_NAME
)
87 .PHONY
: check_openstack_env check_OSM_HOSTNAME
89 $(DESCRIPTOR_REPO_NAME
):
90 @
test -e
$(DESCRIPTOR_REPO_NAME
) || git clone
$(DESCRIPTOR_REPO
)
91 make
-C
$(DESCRIPTOR_REPO_NAME
)
96 _run_test
: $(DESCRIPTOR_REPO_NAME
) report_dir
98 --osmhost
$(OSM_HOSTNAME
) \
100 $(OPTION_OS_USERNAME
) \
101 $(OPTION_OS_PASSWORD
) \
102 $(OPTION_OS_PROJECT_NAME
) \
103 $(OPTION_TEST_VNFD_DESCRIPTORS
) \
104 $(OPTION_TEST_NSD_DESCRIPTORS
) \
105 $(OPTION_DESCRIPTOR_BUILD_DIR
) \
106 $(OPTION_TEST_OSM_NS_NAME_PREFIX
) \
107 --junitxml
$(JUNITXML_DIR
)/$(JUNITXML
) \
110 cirros
: check_OSM_HOSTNAME check_openstack_env
112 TEST_VNFD_DESCRIPTORS
=$(DESCRIPTOR_BUILD_DIR
)/vnfd_pkgs
/cirros_vnf.
tar.gz \
113 TEST_NSD_DESCRIPTORS
=$(DESCRIPTOR_BUILD_DIR
)/nsd_pkgs
/cirros_ns.
tar.gz \
114 JUNITXML
=pytest-
$@.xml \
115 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m vnf" _run_test
117 smoke
: check_OSM_HOSTNAME
119 JUNITXML
=pytest-
$@.xml \
120 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m smoke" _run_test
122 vim
: check_OSM_HOSTNAME check_openstack_env
124 JUNITXML
=pytest-
$@.xml \
125 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m vim" _run_test
127 ping_pong
: check_OSM_HOSTNAME check_openstack_env
129 TEST_VNFD_DESCRIPTORS
="$(DESCRIPTOR_BUILD_DIR)/vnfd_pkgs/ping_vnf.tar.gz,$(DESCRIPTOR_BUILD_DIR)/vnfd_pkgs/pong_vnf.tar.gz" \
130 TEST_NSD_DESCRIPTORS
="$(DESCRIPTOR_BUILD_DIR)/nsd_pkgs/ping_pong_ns.tar.gz" \
131 JUNITXML
=pytest-
$@.xml \
132 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m vnf" _run_test
134 .PHONY
: report_dir cirros vim smoke ping_pong