.. This work is licensed under a Creative Commons Attribution 4.0 International Licence. .. http://creativecommons.org/licenses/by/4.0 Detailed test results for apex-os-odl_l2-bgpvpn-ha ----------------------------------------------------- VIM --- vping_userdata ^^^^^^^^^^^^^^ :: FUNCTEST.info: Running vPing-userdata test... vPing_userdata- INFO - Creating image 'functest-vping' from '/home/opnfv/functest/data/cirros-0.3.4-x86_64-disk.img'... vPing_userdata- INFO - Creating neutron network vping-net... vPing_userdata- INFO - Creating security group 'vPing-sg'... vPing_userdata- INFO - Flavor found 'm1.small' vPing_userdata- INFO - vPing Start Time:'2016-04-26 15:40:43' vPing_userdata- INFO - Creating instance 'opnfv-vping-1'... vPing_userdata- INFO - Instance 'opnfv-vping-1' is ACTIVE. vPing_userdata- INFO - Creating instance 'opnfv-vping-2'... vPing_userdata- INFO - Instance 'opnfv-vping-2' is ACTIVE. vPing_userdata- INFO - Waiting for ping... vPing_userdata- INFO - vPing detected! vPing_userdata- INFO - vPing duration:'87.1' vPing_userdata- INFO - vPing OK vPing_userdata- INFO - Cleaning up... vPing_userdata- INFO - Deleting network 'vping-net'... Tempest ^^^^^^^ :: FUNCTEST.info: Running Tempest tests... run_tempest - INFO - Creating tenant and user for Tempest suite INFO rally.verification.tempest.tempest [-] Starting: Creating configuration file for Tempest. INFO rally.verification.tempest.tempest [-] Completed: Creating configuration file for Tempest. run_tempest - INFO - Starting Tempest test suite: '--tests-file /home/opnfv/repos/functest/testcases/VIM/OpenStack/CI/custom_tests/test_list.txt'. Total results of verification: +--------------------------------------+--------------------------------------+----------+-------+----------+----------------------------+----------+ | UUID | Deployment UUID | Set name | Tests | Failures | Created at | Status | +--------------------------------------+--------------------------------------+----------+-------+----------+----------------------------+----------+ | 97cda33b-5d92-46c5-8425-861d087d0d57 | 938a64f1-d650-497c-897d-8964906711fb | | 188 | 27 | 2016-04-26 15:42:30.384572 | finished | +--------------------------------------+--------------------------------------+----------+-------+----------+----------------------------+----------+ Tests: +----------------------------------------------------------------------------------------------------------------------------------+-----------+---------+ | name | time | status | +----------------------------------------------------------------------------------------------------------------------------------+-----------+---------+ | tempest.api.compute.flavors.test_flavors.FlavorsV2TestJSON.test_get_flavor | 0.643 | success | | tempest.api.compute.flavors.test_flavors.FlavorsV2TestJSON.test_list_flavors | 0.048 | success | | tempest.api.compute.images.test_images.ImagesTestJSON.test_delete_saving_image | 6.046 | success | | tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_delete_image | 6.507 | success | | tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_image_specify_multibyte_character_image_name | 5.748 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_changes_since | 0.049 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_name | 0.325 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_server_id | 0.053 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_server_ref | 0.251 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_status | 0.048 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_filter_by_type | 0.044 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_limit_results | 0.085 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_changes_since | 0.102 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_name | 0.131 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_server_ref | 0.137 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_status | 0.323 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_filter_by_type | 0.081 | success | | tempest.api.compute.images.test_list_image_filters.ListImageFiltersTestJSON.test_list_images_with_detail_limit_results | 0.430 | success | | tempest.api.compute.images.test_list_images.ListImagesTestJSON.test_get_image | 0.350 | success | | tempest.api.compute.images.test_list_images.ListImagesTestJSON.test_list_images | 0.198 | success | | tempest.api.compute.images.test_list_images.ListImagesTestJSON.test_list_images_with_detail | 0.132 | success | | tempest.api.compute.security_groups.test_security_group_rules.SecurityGroupRulesTestJSON.test_security_group_rules_create | 0.367 | success | | tempest.api.compute.security_groups.test_security_group_rules.SecurityGroupRulesTestJSON.test_security_group_rules_list | 0.577 | success | | tempest.api.compute.security_groups.test_security_groups.SecurityGroupsTestJSON.test_security_groups_create_list_delete | 1.641 | success | | tempest.api.compute.servers.test_attach_interfaces.AttachInterfacesTestJSON.test_add_remove_fixed_ip | 4.390 | success | | tempest.api.compute.servers.test_create_server.ServersTestJSON.test_host_name_is_same_as_server_name | 303.566 | fail | | tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers | 0.154 | success | | tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers_with_detail | 0.173 | success | | tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_created_server_vcpus | 300.550 | fail | | tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_server_details | 0.001 | success | | tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_host_name_is_same_as_server_name | 303.713 | fail | | tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers | 0.094 | success | | tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers_with_detail | 0.674 | success | | tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_created_server_vcpus | 300.091 | fail | | tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_server_details | 0.001 | success | | tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_get_instance_action | 0.043 | success | | tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_list_instance_actions | 1.587 | success | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_flavor | 0.262 | success | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_image | 0.121 | success | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_name | 0.178 | success | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_status | 0.135 | success | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_limit_results | 0.113 | success | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_flavor | 0.047 | success | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_image | 0.040 | success | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_limit | 0.040 | success | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_name | 0.038 | success | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_status | 0.259 | success | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_ip | 0.391 | success | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_ip_regex | 0.001 | skip | | tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_name_wildcard | 0.090 | success | | tempest.api.compute.serv
#!/usr/bin/env python
##############################################################################
# Copyright (c) 2015 Ericsson AB 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
##############################################################################
# Unittest for yardstick.benchmark.scenarios.networking.pktgen.Pktgen
import mock
import unittest
import json
from yardstick.benchmark.scenarios.networking import pktgen
@mock.patch('yardstick.benchmark.scenarios.networking.pktgen.ssh')
class PktgenTestCase(unittest.TestCase):
def setUp(self):
self.ctx = {
'host': {
'ip': '172.16.0.137',
'user': 'root',
'key_filename': 'mykey.key'
},
'target': {
'ip': '172.16.0.138',
'user': 'root',
'key_filename': 'mykey.key',
'ipaddr': '172.16.0.138'
}
}
def test_pktgen_successful_setup(self, mock_ssh):
args = {
'options': {'packetsize': 60},
}
p = pktgen.Pktgen(args, self.ctx)
p.setup()
mock_ssh.SSH().execute.return_value = (0, '', '')
self.assertIsNotNone(p.server)
self.assertIsNotNone(p.client)
self.assertEqual(p.setup_done, True)
def test_pktgen_successful_iptables_setup(self, mock_ssh):
args = {
'options': {'packetsize': 60, 'number_of_ports': 10},
}
p = pktgen.Pktgen(args, self.ctx)
p.server = mock_ssh.SSH()
p.number_of_ports = args['options']['number_of_ports']
mock_ssh.SSH().execute.return_value = (0, '', '')
p._iptables_setup()
mock_ssh.SSH().execute.assert_called_with(
"sudo iptables -F; "
"sudo iptables -A INPUT -p udp --dport 1000:%s -j DROP"
% 1010)
def test_pktgen_unsuccessful_iptables_setup(self, mock_ssh):
args = {
'options': {'packetsize': 60, 'number_of_ports': 10},
}
p = pktgen.Pktgen(args, self.ctx)
p.server = mock_ssh.SSH()
p.number_of_ports = args['options']['number_of_ports']
mock_ssh.SSH().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, p._iptables_setup)
def test_pktgen_successful_iptables_get_result(self, mock_ssh):
args = {
'options': {'packetsize': 60, 'number_of_ports': 10},
}
p = pktgen.Pktgen(args, self.ctx)
p.server = mock_ssh.SSH()
p.number_of_ports = args['options']['number_of_ports']
mock_ssh.SSH().execute.return_value = (0, '150000', '')
p._iptables_get_result()
mock_ssh.SSH().execute.assert_called_with(
"sudo iptables -L INPUT -vnx |"
"awk '/dpts:1000:%s/ {{printf \"%%s\", $1}}'"
% 1010)
def test_pktgen_unsuccessful_iptables_get_result(self, mock_ssh):
args = {
'options': {'packetsize': 60, 'number_of_ports': 10},
}
p = pktgen.Pktgen(args, self.ctx)
p.server = mock_ssh.SSH()
p.number_of_ports = args['options']['number_of_ports']
mock_ssh.SSH().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, p._iptables_get_result)
def test_pktgen_successful_no_sla(self, mock_ssh):
args = {
'options': {'packetsize': 60, 'number_of_ports': 10},
}
result = {}
p = pktgen.Pktgen(args, self.ctx)
p.server = mock_ssh.SSH()
p.client = mock_ssh.SSH()
mock_iptables_result = mock.Mock()
mock_iptables_result.return_value = 149300
p._iptables_get_result = mock_iptables_result
sample_output = '{"packets_per_second": 9753, "errors": 0, \
"packets_sent": 149776, "flows": 110}'
mock_ssh.SSH().execute.return_value = (0, sample_output, '')
p.run(result)
expected_result = json.loads(sample_output)
expected_result["packets_received"] = 149300
self.assertEqual(result, expected_result)
def test_pktgen_successful_sla(self, mock_ssh):
args = {
'options': {'packetsize': 60, 'number_of_ports': 10},
'sla': {'max_ppm': 10000}
}
result = {}
p = pktgen.Pktgen(args, self.ctx)
p.server = mock_ssh.SSH()
p.client = mock_ssh.SSH()
mock_iptables_result = mock.Mock()
mock_iptables_result.return_value = 149300
p._iptables_get_result = mock_iptables_result
sample_output = '{"packets_per_second": 9753, "errors": 0, \
"packets_sent": 149776, "flows": 110}'
mock_ssh.SSH().execute.return_value = (0, sample_output, '')
p.run(result)
expected_result = json.loads(sample_output)
expected_result["packets_received"] = 149300
self.assertEqual(result, expected_result)
def test_pktgen_unsuccessful_sla(self, mock_ssh):
args = {
'options': {'packetsize': 60, 'number_of_ports': 10},
'sla': {'max_ppm': 1000}
}
result = {}
p = pktgen.Pktgen(args, self.ctx)
p.server = mock_ssh.SSH()
p.client = mock_ssh.SSH()
mock_iptables_result = mock.Mock()
mock_iptables_result.return_value = 149300
p._iptables_get_result = mock_iptables_result
sample_output = '{"packets_per_second": 9753, "errors": 0, \
"packets_sent": 149776, "flows": 110}'
mock_ssh.SSH().execute.return_value = (0, sample_output, '')
self.assertRaises(AssertionError, p.run, result)
def test_pktgen_unsuccessful_script_error(self, mock_ssh):
args = {
'options': {'packetsize': 60, 'number_of_ports': 10},
'sla': {'max_ppm': 1000}
}
result = {}
p = pktgen.Pktgen(args, self.ctx)
p.server = mock_ssh.SSH()
p.client = mock_ssh.SSH()
mock_ssh.SSH().execute.return_value = (1, '', 'FOOBAR')
self.assertRaises(RuntimeError, p.run, result)
def main():
unittest.main()
if __name__ == '__main__':
main()