Move to tag 1.2.2
[nfvbench.git] / test / test_nfvbench.py
index 05490e7..16784d8 100644 (file)
@@ -13,7 +13,7 @@
 #    License for the specific language governing permissions and limitations
 #    under the License.
 #
-
+import json
 import logging
 import os
 import sys
@@ -299,6 +299,8 @@ def test_parse_rate_str():
         else:
             return False
 
+        return False
+
     assert should_raise_error('101')
     assert should_raise_error('201%')
     assert should_raise_error('10Kbps')
@@ -427,8 +429,6 @@ from nfvbench.traffic_client import IpBlock
 from nfvbench.traffic_client import TrafficClient
 from nfvbench.traffic_client import TrafficGeneratorFactory
 
-# pylint: enable=wrong-import-position,ungrouped-imports
-
 def test_ip_block():
     ipb = IpBlock('10.0.0.0', '0.0.0.1', 256)
     assert ipb.get_ip() == '10.0.0.0'
@@ -465,11 +465,12 @@ def check_config(configs, cc, fc, src_ip, dst_ip, step_ip):
     assert cfc == fc
 
 
-def create_device(fc, cc, ip, gip, tggip, step_ip):
+def create_device(fc, cc, ip, gip, tggip, step_ip, mac):
     return Device(0, 0, flow_count=fc, chain_count=cc, ip=ip, gateway_ip=gip, tg_gateway_ip=tggip,
                   ip_addrs_step=step_ip,
                   tg_gateway_ip_addrs_step=step_ip,
-                  gateway_ip_addrs_step=step_ip)
+                  gateway_ip_addrs_step=step_ip,
+                  dst_mac=mac)
 
 
 def check_device_flow_config(step_ip):
@@ -479,8 +480,9 @@ def check_device_flow_config(step_ip):
     ip1 = '20.0.0.0'
     tggip = '50.0.0.0'
     gip = '60.0.0.0'
-    dev0 = create_device(fc, cc, ip0, gip, tggip, step_ip)
-    dev1 = create_device(fc, cc, ip1, gip, tggip, step_ip)
+    mac = ['00:11:22:33:44:55'] * cc
+    dev0 = create_device(fc, cc, ip0, gip, tggip, step_ip, mac)
+    dev1 = create_device(fc, cc, ip1, gip, tggip, step_ip, mac)
     dev0.set_destination(dev1)
     configs = dev0.get_stream_configs(ChainType.EXT)
     check_config(configs, cc, fc, ip0, ip1, step_ip)
@@ -495,8 +497,9 @@ def test_device_ip_range():
     def ip_range_overlaps(ip0, ip1, flows):
         tggip = '50.0.0.0'
         gip = '60.0.0.0'
-        dev0 = create_device(flows, 10, ip0, gip, tggip, '0.0.0.1')
-        dev1 = create_device(flows, 10, ip1, gip, tggip, '0.0.0.1')
+        mac = ['00:11:22:33:44:55'] * 10
+        dev0 = create_device(flows, 10, ip0, gip, tggip, '0.0.0.1', mac)
+        dev1 = create_device(flows, 10, ip1, gip, tggip, '0.0.0.1', mac)
         dev0.set_destination(dev1)
         return dev0.ip_range_overlaps()
 
@@ -593,40 +596,45 @@ def assert_ndr_pdr(stats, ndr, ndr_dr, pdr, pdr_dr):
     assert_equivalence(pdr, stats['pdr']['rate_percent'])
     assert_equivalence(pdr_dr, stats['pdr']['stats']['overall']['drop_percentage'])
 
-def get_traffic_client():
-    config = AttrDict({
+def get_dummy_tg_config(chain_type, rate):
+    return AttrDict({
         'traffic_generator': {'host_name': 'nfvbench_tg',
                               'default_profile': 'dummy',
                               'generator_profile': [{'name': 'dummy',
                                                      'tool': 'dummy',
                                                      'ip': '127.0.0.1',
                                                      'intf_speed': '10Gbps',
-                                                     'interfaces': [{'port': 0, 'pci': 0},
-                                                                    {'port': 1, 'pci': 0}]}],
+                                                     'interfaces': [{'port': 0, 'pci': '0.0'},
+                                                                    {'port': 1, 'pci': '0.0'}]}],
                               'ip_addrs_step': '0.0.0.1',
                               'ip_addrs': ['10.0.0.0/8', '20.0.0.0/8'],
                               'tg_gateway_ip_addrs': ['1.1.0.100', '2.2.0.100'],
                               'tg_gateway_ip_addrs_step': '0.0.0.1',
                               'gateway_ip_addrs': ['1.1.0.2', '2.2.0.2'],
                               'gateway_ip_addrs_step': '0.0.0.1',
+                              'mac_addrs_left': None,
+                              'mac_addrs_right': None,
                               'udp_src_port': None,
                               'udp_dst_port': None},
-        'generator_profile': 'dummy',
-        'service_chain': 'PVP',
+        'service_chain': chain_type,
         'service_chain_count': 1,
         'flow_count': 10,
         'vlan_tagging': True,
         'no_arp': False,
         'duration_sec': 1,
         'interval_sec': 1,
-        'single_run': False,
-        'ndr_run': True,
-        'pdr_run': True,
-        'rate': 'ndr_pdr',
+        'rate': rate,
         'check_traffic_time_sec': 200,
         'generic_poll_sec': 2,
         'measurement': {'NDR': 0.001, 'PDR': 0.1, 'load_epsilon': 0.1},
     })
+
+def get_traffic_client():
+    config = get_dummy_tg_config('PVP', 'ndr_pdr')
+    config['ndr_run'] = True
+    config['pdr_run'] = True
+    config['generator_profile'] = 'dummy'
+    config['single_run'] = False
     generator_factory = TrafficGeneratorFactory(config)
     config.generator_config = generator_factory.get_generator_config(config.generator_profile)
     traffic_client = TrafficClient(config, skip_sleep=True)
@@ -678,3 +686,13 @@ def test_ndr_pdr_low_cpu():
     # import pprint
     # pp = pprint.PrettyPrinter(indent=4)
     # pp.pprint(results)
+
+import nfvbench.nfvbench
+
+def test_no_openstack():
+    config = get_dummy_tg_config('EXT', '1000pps')
+    config.openrc_file = None
+    old_argv = sys.argv
+    sys.argv = [old_argv[0], '-c', json.dumps(config)]
+    nfvbench.nfvbench.main()
+    sys.argv = old_argv