summaryrefslogtreecommitdiffstats
path: root/tests/unit
AgeCommit message (Collapse)AuthorFilesLines
2017-12-16samples: Add generic L3 forwarder testsDino Madarang1-0/+267
A generic throughput test case that can be used as a stub code for a Linux-based VNF configured as an L3 forwarder. Supported context: * Standalone OVSDPDK and SRIOV * Baremetal Code changes: * Allow pmd-cpu-mask and lcore mask for OVS DPDK * router_vnf.py - configures interface IP addresses and static arp entries using ip command * NFVi KPIs * Allow cputune tag for standalone context to be able to PIN on NUMA 1 cpus SRIOV Test cases: * RFC2544 Ethernet framesizes, 128K Flows * 2,4 and 6 ports * 2 and 3 vcpus per port * OVSDPDK Test cases: * RFC2544 Ethernet framesizes, 128K Flows * 2 and 4 ports * 2 vcpus per port * 2 PMD threads per port TODO: * Documentation * Add 6 ports tests References: * router_vnf.py is based on sample_vnf.py * tc_*.yaml files are based on acl/vfw test case files Added unitests Added get_stats to parse ip -s link Change-Id: Id1b969d5420dfcab7c1e695acbd2cd1655747efe Signed-off-by: Dino Simeon Madarang <dinox.madarang@intel.com> Signed-off-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Reviewed-by: Alain Jebara <alain.jebara@intel.com> Reviewed-by: Deepak S <deepak.s@linux.intel.com> Reviewed-by: Emma Foley <emma.l.foley@intel.com> Reviewed-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com> Reviewed-by: Ross Brattain <ross.b.brattain@intel.com> Reviewed-by: Edward MacGillivray <edward.s.macgillivray@intel.com> Signed-off-by: Dhaval Patel <dhaval.r.patel@intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-12-15NSB: Fix standalone.model.Libvirt SR-IOV modelingDino Madarang3-118/+282
Fixed standalone.model.Libvirt SR-IOV XML interface modeling, acording to [1]: - All PCI attributes now are printed in hexadecimal format. - The PCI address is now added in the correct section, 'interface'. network_services.utils.PciAddress was refactored to accept both 'domain: bus:slot:function' and 'bus:slot:function' format inputs. This class is used as input in the previous class, Libvirt, to print in XML the PCI address of a SR-IOV interface. network_services.utils.PciAddress.parse_address is now deprecated. Instead the class standard instantiation must be used: libvirt_obj = utils.PciAddress(text_with_address) A deprecation decorator is implemented along with this patch. This decorator is used for the first time in the previously mentioned function. This decorator stores every decorated function name and deprecation message and raises a logging warning message the first time this function is used. [1] https://goo.gl/so2Mrp Change-Id: I22e95c488e27d6e2a8fdf6c1a07faab275fa6bba Signed-off-by: Dino Simeon Madarang <dinox.madarang@intel.com> Reviewed-by: Alain Jebara <alain.jebara@intel.com> Reviewed-by: Deepak S <deepak.s@linux.intel.com> Reviewed-by: Ross Brattain <ross.b.brattain@intel.com> Reviewed-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2017-12-14Merge "Ansible: fix lowercasing issue with ConfigParser"Ross Brattain1-21/+56
2017-12-11heat: allow overriding Heat/Neutron private IP for DPDK testsRoss Brattain2-2/+178
For some L2/L3 DPDK testcases we need to use a custom IP address space different from what Heat provides. These testcases require port_security_enabled = False so Neutron should allow for unrestricted L2 traffic. This will work because we bind the ports to DPDK and thus don't need DHCP. vnf_0: floating_ip: true placement: "pgrp1" network_ports: mgmt: - mgmt uplink_0: - xe0: local_ip: 10.44.0.20 netmask: 255.255.255.0 downlink_0: - xe1: local_ip: 10.44.0.30 netmask: 255.255.255.0 Also fixup flake8 errors in unittests Change-Id: Id29dfffa692f16fb1f526d208db43e476e2f7830 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-12-01Merge "KVMFORNFV: Reverting LiveMigration changes"Jing Lu1-10/+9
2017-11-30KVMFORNFV: Reverting LiveMigration changesNavya Bathula1-10/+9
This patch consists of reverting the changes of patch 45227 and incudes redirecting the console output of the LiveMigration execution to /dev/null as the stdout contains only the statistics, i.e., totaltime, downtime and setuptime. This reverts commit 5a1f65d3e7d67488ee6f558dccfa5ca5581ddb65. Change-Id: I252b5a4045657cfa8362e9aae755249480cd3b77 Signed-off-by: Navya <navyax.bathula@intel.com>
2017-11-17Make GenericTrafficGen class abstractRodolfo Alonso Hernandez2-74/+33
GenericTrafficGen class is now an abstract class. Only optional methods are implemented. - 'run_traffic' and 'terminate' are mandatory. - 'listen_traffic', 'verify_traffic' and 'wait_for_instance' are optional. By default these methods doesn't execute any action. JIRA: YARDSTICK-853 Change-Id: I2befdaa337af79cc2364bdd7c66183c31c5ab69a Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2017-11-17Merge "Create get_description and get_scenario_type for Scenario"Ross Brattain1-0/+53
2017-11-16NSB "Prox" : Cleanup duplicated traffic profileAbhijit Sinha1-95/+0
JIRA: YARDSTICK-848 The NSB PROX MPLS test uses Binsearch traffic profile and the mpls traffic profile is a duplicate. Change-Id: Ie2124cebf306fd6917b70ecd7c23ae12ef4850dc Signed-off-by: Abhijit Sinha <abhijit.sinha@intel.com>
2017-11-14NSB TRex: convert DPDK port number to logical TRex port numberRoss Brattain1-0/+54
when we create TRex config we sort based on PCI bus address and create a logical port ordering. We need to save this port ordering and re-use it everywhere. redirect vnfd_helper.port_num() to resource_helper.port_num() to use the logical mapping Change-Id: Ibff628556d5e11e686e15716a66a3210758c4ff0 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-11-10Merge "Remove ↵Ross Brattain1-14/+0
network_services.vnf_generic.vnf.prox_helpers.ProxSocketHelper.rx_stats"
2017-11-10Merge "Heat: add availability_zone"Ross Brattain1-11/+37
2017-11-10Merge "pmu: remove event_download_local workaround script"Ross Brattain1-4/+0
2017-11-09Merge "NSB Prox LW_AFTR Test"Ross Brattain1-0/+115
2017-11-08Remove network_services.vnf_generic.vnf.prox_helpers.ProxSocketHelper.rx_statsEmma Foley1-14/+0
* Remove the method which is unused and is marked as deprecated. Change-Id: Ie64084fcd26985283c664445b173a757d3d908ab JIRA: YARDSTICK-838 Signed-off-by: Emma Foley <emma.l.foley@intel.com>
2017-11-08pmu: remove event_download_local workaround scriptRoss Brattain1-4/+0
intel_pmu needs to download a config file based on the CPU model. When generating VNF images we don't have access to the actual vCPU that will be used, so we can't predownload. This code was meant to be a fix for that by downloading all the configs and then selecting one that matched the vCPU. However we have license issues with intel_pmu enven GPLv2 code, so remove it for now. Change-Id: I5257ff7c4ddc1d40537dadb29efa40d1d68cb852 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-11-07Create get_description and get_scenario_type for ScenarioRodolfo Alonso Hernandez1-0/+53
Created two new class functions for Scenario class: * "get_description" will return the first line of the docstring, if exists. * "get_scenario_type" will return the value of "__scenario_type__" variable. Change-Id: I8e3b47e33e0bae101b874c3975bb9c383397d188 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2017-11-07NSB Prox LW_AFTR TestDanielMartinBuckley1-0/+115
JIRA: YARDSTICK-802 Addition of PROX LW_AFTR basked on PROX/DATS v037 test_104_lw_aftr.py - This support BM and Openstack Heat - This supports 4 Ports ONLY - Grafana Dashboards included - Code Coverage / Unit testing Change-Id: If2170ab458bf687256d5f1a1e840a3b9d2788ef7 Signed-off-by: Daniel MArtin Buckley <daniel.m.buckley@intel.com> Signed-off-by: Abhijit Sinha <abhijit.sinha@intel.com>
2017-11-02Ansible: fix lowercasing issue with ConfigParserRoss Brattain1-21/+56
by default ConfigParser will lowercase everything, unless you override optionxform. also sort key value in inventory line for consistency https://docs.python.org/3/library/configparser.html#configparser.ConfigParser.optionxform Transforms the option name option as found in an input file or as passed in by client code to the form that should be used in the internal structures. The default implementation returns a lower-case version of option; subclasses may override this or client code can set an attribute of this name on instances to affect this behavior. You don’t need to subclass the parser to use this method, you can also set it on an instance, to a function that takes a string argument and returns a string. Setting it to str, for example, would make option names case sensitive: cfgparser = ConfigParser() cfgparser.optionxform = str Note that when reading configuration files, whitespace around the option names is stripped before optionxform() is called. YARDSTICK-833 Change-Id: Ia1810b0c77922d84e11c9e538540b38816338593 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-11-02test_sample_vnf: mock timeRoss Brattain1-1/+2
Change-Id: Id8aa734fee431d90cbdc1e0eb2173784ada822fe Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-11-01Heat: add availability_zoneRoss Brattain1-11/+37
Users would like to ensure placement of VMs on specific compute nodes so that the measurements are meaningful. Examples: Measure network performance in different scenarios (VMs in same host, in different hosts, across fabric, across tenants) Example: context: name: yardstick placement_groups: pgrp1: policy: "availability" servers: tg_0: floating_ip: true placement: "pgrp1" availability_zone: "zone2" vnf_0: floating_ip: true placement: "pgrp1" availability_zone: "zone1" Change-Id: I28a757c25ae3f5b3571ab3edd82d51ceba32c302 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-31NSB: remove validate_cpu_cfg and all app cpu methodsRoss Brattain1-106/+0
We don't really know what core we are going to use for the VNF before we generate the MultiPortConfig, so these methods are incorrect. We may need some more advanced method to validate the vCPU topology, but that will probably happen in the MultiPortConfig Change-Id: Ifee7ae4589ce0fce67771fb8d8b8dce0a0f06409 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-27resource: remove cores argsRoss Brattain1-1/+1
We used to try to probe all the cores that the VNF was using and only dump CPU stats for those cores. We can't really detect those core accurately and we would rather dump all the core information and let influxdb and grafana filter the information. We do end up with excessive KPI output, especially on systems with 88 cores, but this is manageable. The core logic was partially removed, this finishes the removal. Change-Id: I5cbb694fd982519e2df54db49a21ed5948e13537 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-25KVMFORNFV: To avoid livemigration result update to jsonNavya1-10/+11
This patch is used to remove the livemigration testcase result loaded to json as there is no dashboard implemented for the testcase Change-Id: I7a9589a0bbc5f2a28587c2878da042fc50af18e0 Signed-off-by: Navya Bathula <navyax.bathula@intel.com>
2017-10-19Merge "BugFix: Negative dropped packets in Prox tests"Ross Brattain1-2/+2
2017-10-19BugFix: Negative dropped packets in Prox testsAbhijit Sinha1-2/+2
Removed the abs function which can potentially mask negative dropped packets. Dropped packets in Prox workload VNF = rx_packets - tx_packets Change-Id: I510a351e899cdf9a1f366d632b9f0528b1d9dcce Signed-off-by: Abhijit Sinha <abhijit.sinha@intel.com>
2017-10-19Merge "add CheckConnectivity scenario"Jing Lu1-0/+84
2017-10-19add CheckConnectivity scenarioJingLu51-0/+84
Change-Id: I9d246828790467c2a57ba410826ee9751fff89c5 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2017-10-19Merge "Adding cpu set to enable affinity for given vcpu"Ross Brattain1-13/+7
2017-10-17Enable static cgnapt functionality.Deepak S3-14/+4
Change-Id: Ie770ca69ebdc66589ed6ca5c25bfc9a75afb8938 Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-10-16Adding cpu set to enable affinity for given vcpuDeepak S1-13/+7
Change-Id: If2e079966939b7faa33d2833d81caad0a3669036 Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-10-13Relocate iniparser to yardstick.network_services.helpersEdward MacGillivray2-8/+8
Change-Id: I1f457c9c24f2ca84dde61b64f58edaff8952670a Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
2017-10-13Merge "Move arp route tbl to script and update defailt vnf config files"Ross Brattain2-2/+5
2017-10-12collectd: set intel_pmu events path and OVS socket pathRoss Brattain1-5/+8
switch from hardcoded path to dynamic path based on bin_path also enable proxy for install_collectd add barometer settings for virt and ovs_stats Change-Id: Id138aef548332a3e3fcb3963b746e7c9f10c0948 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-11Move arp route tbl to script and update defailt vnf config filesDeepak S2-2/+5
Change-Id: I8674caa15c9fc32cfacb17f558da5fb31094877e Signed-off-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-12Merge "Use "protocol" parameters in iperf3 yaml and task file"Ross Brattain1-2/+20
2017-10-11Use "protocol" parameters in iperf3 yaml and task fileAce Lee1-2/+20
JIRA: YARDSTICK-755 There is a history problem that iperf use udp to set a net protocol. This code will change it to protocol. so you could use 'tcp','udp' and other protocol. Change-Id: I1a101013dfe58165a3ed08aa77f0aa2f73d57a12 Signed-off-by: Ace Lee <liyin11@huawei.com>
2017-10-06Merge "NSB Prox vPE Test"Ross Brattain1-51/+118
2017-10-06NSB Prox vPE TestAbhijit Sinha1-51/+118
JIRA: YARDSTICK-802 Addition of Prox vPE test case - The tests supports BM, Openstack Heat - Supports 4 ports - Grafana dashboards included - Added support for parameters.lua for prox additional files - Unit tests for code coverage Change-Id: I5cccb351dacba88a293ae4b8aba1f0a803d62e6d Signed-off-by: Abhijit Sinha <abhijit.sinha@intel.com> Signed-off-by: Daniel MArtin Buckley <daniel.m.buckley@intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-06fix random test_task unittest fail due to os.environ mockRoss Brattain1-10/+13
sometime Jenkins fails due to what I guess are concurrency problems in os.environ mock ====================================================================== FAIL: tests.unit.benchmark.core.test_task.TaskTestCase.test_parse_suite_with_constraint_no_args tags: worker-10 ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python3.5/unittest/mock.py", line 1157, in patched return func(*args, **keywargs) File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-euphrates/tests/unit/benchmark/core/test_task.py", line 208, in test_parse_suite_with_constraint_no_args task_files, task_args, task_args_fnames = t.parse_suite() File "/home/jenkins/opnfv/slave_root/workspace/yardstick-verify-euphrates/yardstick/benchmark/core/task.py", line 455, in parse_suite cur_pod = os.environ.get('NODE_NAME', None) File "/usr/lib/python3.5/unittest/mock.py", line 917, in __call__ return _mock_self._mock_call(*args, **kwargs) File "/usr/lib/python3.5/unittest/mock.py", line 976, in _mock_call result = next(effect) StopIteration Ran 1262 tests in 2.375s FAILED (id=0, failures=1) error: testr failed (1) + testr failing Replace the mock decorator with a context manager to try to reduce the scope and duration of the mock. Change-Id: I342fe6c403e66c53ac4c39fd88fa9047cdfae5d9 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-05Merge "heat: add port name as port"Ross Brattain1-0/+1
2017-10-05Merge "Add intermediate variables for attacker,monitor,result_checker"Ross Brattain1-2/+2
2017-10-05heat: add port name as portRoss Brattain1-0/+1
Change-Id: Ibd159359c6f57d573a909d6841c121c15bf692c1 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-04Disable VNF deploy by defaultDeepak S2-2/+6
Change-Id: I27bcc41c855f34fb1fd0332fc24e7bf0b2af4ec2 Signed-off-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-04Add intermediate variables for attacker,monitor,result_checkerqiujuan1-2/+2
JIRA: YARDSTICK-790 Change-Id: I6bb36c98b8673155d3142fc54cfb39315d5ce613 Signed-off-by: qiujuan <juan_qiu@tongji.edu.cn>
2017-10-03Merge "NSB PROX test hang fixes"Ross Brattain12-58/+189
2017-10-03NSB PROX test hang fixesRoss Brattain12-58/+189
The PROX tests were hanging in the duration runner. These are fixes for various errors: raise error in collect_kpi if VNF is down move prox dpdk_rebind after collectd stop fix dpdk nicbind rebind to group by drivers prox: raise error in collect_kpi if the VNF is down prox: add VNF_TYPE for consistency sample_vnf: debug and fix kill_vnf pkill is not matching some executable names, add some debug process dumps and try switching back to killall until we can find the issue sample_vnf: add default timeout, so we can override default 3600 SSH timeout collect_kpi is the point at which we check the VNFs and TGs for failures or exits queues are the problem make sure we aren't silently blocking on non-empty queues by canceling join thread in subprocess fixup duration runner to close queues and other attempt to stop duration runner from hanging VnfdHelper: memoize port_num resource: fail if ssh can't connect at the end of 3600 second test our ssh connection is dead, so we can't actually stop collectd unless we reconnect fix stop() logic to ignore ssh errors Change-Id: I6c8e682a80cb9d00362e2fef4a46df080f304e55 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-03Merge "Ensure that at least one handler is available"Ross Brattain1-0/+16
2017-10-02Enable multi-port perf in trex as TGDeepak S3-15/+11
set TRex -c option for threads per port based on hardware number of queues. We can't auto-detect number of queues and we can't use more than one thread per core on systems with single-queue interfaces, so move the option to the config file options: tg_0: queues_per_port: 2 also enable trex debug by removing >/dev/null redirection options: tg_0: trex_server_debug: true Change-Id: I46da187849282bf28f4ef5b333e1ae890e202768 Signed-off-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-02add collectd resource node capabilityRoss Brattain2-31/+59
allow manually adding collectd nodes using Node context. if a node is present with a collectd config dict then we can create a ResourceProfile object for it and connect to collectd. example nodes: - name: compute_0 role: Compute ip: 1.1.1.1 user: root password: r00t collectd: interval: 5 plugins: ovs_stats: {} Change-Id: Ie0c00fdb58373206071daa1fb13faf175c4313e0 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>