From 76097ed108f7ac2ff8ecd69f3174bb086e0fe939 Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Wed, 28 Feb 2018 11:51:16 +0100 Subject: Publish Dockerfile and samples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ie776fea631f04bb42d8ae80bc658318d8644d0e5 Signed-off-by: Cédric Ollivier --- docker/Dockerfile | 17 ++ upper-constraints.txt | 19 -- xtesting/ci/logging.ini | 2 +- xtesting/ci/testcases.yaml | 414 ++++------------------------------------ xtesting/samples/HelloWorld.txt | 3 + xtesting/samples/__init__.py | 0 xtesting/samples/first.py | 24 +++ xtesting/samples/fourth.py | 19 ++ xtesting/samples/second.py | 19 ++ xtesting/samples/testcases.yaml | 66 +++++++ 10 files changed, 187 insertions(+), 396 deletions(-) create mode 100644 docker/Dockerfile create mode 100644 xtesting/samples/HelloWorld.txt create mode 100644 xtesting/samples/__init__.py create mode 100644 xtesting/samples/first.py create mode 100644 xtesting/samples/fourth.py create mode 100644 xtesting/samples/second.py create mode 100644 xtesting/samples/testcases.yaml diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 00000000..32e38778 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,17 @@ +FROM alpine:3.7 + +ARG BRANCH=master +ARG OPENSTACK_TAG=stable/pike + +RUN apk --no-cache add --update \ + python libffi libssl1.0 libjpeg-turbo py-pip bash \ + grep sed wget ca-certificates git && \ + git clone https://gerrit.opnfv.org/gerrit/functest-xtesting /src/functest-xtesting && \ + (cd /src/functest-xtesting && git fetch origin $BRANCH && git checkout FETCH_HEAD) && \ + pip install --no-cache-dir --src /src \ + -chttps://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=$OPENSTACK_TAG \ + -chttps://git.opnfv.org/functest-xtesting/plain/upper-constraints.txt?h=$BRANCH \ + /src/functest-xtesting && \ + rm -r /src/functest-xtesting && \ + bash -c "mkdir -p /home/opnfv/xtesting/results/robot" +CMD ["run_tests", "-t", "all"] diff --git a/upper-constraints.txt b/upper-constraints.txt index 4bd83c4a..a884d02b 100644 --- a/upper-constraints.txt +++ b/upper-constraints.txt @@ -1,20 +1 @@ -git+https://gerrit.opnfv.org/gerrit/releng#egg=opnfv&subdirectory=modules -git+https://gerrit.opnfv.org/gerrit/snaps#egg=snaps -git+https://gerrit.opnfv.org/gerrit/barometer#egg=baro_tests -git+https://gerrit.opnfv.org/gerrit/sdnvpn#egg=sdnvpn -git+https://gerrit.opnfv.org/gerrit/sfc#egg=sfc --e git+https://gerrit.opnfv.org/gerrit/promise#egg=promise --e git+https://gerrit.opnfv.org/gerrit/doctor#egg=doctor-tests -git+https://gerrit.opnfv.org/gerrit/domino#egg=domino -git+https://gerrit.opnfv.org/gerrit/parser#egg=nfv-heattranslator&subdirectory=tosca2heat/heat-translator -git+https://gerrit.opnfv.org/gerrit/parser#egg=nfv-toscaparser&subdirectory=tosca2heat/tosca-parser --e git+https://gerrit.opnfv.org/gerrit/parser#egg=nfv-parser -cloudify-rest-client===4.0 -openbaton-cli===2.2.1b7 robotframework===3.0.2 -robotframework-httplibrary===0.4.2 -robotframework-requests===0.4.7 -robotframework-sshlibrary===2.1.3;python_version=='2.7' -IPy===0.83 -ansible===2.3.2.0 -flasgger===0.6.6 diff --git a/xtesting/ci/logging.ini b/xtesting/ci/logging.ini index ab82073f..b1365f1e 100644 --- a/xtesting/ci/logging.ini +++ b/xtesting/ci/logging.ini @@ -1,5 +1,5 @@ [loggers] -keys=root,xtesting,api,ci,cli,core,energy,opnfv_tests,utils +keys=root,xtesting,ci,core,energy,utils [handlers] keys=console,wconsole,file,null diff --git a/xtesting/ci/testcases.yaml b/xtesting/ci/testcases.yaml index c338f57e..9c1cb506 100644 --- a/xtesting/ci/testcases.yaml +++ b/xtesting/ci/testcases.yaml @@ -1,424 +1,86 @@ --- tiers: - - name: healthcheck - order: 0 - ci_loop: '(daily)|(weekly)' - description: >- - First tier to be executed to verify the basic - operations in the VIM. - testcases: - - - case_name: connection_check - project_name: xtesting - criteria: 100 - blocking: true - description: >- - This test case verifies the retrieval of OpenStack clients: - Keystone, Glance, Neutron and Nova and may perform some - simple queries. When the config value of - snaps.use_keystone is True, xtesting must have access to - the cloud's private network. - dependencies: - installer: '^((?!netvirt).)*$' - scenario: '' - run: - module: - 'xtesting.opnfv_tests.openstack.snaps.connection_check' - class: 'ConnectionCheck' - - - - case_name: api_check - project_name: xtesting - criteria: 100 - blocking: true - description: >- - This test case verifies the retrieval of OpenStack clients: - Keystone, Glance, Neutron and Nova and may perform some - simple queries. When the config value of - snaps.use_keystone is True, xtesting must have access to - the cloud's private network. - dependencies: - installer: '^((?!netvirt).)*$' - scenario: '^((?!lxd).)*$' - run: - module: 'xtesting.opnfv_tests.openstack.snaps.api_check' - class: 'ApiCheck' - - - - case_name: snaps_health_check - project_name: xtesting - criteria: 100 - blocking: true - description: >- - This test case creates executes the SimpleHealthCheck - Python test class which creates an, image, flavor, network, - and Cirros VM instance and observes the console output to - validate the single port obtains the correct IP address. - dependencies: - installer: '' - scenario: '^((?!lxd).)*$' - run: - module: 'xtesting.opnfv_tests.openstack.snaps.health_check' - class: 'HealthCheck' - - - - name: smoke + name: samples order: 1 - ci_loop: '(daily)|(weekly)' - description: >- - Set of basic Functional tests to validate the OPNFV scenarios. + ci_loop: 'daily' + description: '' testcases: - - case_name: vping_ssh + case_name: first project_name: xtesting criteria: 100 blocking: true - description: >- - This test case verifies: 1) SSH to an instance using - floating IPs over the public network. 2) Connectivity - between 2 instances over a private network. + clean_flag: false + description: '' dependencies: installer: '' - scenario: '^((?!odl_l3|odl-bgpvpn|gluon).)*$' + scenario: '' run: - module: 'xtesting.opnfv_tests.openstack.vping.vping_ssh' - class: 'VPingSSH' + module: 'xtesting.samples.first' + class: 'Test' - - case_name: vping_userdata + case_name: second project_name: xtesting criteria: 100 blocking: true - description: >- - This test case verifies: 1) Boot a VM with given userdata. - 2) Connectivity between 2 instances over a private network. + clean_flag: false + description: '' dependencies: installer: '' - scenario: '^((?!lxd).)*$' - run: - module: - 'xtesting.opnfv_tests.openstack.vping.vping_userdata' - class: 'VPingUserdata' - - - - case_name: tempest_smoke_serial - project_name: xtesting - criteria: 100 - blocking: false - description: >- - This test case runs the smoke subset of the OpenStack - Tempest suite. The list of test cases is generated by - Tempest automatically and depends on the parameters of - the OpenStack deplopyment. - dependencies: - installer: '^((?!netvirt).)*$' scenario: '' run: - module: 'xtesting.opnfv_tests.openstack.tempest.tempest' - class: 'TempestSmokeSerial' + module: 'xtesting.samples.second' + class: 'Test' - - case_name: rally_sanity + case_name: third project_name: xtesting criteria: 100 - blocking: false - description: >- - This test case runs a sub group of tests of the OpenStack - Rally suite in smoke mode. + blocking: true + clean_flag: false + description: '' dependencies: installer: '' scenario: '' run: - module: 'xtesting.opnfv_tests.openstack.rally.rally' - class: 'RallySanity' + module: 'xtesting.core.feature' + class: 'BashFeature' + args: + cmd: 'echo -n Hello World; exit 0' - - case_name: refstack_defcore + case_name: fourth project_name: xtesting criteria: 100 - blocking: false - description: >- - This test case runs a sub group of tests of the OpenStack - Defcore testcases by using refstack client. + blocking: true + clean_flag: false + description: '' dependencies: installer: '' scenario: '' run: - module: - 'xtesting.opnfv_tests.openstack.refstack_client.refstack_client' - class: 'RefstackClient' - - - - case_name: odl - project_name: xtesting - criteria: 100 - blocking: false - description: >- - Test Suite for the OpenDaylight SDN Controller. It - integrates some test suites from upstream using - Robot as the test framework. - dependencies: - installer: '' - scenario: 'odl' - run: - module: 'xtesting.opnfv_tests.sdn.odl.odl' - class: 'ODLTests' + module: 'xtesting.core.unit' + class: 'Suite' args: - suites: - - /src/odl_test/csit/suites/integration/basic - - /src/odl_test/csit/suites/openstack/neutron - - - - case_name: odl_netvirt - project_name: xtesting - criteria: 100 - blocking: false - description: >- - Test Suite for the OpenDaylight SDN Controller when - the NetVirt features are installed. It integrates - some test suites from upstream using Robot as the - test framework. - dependencies: - installer: 'apex' - scenario: 'os-odl_l3-nofeature' - run: - module: 'xtesting.opnfv_tests.sdn.odl.odl' - class: 'ODLTests' - args: - suites: - - /src/odl_test/csit/suites/integration/basic - - /src/odl_test/csit/suites/openstack/neutron - - /src/odl_test/csit/suites/openstack/connectivity + name: 'xtesting.samples.fourth' - - case_name: snaps_smoke + case_name: fifth project_name: xtesting criteria: 100 blocking: false - description: >- - This test case contains tests that setup and destroy - environments with VMs with and without Floating IPs - with a newly created user and project. Set the config - value snaps.use_floating_ips (True|False) to toggle - this functionality. When the config value of - snaps.use_keystone is True, xtesting must have access to - the cloud's private network. - - dependencies: - installer: '^((?!netvirt).)*$' - scenario: '^((?!lxd).)*$' - run: - module: 'xtesting.opnfv_tests.openstack.snaps.smoke' - class: 'SnapsSmoke' - - - - name: features - order: 2 - ci_loop: '(daily)|(weekly)' - description: >- - Test suites from feature projects - integrated in xtesting - testcases: - - - case_name: doctor-notification - project_name: doctor - criteria: 100 - blocking: false - description: >- - Test suite from Doctor project. - dependencies: - installer: 'apex' - scenario: '^((?!fdio).)*$' - run: - module: 'xtesting.core.feature' - class: 'BashFeature' - args: - cmd: 'doctor-test' - - - - case_name: bgpvpn - project_name: sdnvpn - criteria: 100 - blocking: false - description: >- - Test suite from SDNVPN project. - dependencies: - installer: '(fuel)|(apex)|(netvirt)' - scenario: 'bgpvpn' - run: - module: 'sdnvpn.test.xtesting.run_sdnvpn_tests' - class: 'SdnvpnFunctest' - - - - case_name: xtesting-odl-sfc - project_name: sfc - criteria: 100 - blocking: false - description: >- - Test suite for odl-sfc to test two chains with one SF and - one chain with two SFs + description: '' dependencies: installer: '' - scenario: 'odl.*sfc' - run: - module: 'xtesting.core.feature' - class: 'BashFeature' - args: - cmd: 'run_sfc_tests.py' - - - - case_name: barometercollectd - project_name: barometer - criteria: 100 - blocking: false - description: >- - Test suite for the Barometer project. Separate tests verify - the proper configuration and basic functionality of all the - collectd plugins as described in the Project Release Plan - dependencies: - installer: 'apex' - scenario: 'bar' - run: - module: 'baro_tests.barometer' - class: 'BarometerCollectd' - - - - case_name: fds - project_name: fastdatastacks - criteria: 100 - blocking: false - description: >- - Test Suite for the OpenDaylight SDN Controller when GBP - features are installed. It integrates some test suites from - upstream using Robot as the test framework. - dependencies: - installer: 'apex' - scenario: 'odl.*-fdio' + scenario: '' run: - module: 'xtesting.opnfv_tests.sdn.odl.odl' - class: 'ODLTests' + module: 'xtesting.core.robotframework' + class: 'RobotFramework' args: suites: - - /src/fds/testing/robot - - - - name: components - order: 3 - ci_loop: 'weekly' - description: >- - Extensive testing of OpenStack API. - testcases: - - - case_name: tempest_full_parallel - project_name: xtesting - criteria: 80 - blocking: false - description: >- - The list of test cases is generated by - Tempest automatically and depends on the parameters of - the OpenStack deplopyment. - dependencies: - installer: '^((?!netvirt).)*$' - scenario: '' - run: - module: 'xtesting.opnfv_tests.openstack.tempest.tempest' - class: 'TempestFullParallel' - - - - case_name: rally_full - project_name: xtesting - criteria: 100 - blocking: false - description: >- - This test case runs the full suite of scenarios of the - OpenStack Rally suite using several threads and iterations. - dependencies: - installer: '^((?!netvirt).)*$' - scenario: '' - run: - module: 'xtesting.opnfv_tests.openstack.rally.rally' - class: 'RallyFull' - - - - name: vnf - order: 4 - ci_loop: '(daily)|(weekly)' - description: >- - Collection of VNF test cases. - testcases: - - - case_name: cloudify_ims - project_name: xtesting - criteria: 80 - blocking: false - description: >- - This test case deploys an OpenSource vIMS solution from - Clearwater using the Cloudify orchestrator. It also runs - some signaling traffic. - dependencies: - installer: '' - scenario: 'os-nosdn-nofeature-.*ha' - run: - module: 'xtesting.opnfv_tests.vnf.ims.cloudify_ims' - class: 'CloudifyIms' - - - - case_name: vyos_vrouter - project_name: xtesting - criteria: 100 - blocking: false - description: >- - This test case is vRouter testing. - dependencies: - installer: '' - scenario: 'os-nosdn-nofeature-.*ha' - run: - module: 'xtesting.opnfv_tests.vnf.router.cloudify_vrouter' - class: 'CloudifyVrouter' - - - - case_name: orchestra_openims - project_name: orchestra - enabled: false - criteria: 100 - blocking: false - description: >- - OpenIMS VNF deployment with Open Baton (Orchestra) - dependencies: - installer: '' - scenario: 'os-nosdn-nofeature-.*ha' - run: - module: 'xtesting.opnfv_tests.vnf.ims.orchestra_openims' - class: 'OpenImsVnf' - - - - case_name: orchestra_clearwaterims - project_name: orchestra - enabled: false - criteria: 100 - blocking: false - description: >- - ClearwaterIMS VNF deployment with Open Baton (Orchestra) - dependencies: - installer: '' - scenario: 'os-nosdn-nofeature-.*ha' - run: - module: - 'xtesting.opnfv_tests.vnf.ims.orchestra_clearwaterims' - class: 'ClearwaterImsVnf' - - - - case_name: juju_epc - project_name: xtesting - criteria: 100 - blocking: false - description: >- - vEPC validation with Juju as VNF manager and ABoT as test - executor. - dependencies: - installer: '' - scenario: 'os-nosdn-nofeature-.*ha' - run: - module: 'xtesting.opnfv_tests.vnf.epc.juju_epc' - class: 'JujuEpc' + - /usr/lib/python2.7/site-packages/xtesting/samples/HelloWorld.txt + variable: + - 'var01:foo' + - 'var02:bar' diff --git a/xtesting/samples/HelloWorld.txt b/xtesting/samples/HelloWorld.txt new file mode 100644 index 00000000..721c452b --- /dev/null +++ b/xtesting/samples/HelloWorld.txt @@ -0,0 +1,3 @@ +*** Test Cases *** +HelloWorld + Log ${var01} ${var02} diff --git a/xtesting/samples/__init__.py b/xtesting/samples/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/xtesting/samples/first.py b/xtesting/samples/first.py new file mode 100644 index 00000000..60de3dc6 --- /dev/null +++ b/xtesting/samples/first.py @@ -0,0 +1,24 @@ +#!/usr/bin/env python + +# Copyright (c) 2016 Orange and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 + +# pylint: disable=missing-docstring + +import time + +from xtesting.core import testcase + + +class Test(testcase.TestCase): + + def run(self, **kwargs): + self.start_time = time.time() + print "Hello World" + self.result = 100 + self.stop_time = time.time() + return testcase.TestCase.EX_OK diff --git a/xtesting/samples/fourth.py b/xtesting/samples/fourth.py new file mode 100644 index 00000000..be104fda --- /dev/null +++ b/xtesting/samples/fourth.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python + +# Copyright (c) 2016 Orange and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 + +# pylint: disable=missing-docstring + +import unittest + + +class TestStringMethods(unittest.TestCase): + + def test_upper(self): + self.assertEqual('Hello World'.upper(), + 'HELLO WORLD') diff --git a/xtesting/samples/second.py b/xtesting/samples/second.py new file mode 100644 index 00000000..36e1dd33 --- /dev/null +++ b/xtesting/samples/second.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python + +# Copyright (c) 2016 Orange and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 + +# pylint: disable=missing-docstring + +from xtesting.core import feature + + +class Test(feature.Feature): + + def execute(self, **kwargs): + print "Hello World" + return 0 diff --git a/xtesting/samples/testcases.yaml b/xtesting/samples/testcases.yaml new file mode 100644 index 00000000..86b0d279 --- /dev/null +++ b/xtesting/samples/testcases.yaml @@ -0,0 +1,66 @@ +tiers: + - + name: samples + order: 1 + ci_loop: 'daily' + description : '' + testcases: + - + case_name: first + project_name: xtesting + criteria: 100 + blocking: true + clean_flag: false + description: '' + dependencies: + installer: '' + scenario: '' + run: + module: 'first' + class: 'Test' + + - + case_name: second + project_name: xtesting + criteria: 100 + blocking: true + clean_flag: false + description: '' + dependencies: + installer: '' + scenario: '' + run: + module: 'second' + class: 'Test' + + - + case_name: third + project_name: xtesting + criteria: 100 + blocking: true + clean_flag: false + description: '' + dependencies: + installer: '' + scenario: '' + run: + module: 'xtesting.core.feature' + class: 'BashFeature' + args: + cmd: 'echo -n Hello World; exit 0' + + - + case_name: fourth + project_name: xtesting + criteria: 100 + blocking: true + clean_flag: false + description: '' + dependencies: + installer: '' + scenario: '' + run: + module: 'xtesting.core.unit' + class: 'Suite' + args: + name: 'fourth' -- cgit 1.2.3-korg