@@ -276,9 +276,9 @@ def main(address, cmd, args):
if __name__ == '__main__':
- import sys
- import os
import optparse
+ import os
+ import sys
address = os.environ['QGA_CLIENT_ADDRESS'] if 'QGA_CLIENT_ADDRESS' in os.environ else None
@@ -8,10 +8,11 @@
# This work is licensed under the terms of the GNU GPL, version 2. See
# the COPYING file in the top-level directory.
-import json
import errno
+import json
import socket
+
class QMPError(Exception):
pass
new file mode 100644
@@ -0,0 +1,30 @@
+#!/usr/bin/python3
+# BSD LICENSE
+#
+# Copyright (c) 2021 PANTHEON.tech s.r.o.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of PANTHEON.tech s.r.o. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -9,10 +9,11 @@
VBPE (virtual brige port extenstion)
"""
-from scapy.packet import *
+from scapy.data import ETHER_TYPES
from scapy.fields import *
from scapy.layers.l2 import Ether
-from scapy.data import ETHER_TYPES
+from scapy.packet import *
+
class Dot1BR(Packet):
name = "802.1BR"
new file mode 100644
@@ -0,0 +1,30 @@
+#!/usr/bin/python3
+# BSD LICENSE
+#
+# Copyright (c) 2021 PANTHEON.tech s.r.o.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of PANTHEON.tech s.r.o. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -4,4 +4,4 @@
PWD=`dirname $0`
-(cd $PWD/framework; ./main.py $@)
+./main.py $@
new file mode 100644
@@ -0,0 +1,30 @@
+#!/usr/bin/python3
+# BSD LICENSE
+#
+# Copyright (c) 2021 PANTHEON.tech s.r.o.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of PANTHEON.tech s.r.o. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,9 +1,10 @@
-import xlrd
import collections
import json
-from settings import get_nic_name, load_global_setting, HOST_DRIVER_SETTING
-from utils import RED
+import xlrd
+
+from .settings import HOST_DRIVER_SETTING, get_nic_name, load_global_setting
+from .utils import RED
filter_json_file = './conf/test_case_checklist.json'
support_json_file = './conf/test_case_supportlist.json'
@@ -32,14 +32,27 @@
"""
Generic port and crbs configuration file load function
"""
+import argparse # parse arguments module
+import configparser # config parse module
import os
import re
-import configparser # config parse module
-import argparse # parse arguments module
-from settings import (PKTGEN, PKTGEN_DPDK, PKTGEN_TREX, PKTGEN_IXIA, PKTGEN_IXIA_NETWORK,
- CONFIG_ROOT_PATH, SUITE_SECTION_NAME)
-from settings import load_global_setting, DTS_CFG_FOLDER
-from exception import ConfigParseException, VirtConfigParseException, PortConfigParseException
+
+from .exception import (
+ ConfigParseException,
+ PortConfigParseException,
+ VirtConfigParseException,
+)
+from .settings import (
+ CONFIG_ROOT_PATH,
+ DTS_CFG_FOLDER,
+ PKTGEN,
+ PKTGEN_DPDK,
+ PKTGEN_IXIA,
+ PKTGEN_IXIA_NETWORK,
+ PKTGEN_TREX,
+ SUITE_SECTION_NAME,
+ load_global_setting,
+)
PORTCONF = "%s/ports.cfg" % CONFIG_ROOT_PATH
CRBCONF = "%s/crbs.cfg" % CONFIG_ROOT_PATH
@@ -99,7 +112,7 @@ class GlobalConf(UserConf):
self.global_conf = UserConf(GLOBALCONF)
except ConfigParseException:
self.global_conf = None
-
+
# load global configuration
self.global_cfg = self.load_global_config()
@@ -115,10 +128,10 @@ class GlobalConf(UserConf):
return global_cfg
global_cfg = dict(section_confs)
-
+
return global_cfg
-
-
+
+
class SuiteConf(UserConf):
def __init__(self, suite_name=""):
self.suite_cfg = GlobalConf().load_global_config()
@@ -29,13 +29,14 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
-import re
import os
-from settings import TIMEOUT
-from ssh_connection import SSHConnection
-from logger import getLogger
-from config import PortConf, PORTCONF, PktgenConf
+import re
+import time
+
+from .config import PORTCONF, PktgenConf, PortConf
+from .logger import getLogger
+from .settings import TIMEOUT
+from .ssh_connection import SSHConnection
"""
CRB (customer reference board) basic functions and handlers
@@ -578,7 +579,7 @@ class Crb(object):
"""
Get OS type from execution configuration file.
"""
- from dut import Dut
+ from .dut import Dut
if isinstance(self, Dut) and 'OS' in self.crb:
return str(self.crb['OS']).lower()
@@ -588,7 +589,7 @@ class Crb(object):
"""
Check real OS type whether match configured type.
"""
- from dut import Dut
+ from .dut import Dut
expected = 'Linux.*#'
if isinstance(self, Dut) and self.get_os_type() == 'freebsd':
expected = 'FreeBSD.*#'
@@ -22,16 +22,16 @@
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-import sys
+import code
+import imp
import os
import signal
-import code
+import sys
import time
-import imp
-from settings import load_global_setting, DEBUG_SETTING, DTS_PARALLEL_SETTING
-from utils import get_subclasses, copy_instance_attr, GREEN
-from test_case import TestCase
+from .settings import DEBUG_SETTING, DTS_PARALLEL_SETTING, load_global_setting
+from .test_case import TestCase
+from .utils import GREEN, copy_instance_attr, get_subclasses
console = None # global console object
debug_cmd = '' # global debug state
@@ -59,7 +59,7 @@ def list_command():
List all connection sessions and can be reference of connect command.
"""
index = 0
- from ssh_connection import CONNECTIONS
+ from .ssh_connection import CONNECTIONS
for connection in CONNECTIONS:
for name, session in list(connection.items()):
console.push('print \'connect %d: %10s\'' % (index, name))
@@ -70,7 +70,7 @@ def connect_command(connect):
"""
Connect to ssh session and give control to user.
"""
- from ssh_connection import CONNECTIONS
+ from .ssh_connection import CONNECTIONS
if type(connect) == int:
name, session = list(CONNECTIONS[connect].items())[0]
print(GREEN("Connecting to session[%s]" % name))
@@ -29,39 +29,44 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import re # regular expressions module
+import atexit # register callback when exit
import configparser # config parse module
-import os # operation system module
-import texttable # text format
-import traceback # exception traceback
-import inspect # load attribute
-import atexit # register callback when exit
-import json # json format
-import signal # signal module for debug mode
-import time # time module for unique output folder
-import copy # copy module for duplicate variable
-
-import rst # rst file support
-import sys # system module
-import settings # dts settings
-from tester import Tester
-from dut import Dut
-from serializer import Serializer
-from test_case import TestCase
-from test_result import Result
-from stats_reporter import StatsReporter
-from excel_reporter import ExcelReporter
-from json_reporter import JSONReporter
-from exception import TimeoutException, ConfigParseException, VerifyFailure
-from logger import getLogger
-import logger
-import debugger
-from config import CrbsConf
-from checkCase import CheckCase
-from utils import (get_subclasses, copy_instance_attr, create_parallel_locks,
- check_dts_python_version)
-import sys
+import copy # copy module for duplicate variable
import imp
+import inspect # load attribute
+import json # json format
+import os # operation system module
+import re # regular expressions module
+import signal # signal module for debug mode
+import sys # system module
+import time # time module for unique output folder
+import traceback # exception traceback
+
+import framework.debugger as debugger
+import framework.logger as logger
+import framework.rst as rst # rst file support
+import framework.settings as settings # dts settings
+import framework.texttable as texttable # text format
+
+from .checkCase import CheckCase
+from .config import CrbsConf
+from .dut import Dut
+from .excel_reporter import ExcelReporter
+from .exception import ConfigParseException, TimeoutException, VerifyFailure
+from .json_reporter import JSONReporter
+from .logger import getLogger
+from .serializer import Serializer
+from .stats_reporter import StatsReporter
+from .test_case import TestCase
+from .test_result import Result
+from .tester import Tester
+from .utils import (
+ check_dts_python_version,
+ copy_instance_attr,
+ create_parallel_locks,
+ get_subclasses,
+)
+
imp.reload(sys)
requested_tests = None
@@ -247,7 +252,7 @@ def get_project_obj(project_name, super_class, crbInst, serializer, dut_id):
project_obj = None
PROJECT_MODULE_PREFIX = 'project_'
try:
- project_module = __import__(PROJECT_MODULE_PREFIX + project_name)
+ project_module = __import__('framework.' + PROJECT_MODULE_PREFIX + project_name)
for project_subclassname, project_subclass in get_subclasses(project_module, super_class):
project_obj = project_subclass(crbInst, serializer, dut_id)
@@ -445,7 +450,7 @@ def dts_run_suite(duts, tester, test_suites, target, subtitle):
append_requested_case_list = case_list.split('\\')
suite_name = suite_name[:suite_name.find(':')]
result.test_suite = suite_name
- suite_module = __import__('TestSuite_' + suite_name)
+ suite_module = __import__('tests.TestSuite_' + suite_name)
for test_classname, test_class in get_subclasses(suite_module, TestCase):
suite_obj = test_class(duts, tester, target, suite_name)
@@ -524,9 +529,6 @@ def run_all(config_file, pkgName, git, patch, skip_setup,
if not os.path.exists(output_dir):
os.mkdir(output_dir)
- # add python module search path
- sys.path.append(suite_dir)
-
# enable debug mode
if debug is True:
settings.save_global_setting(settings.DEBUG_SETTING, 'yes')
@@ -32,16 +32,18 @@
import os
import re
import time
-import settings
-from config import PortConf,AppNameConf
-from settings import NICS, LOG_NAME_SEP
-from ssh_connection import SSHConnection
-from crb import Crb
-from net_device import GetNicObj
-from virt_resource import VirtResource
-from utils import RED, remove_old_rsa_key
from uuid import uuid4
+import framework.settings as settings
+from nics.net_device import GetNicObj
+
+from .config import AppNameConf, PortConf
+from .crb import Crb
+from .settings import LOG_NAME_SEP, NICS
+from .ssh_connection import SSHConnection
+from .utils import RED, remove_old_rsa_key
+from .virt_resource import VirtResource
+
class Dut(Crb):
@@ -36,16 +36,16 @@ import copy
import itertools
import operator
from functools import reduce
-from typing import List, FrozenSet, Union, Iterable, Tuple
+from typing import FrozenSet, Iterable, List, Tuple, Union
from scapy.layers.l2 import Ether
from scapy.packet import Raw
-from flow.enums import FlowItemType, FlowActionType
-from flow.exceptions import InvalidFlowItemException
-from flow.flow_action_items import ActionFlowItem
-from flow.flow_items import FlowItem
-from flow.flow_pattern_items import PatternFlowItem, TUNNELING_PROTOCOLS
+from .enums import FlowActionType, FlowItemType
+from .exceptions import InvalidFlowItemException
+from .flow_action_items import ActionFlowItem
+from .flow_items import FlowItem
+from .flow_pattern_items import TUNNELING_PROTOCOLS, PatternFlowItem
# Get reserved mac addresses
NEVER_MATCH_PACKET = Ether(src="", dst="") / Raw('\x00' * 64)
@@ -30,10 +30,10 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from typing import FrozenSet, Dict, Tuple
+from typing import Dict, FrozenSet, Tuple
-from flow.enums import FlowActionType
-from flow.flow_pattern_items import FlowItem
+from .enums import FlowActionType
+from .flow_items import FlowItem
ALWAYS_ALLOWED_ACTIONS = {FlowActionType.VOID}
@@ -35,12 +35,13 @@ from __future__ import annotations
import copy
import itertools
from functools import reduce
-from typing import FrozenSet, Union, Any, Set, Dict, Tuple, Iterable, Hashable
+from typing import Any, Dict, FrozenSet, Hashable, Iterable, Set, Tuple, Union
-from flow.enums import FlowItemType, FlowActionType
-from flow.exceptions import InvalidFlowItemException
-from flow import flow_action_items
-from flow import flow_pattern_items
+import framework.flow.flow_action_items as flow_action_items
+import framework.flow.flow_pattern_items as flow_pattern_items
+
+from .enums import FlowActionType, FlowItemType
+from .exceptions import InvalidFlowItemException
PATTERN_ACTION_ITEMS = {FlowItemType.INVERT, FlowItemType.VOID, FlowItemType.MARK, FlowItemType.META}
@@ -90,7 +91,7 @@ class FlowItem(object):
raise InvalidFlowItemException(self, other)
elif other.type in self.valid_next_items:
# This import is in here so there is no circular import
- from flow.flow import Flow
+ from .flow import Flow
if isinstance(self, flow_pattern_items.PatternFlowItem):
return Flow(pattern_items=[self, other])
elif isinstance(self, flow_action_items.ActionFlowItem):
@@ -31,18 +31,18 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Allows the type system to handle referencing a class inside it's definition
-from typing import FrozenSet, Dict, List, Tuple, Iterable
+from typing import Dict, FrozenSet, Iterable, List, Tuple
-from scapy.layers.inet import UDP, TCP, IP, ICMP
+from scapy.layers.inet import ICMP, IP, TCP, UDP
from scapy.layers.inet6 import IPv6
-from scapy.layers.l2 import Ether, Dot1Q, GRE, ARP
+from scapy.layers.l2 import ARP, GRE, Dot1Q, Ether
from scapy.layers.sctp import SCTP
from scapy.layers.vxlan import VXLAN
from scapy.packet import Packet
-from flow.enums import FlowItemType
-from flow.exceptions import InvalidFlowItemException
-from flow.flow_items import FlowItem
+from .enums import FlowItemType
+from .exceptions import InvalidFlowItemException
+from .flow_items import FlowItem
ALWAYS_ALLOWED_ITEMS = {
FlowItemType.RAW,
@@ -89,7 +89,7 @@ class PatternFlowItem(FlowItem):
if other.type in self.valid_next_items or \
other.type == FlowItemType.END:
# This import is in here so there is no circular import
- from flow.flow import Flow
+ from flow import Flow
return Flow(pattern_items=[self, other])
else:
raise InvalidFlowItemException(self, other)
@@ -32,9 +32,10 @@
from typing import Union
-from flow.enums import *
-from flow.flow import Flow
-import flow.flow_action_items as flow_action_items
+import framework.flow.flow_action_items as flow_action_items
+
+from .enums import *
+from .flow import Flow
class FlowPattern(Flow):
@@ -33,17 +33,26 @@ from __future__ import annotations
import os
import sys
-from typing import List, Set, Generator, Iterable, FrozenSet, Tuple
+from typing import FrozenSet, Generator, Iterable, List, Set, Tuple
path = os.path.dirname(os.path.dirname(__file__))
if path not in sys.path:
sys.path.append(path)
-from flow.flow import Flow
-from flow.flow_pattern_items import PATTERN_ITEMS_TYPE_CLASS_MAPPING, PatternFlowItem, \
- PATTERN_OPERATION_TYPES, ALWAYS_ALLOWED_ITEMS, FlowItemVxlan, FlowItemIpv4, \
- FlowItemEth, FlowItemGre, L3_FLOW_TYPES, FlowItemUdp
-from flow.flow_rule import FlowItemType
+from .flow import Flow
+from .flow_pattern_items import (
+ ALWAYS_ALLOWED_ITEMS,
+ L3_FLOW_TYPES,
+ PATTERN_ITEMS_TYPE_CLASS_MAPPING,
+ PATTERN_OPERATION_TYPES,
+ FlowItemEth,
+ FlowItemGre,
+ FlowItemIpv4,
+ FlowItemUdp,
+ FlowItemVxlan,
+ PatternFlowItem,
+)
+from .flow_rule import FlowItemType
def get_valid_next_protocols(current_protocol, protocol_stack, type_denylist):
@@ -32,19 +32,20 @@
This module implant from pei,yulong ixNetwork tool.
"""
+import csv
+import json
import os
-import time
import re
-import requests
-import json
-import csv
+import time
from collections import OrderedDict
from datetime import datetime
+import requests
+
+from .ixnet_stream import IxnetConfigStream
# local lib deps
from .packet_parser import PacketParser
-from .ixnet_stream import IxnetConfigStream
class IxnetTrafficGenerator(object):
@@ -28,10 +28,10 @@
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import os
import json
+import os
-from utils import convert_int2ip, convert_ip2int
+from framework.utils import convert_int2ip, convert_ip2int
class IxnetConfigStream(object):
@@ -32,9 +32,9 @@ import os
from collections import OrderedDict
from scapy.all import conf
+from scapy.fields import ConditionalField
from scapy.packet import NoPayload
from scapy.packet import Packet as scapyPacket
-from scapy.fields import ConditionalField
from scapy.utils import rdpcap
@@ -31,6 +31,7 @@
import json
+
class JSONReporter(object):
def __init__(self, filename):
@@ -29,14 +29,14 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import inspect
import logging
import os
-import sys
-import inspect
import re
+import sys
-from settings import LOG_NAME_SEP, FOLDERS, load_global_setting, DTS_PARALLEL_SETTING
-from utils import RED
+from .settings import DTS_PARALLEL_SETTING, FOLDERS, LOG_NAME_SEP, load_global_setting
+from .utils import RED
"""
DTS logger module with several log level. DTS framework and TestSuite log
@@ -1,11 +1,13 @@
-import time
import re
-import threadpool
-import traceback
import threading
-from settings import DTS_ERR_TBL, save_global_setting, DTS_PARALLEL_SETTING
-from utils import RED
-from logger import getLogger
+import time
+import traceback
+
+import threadpool
+
+from .logger import getLogger
+from .settings import DTS_ERR_TBL, DTS_PARALLEL_SETTING, save_global_setting
+from .utils import RED
class MultipleVM(object):
@@ -74,7 +76,8 @@ class MultipleVM(object):
self.logger.info("Parallel task start for DUT%d %s" % (dut_id, vm_name))
threading.current_thread().name = vm_name
- from qemu_kvm import QEMUKvm
+ from .qemu_kvm import QEMUKvm
+
# VM configured by configuration file
if 'virt_config' in args:
suite_name = args['virt_config']['suite_name']
@@ -33,9 +33,13 @@ Generic packet create, transmit and analyze module
Base on scapy(python program for packet manipulation)
"""
-from socket import AF_INET6
from importlib import import_module
+from socket import AF_INET6
+
from scapy.all import *
+
+from .utils import convert_int2ip, convert_ip2int
+
# load extension layers
exec_file = os.path.realpath(__file__)
DTS_PATH = exec_file.replace('/framework/packet.py', '')
@@ -44,43 +48,27 @@ TMP_PATH = DTS_PATH[:-1] + '/output/tmp/pcap/' if exec_file.endswith('.pyc') els
if not os.path.exists(TMP_PATH):
os.system('mkdir -p %s' % TMP_PATH)
-DEP_FOLDER = DTS_PATH + '/dep'
-sys.path.append(DEP_FOLDER)
-sys.path.append(DEP_FOLDER + '/scapy_modules')
-
-from utils import convert_ip2int
-from utils import convert_int2ip
-
-scapy_modules_required = {'gtp': ['GTP_U_Header', 'GTPPDUSessionContainer'],
- 'lldp': ['LLDPDU', 'LLDPDUManagementAddress'],
- 'Dot1BR': ['Dot1BR'],
- 'pfcp': ['PFCP'],
- 'nsh': ['NSH'],
- 'igmp': ['IGMP'],
- 'mpls': ['MPLS'],
+scapy_modules_required = {'scapy.contrib.gtp': ['GTP_U_Header', 'GTPPDUSessionContainer'],
+ 'scapy.contrib.lldp': ['LLDPDU', 'LLDPDUManagementAddress'],
+ 'dep.scapy_modules.Dot1BR': ['Dot1BR'],
+ 'scapy.contrib.pfcp': ['PFCP'],
+ 'scapy.contrib.nsh': ['NSH'],
+ 'scapy.contrib.igmp': ['IGMP'],
+ 'scapy.contrib.mpls': ['MPLS'],
}
-local_modules = [m[:-3] for m in os.listdir(DEP_FOLDER + '/scapy_modules') if (m.endswith('.py') and not m.startswith('__'))]
for m in scapy_modules_required:
try:
- if m in local_modules:
- module = import_module(m)
- for clazz in scapy_modules_required[m]:
- locals().update({clazz: getattr(module, clazz)})
- else:
- module = import_module(f'scapy.contrib.{m}')
- for clazz in scapy_modules_required[m]:
- locals().update({clazz: getattr(module, clazz)})
+ module = import_module(m)
+ for clazz in scapy_modules_required[m]:
+ locals().update({clazz: getattr(module, clazz)})
except Exception as e:
print(e)
def get_scapy_module_impcmd():
cmd_li = list()
for m in scapy_modules_required:
- if m in local_modules:
- cmd_li.append(f'from {m} import {",".join(scapy_modules_required[m])}')
- else:
- cmd_li.append(f'from scapy.contrib.{m} import {",".join(scapy_modules_required[m])}')
+ cmd_li.append(f'from {m} import {",".join(scapy_modules_required[m])}')
return ';'.join(cmd_li)
SCAPY_IMP_CMD = get_scapy_module_impcmd()
@@ -33,21 +33,28 @@ import os
from copy import deepcopy
from scapy.all import conf
+from scapy.fields import ConditionalField
from scapy.packet import NoPayload
from scapy.packet import Packet as scapyPacket
-from scapy.fields import ConditionalField
from scapy.utils import rdpcap
+from .pktgen_base import (
+ PKTGEN_DPDK,
+ PKTGEN_IXIA,
+ PKTGEN_IXIA_NETWORK,
+ PKTGEN_TREX,
+ STAT_TYPE,
+ TRANSMIT_CONT,
+ TRANSMIT_M_BURST,
+ TRANSMIT_S_BURST,
+ DpdkPacketGenerator,
+)
+from .pktgen_ixia import IxiaPacketGenerator
+from .pktgen_ixia_network import IxNetworkPacketGenerator
+from .pktgen_trex import TrexPacketGenerator
+
# dts libs
-from utils import (convert_int2ip, convert_ip2int,
- convert_mac2long, convert_mac2str)
-
-from pktgen_base import (PKTGEN_DPDK, PKTGEN_TREX, PKTGEN_IXIA, PKTGEN_IXIA_NETWORK, STAT_TYPE,
- TRANSMIT_CONT, TRANSMIT_M_BURST, TRANSMIT_S_BURST)
-from pktgen_base import DpdkPacketGenerator
-from pktgen_ixia import IxiaPacketGenerator
-from pktgen_ixia_network import IxNetworkPacketGenerator
-from pktgen_trex import TrexPacketGenerator
+from .utils import convert_int2ip, convert_ip2int, convert_mac2long, convert_mac2str
class PacketGeneratorHelper(object):
@@ -29,17 +29,18 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
import logging
+import time
from abc import abstractmethod
from copy import deepcopy
-from logger import getLogger
-from pprint import pformat
from enum import Enum, unique
+from pprint import pformat
+
+from .config import PktgenConf
+from .logger import getLogger
-from config import PktgenConf
# packet generator name
-from settings import PKTGEN_DPDK, PKTGEN_TREX, PKTGEN_IXIA, PKTGEN_IXIA_NETWORK, PKTGEN
+from .settings import PKTGEN, PKTGEN_DPDK, PKTGEN_IXIA, PKTGEN_IXIA_NETWORK, PKTGEN_TREX
# macro definition
TRANSMIT_CONT = 'continuous'
@@ -34,17 +34,20 @@ import string
import time
from pprint import pformat
-from ssh_connection import SSHConnection
-from settings import SCAPY2IXIA
-from utils import (convert_int2ip, convert_ip2int,
- convert_mac2long, convert_mac2str)
-
-from pktgen_base import (PacketGenerator, PKTGEN_IXIA,
- TRANSMIT_CONT, TRANSMIT_M_BURST, TRANSMIT_S_BURST)
-
from scapy.packet import Packet
from scapy.utils import wrpcap
+from .pktgen_base import (
+ PKTGEN_IXIA,
+ TRANSMIT_CONT,
+ TRANSMIT_M_BURST,
+ TRANSMIT_S_BURST,
+ PacketGenerator,
+)
+from .settings import SCAPY2IXIA
+from .ssh_connection import SSHConnection
+from .utils import convert_int2ip, convert_ip2int, convert_mac2long, convert_mac2str
+
class Ixia(SSHConnection):
"""
@@ -33,7 +33,7 @@ import time
import traceback
from pprint import pformat
-from pktgen_base import PacketGenerator, PKTGEN_IXIA_NETWORK
+from .pktgen_base import PKTGEN_IXIA_NETWORK, PacketGenerator
class IxNetworkPacketGenerator(PacketGenerator):
@@ -29,14 +29,20 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import logging
import os
import sys
import time
-import logging
from pprint import pformat
-from pktgen_base import (PacketGenerator, PKTGEN_TREX, PKTGEN,
- TRANSMIT_CONT, TRANSMIT_M_BURST, TRANSMIT_S_BURST)
+from .pktgen_base import (
+ PKTGEN,
+ PKTGEN_TREX,
+ TRANSMIT_CONT,
+ TRANSMIT_M_BURST,
+ TRANSMIT_S_BURST,
+ PacketGenerator,
+)
class TrexConfigVm(object):
@@ -44,7 +50,7 @@ class TrexConfigVm(object):
config one stream vm format of trex
'''
def __init__(self):
- from trex_stl_lib.api import (ipv4_str_to_num, mac2str, is_valid_ipv4_ret)
+ from trex_stl_lib.api import ipv4_str_to_num, is_valid_ipv4_ret, mac2str
self.ipv4_str_to_num = ipv4_str_to_num
self.is_valid_ipv4_ret = is_valid_ipv4_ret
self.mac2str = mac2str
@@ -214,10 +220,16 @@ class TrexConfigStream(object):
def __init__(self):
from trex_stl_lib.api import (
- STLTXCont, STLTXSingleBurst, STLTXMultiBurst,
- STLPktBuilder, STLProfile, STLVM,
- STLStream, STLStreamDstMAC_PKT,
- STLFlowLatencyStats)
+ STLVM,
+ STLFlowLatencyStats,
+ STLPktBuilder,
+ STLProfile,
+ STLStream,
+ STLStreamDstMAC_PKT,
+ STLTXCont,
+ STLTXMultiBurst,
+ STLTXSingleBurst,
+ )
# set trex class
self.STLStream = STLStream
@@ -447,6 +459,7 @@ class TrexPacketGenerator(PacketGenerator):
# import t-rex libs
sys.path.insert(0, trex_lib_dir)
from trex_stl_lib.api import STLClient
+
# set trex class
self.STLClient = STLClient
# get configuration from pktgen config file
@@ -30,11 +30,14 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import math
+
import matplotlib as mp
+
mp.use('Agg')
+import itertools
+
import matplotlib.pyplot as plt
import numpy as np
-import itertools
"""
Generate graphs for each test suite
@@ -31,13 +31,15 @@
import os
import shutil
-from plotgraph import Plot2DGraph
+
from docutils.parsers.rst.directives import path
-from rst import path2Result
-import plotgraph
-import utils
-from exception import VerifyFailure
+import framework.plotgraph as plotgraph
+import framework.utils as utils
+
+from .exception import VerifyFailure
+from .plotgraph import Plot2DGraph
+from .rst import path2Result
"""
Generate Plots for performance test results
@@ -32,8 +32,9 @@
import os
import re
from time import sleep
-from settings import TIMEOUT, PROTOCOL_PACKET_SIZE, get_nic_driver
-from utils import create_mask
+
+from .settings import PROTOCOL_PACKET_SIZE, TIMEOUT, get_nic_driver
+from .utils import create_mask
class PmdOutput():
@@ -32,16 +32,25 @@
import os
import re
-from settings import NICS, load_global_setting, save_global_setting, accepted_nic
-from settings import DPDK_RXMODE_SETTING, HOST_DRIVER_SETTING, HOST_DRIVER_MODE_SETTING, HOST_BUILD_TYPE_SETTING
-from settings import HOST_SHARED_LIB_SETTING, HOST_SHARED_LIB_PATH
-from ssh_connection import SSHConnection
-from crb import Crb
-from dut import Dut
-from tester import Tester
-from logger import getLogger
-from settings import DRIVERS
-from utils import RED
+from .crb import Crb
+from .dut import Dut
+from .logger import getLogger
+from .settings import (
+ DPDK_RXMODE_SETTING,
+ DRIVERS,
+ HOST_BUILD_TYPE_SETTING,
+ HOST_DRIVER_MODE_SETTING,
+ HOST_DRIVER_SETTING,
+ HOST_SHARED_LIB_PATH,
+ HOST_SHARED_LIB_SETTING,
+ NICS,
+ accepted_nic,
+ load_global_setting,
+ save_global_setting,
+)
+from .ssh_connection import SSHConnection
+from .tester import Tester
+from .utils import RED
class DPDKdut(Dut):
@@ -131,7 +140,7 @@ class DPDKdut(Dut):
elif drivername == "mlx5_core":
pass
-
+
elif drivername == "igb_uio":
self.send_expect("modprobe uio", "#", 70)
out = self.send_expect("lsmod | grep igb_uio", "#")
@@ -30,15 +30,14 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
-import re
import os
+import re
+import time
-from virt_base import VirtBase
-from virt_base import ST_NOTSTART, ST_PAUSE, ST_RUNNING, ST_UNKNOWN
-from exception import StartVMFailedException
-from settings import get_host_ip, load_global_setting, DTS_PARALLEL_SETTING
-from utils import parallel_lock, RED
+from .exception import StartVMFailedException
+from .settings import DTS_PARALLEL_SETTING, get_host_ip, load_global_setting
+from .utils import RED, parallel_lock
+from .virt_base import ST_NOTSTART, ST_PAUSE, ST_RUNNING, ST_UNKNOWN, VirtBase
# This name is directly defined in the qemu guest service
# So you can not change it except it is changed by the service
@@ -29,22 +29,22 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
-import re
import os
-
-import utils
-from dut import Dut
-from ssh_connection import SSHConnection
-from virt_base import VirtBase
-from virt_resource import VirtResource
-from logger import getLogger
-from config import VirtConf
-from config import VIRTCONF
-from exception import StartVMFailedException
+import re
+import time
import xml.etree.ElementTree as ET
-from xml.etree.ElementTree import ElementTree
from xml.dom import minidom
+from xml.etree.ElementTree import ElementTree
+
+import framework.utils as utils
+
+from .config import VIRTCONF, VirtConf
+from .dut import Dut
+from .exception import StartVMFailedException
+from .logger import getLogger
+from .ssh_connection import SSHConnection
+from .virt_base import VirtBase
+from .virt_resource import VirtResource
class LibvirtKvm(VirtBase):
@@ -30,15 +30,16 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import os
-import shutil
import re
-from exception import VerifyFailure
+import shutil
+
+from .exception import VerifyFailure
"""
Generate Rst Test Result Report
Example:
- import rst
+ import framework.rst as rst
rst.write_title("Test Case: " + test_case.__name__)
out = table.draw()
rst.write_text('\n' + out + '\n\n')
@@ -32,9 +32,9 @@
Folders for framework running environment.
"""
import os
-import sys
import re
import socket
+import sys
FOLDERS = {
'Framework': 'framework',
@@ -29,8 +29,8 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from ssh_pexpect import SSHPexpect
-from settings import USERNAME
+from .settings import USERNAME
+from .ssh_pexpect import SSHPexpect
"""
Global structure for saving connections
@@ -1,9 +1,11 @@
import time
+
import pexpect
from pexpect import pxssh
-from debugger import ignore_keyintr, aware_keyintr
-from exception import TimeoutException, SSHConnectionException, SSHSessionDeadException
-from utils import RED, GREEN, parallel_lock
+
+from .debugger import aware_keyintr, ignore_keyintr
+from .exception import SSHConnectionException, SSHSessionDeadException, TimeoutException
+from .utils import GREEN, RED, parallel_lock
"""
Module handle ssh sessions between tester and DUT.
@@ -33,23 +33,34 @@
A base class for creating DTF test cases.
"""
import re
-import debugger
-import traceback
import signal
import time
-
-from exception import VerifyFailure, VerifySkip, TimeoutException
-from settings import DRIVERS, NICS, get_nic_name, load_global_setting
-from settings import PERF_SETTING, FUNC_SETTING, DEBUG_SETTING
-from settings import DEBUG_CASE_SETTING, HOST_DRIVER_SETTING
-from settings import UPDATE_EXPECTED, SUITE_SECTION_NAME
-from rst import RstReport
-from test_result import ResultTable, Result
-from logger import getLogger
-from config import SuiteConf
-from utils import BLUE, RED
+import traceback
from functools import wraps
+import framework.debugger as debugger
+
+from .config import SuiteConf
+from .exception import TimeoutException, VerifyFailure, VerifySkip
+from .logger import getLogger
+from .rst import RstReport
+from .settings import (
+ DEBUG_CASE_SETTING,
+ DEBUG_SETTING,
+ DRIVERS,
+ FUNC_SETTING,
+ HOST_DRIVER_SETTING,
+ NICS,
+ PERF_SETTING,
+ SUITE_SECTION_NAME,
+ UPDATE_EXPECTED,
+ get_nic_name,
+ load_global_setting,
+)
+from .test_result import Result, ResultTable
+from .utils import BLUE, RED
+
+
class TestCase(object):
def __init__(self, duts, tester, target, suitename):
@@ -377,7 +388,7 @@ class TestCase(object):
# prepare debugger rerun case environment
if self._enable_debug or self._debug_case:
debugger.AliveSuite = self
- debugger.AliveModule = __import__('TestSuite_' + self.suite_name)
+ debugger.AliveModule = __import__('tests.TestSuite_' + self.suite_name)
if load_global_setting(FUNC_SETTING) == 'yes':
for case_obj in self._get_functional_cases():
@@ -32,7 +32,7 @@
"""
Generic result container and reporters
"""
-import texttable # text format
+import framework.texttable as texttable # text format
class Result(object):
@@ -33,22 +33,30 @@
Interface for bulk traffic generators.
"""
-import re
-import subprocess
import os
-from time import sleep
-from settings import NICS, load_global_setting, PERF_SETTING
-from settings import USERNAME, PKTGEN, PKTGEN_GRP
-from crb import Crb
-from net_device import GetNicObj
import random
-from utils import (GREEN, convert_int2ip, convert_ip2int,
- check_crb_python_version)
-from exception import ParameterInvalidException
+import re
+import subprocess
from multiprocessing import Process
-from pktgen import getPacketGenerator
-from config import PktgenConf
-from packet import SCAPY_IMP_CMD
+from time import sleep
+
+from nics.net_device import GetNicObj
+
+from .config import PktgenConf
+from .crb import Crb
+from .exception import ParameterInvalidException
+from .packet import SCAPY_IMP_CMD
+from .pktgen import getPacketGenerator
+from .settings import (
+ NICS,
+ PERF_SETTING,
+ PKTGEN,
+ PKTGEN_GRP,
+ USERNAME,
+ load_global_setting,
+)
+from .utils import GREEN, check_crb_python_version, convert_int2ip, convert_ip2int
+
class Tester(Crb):
@@ -665,11 +673,6 @@ class Tester(Crb):
"""
Send several random packets and check rx packets matched
"""
- # load functions in packet module
- module = __import__("packet")
- pkt_c = getattr(module, "Packet")
- compare_f = getattr(module, "compare_pktload")
- strip_f = getattr(module, "strip_pktload")
tx_pkts = {}
rx_inst = {}
# packet type random between tcp/udp/ipv6
@@ -678,13 +681,13 @@ class Tester(Crb):
txIntf = self.get_interface(txport)
rxIntf = self.get_interface(rxport)
self.logger.info(GREEN("Preparing transmit packets, please wait few minutes..."))
- pkt = pkt_c()
+ pkt = Packet()
pkt.generate_random_pkts(pktnum=pktnum, random_type=random_type, ip_increase=True, random_payload=True,
options={"layers_config": params})
tx_pkts[txport] = pkt
# sniff packets
- inst = module.start_tcpdump(self, rxIntf, count=pktnum,
+ inst = start_tcpdump(self, rxIntf, count=pktnum,
filters=[{'layer': 'network', 'config': {'srcport': '65535'}},
{'layer': 'network', 'config': {'dstport': '65535'}}])
rx_inst[rxport] = inst
@@ -708,10 +711,10 @@ class Tester(Crb):
break
else:
self.logger.info('exceeded timeout, force to stop background packet sending to avoid dead loop')
- pkt_c.stop_send_pkt_bg(i)
+ Packet.stop_send_pkt_bg(i)
prev_id = -1
for txport, rxport in portList:
- p = module.stop_and_load_tcpdump_packets(rx_inst[rxport])
+ p = stop_and_load_tcpdump_packets(rx_inst[rxport])
recv_pkts = p.pktgen.pkts
# only report when received number not matched
if len(tx_pkts[txport].pktgen.pkts) > len(recv_pkts):
@@ -744,11 +747,11 @@ class Tester(Crb):
else:
prev_id = t_idx
- if compare_f(tx_pkts[txport].pktgen.pkts[idx], recv_pkts[idx], "L4") is False:
+ if compare_pktload(tx_pkts[txport].pktgen.pkts[idx], recv_pkts[idx], "L4") is False:
self.logger.warning("Pkt received index %d not match original " \
"index %d" % (idx, idx))
- self.logger.info("Sent: %s" % strip_f(tx_pkts[txport].pktgen.pkts[idx], "L4"))
- self.logger.info("Recv: %s" % strip_f(recv_pkts[idx], "L4"))
+ self.logger.info("Sent: %s" % strip_pktload(tx_pkts[txport].pktgen.pkts[idx], "L4"))
+ self.logger.info("Recv: %s" % strip_pktload(recv_pkts[idx], "L4"))
return False
return True
@@ -757,19 +760,14 @@ class Tester(Crb):
"""
Wrapper for packet module sniff_packets
"""
- # load functions in packet module
- packet = __import__("packet")
- inst = packet.start_tcpdump(self, intf=intf, count=count, filters=filters, lldp_forbid=lldp_forbid)
+ inst = start_tcpdump(self, intf=intf, count=count, filters=filters, lldp_forbid=lldp_forbid)
return inst
def load_tcpdump_sniff_packets(self, index='', timeout=1):
"""
Wrapper for packet module load_pcapfile
"""
- # load functions in packet module
- packet = __import__("packet")
- p = packet.stop_and_load_tcpdump_packets(index, timeout=timeout)
-
+ p = stop_and_load_tcpdump_packets(index, timeout=timeout)
return p
def kill_all(self, killall=False):
@@ -94,9 +94,9 @@ Maximilian Hils:
- fix minor bug for Python 3 compatibility
"""
-import sys
-import string
import re
+import string
+import sys
try:
if sys.version >= '2.3':
@@ -29,13 +29,13 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import json # json format
-import re
-import os
-import sys
import inspect
+import json # json format
+import os
+import re
import socket
import struct
+import sys
import threading
import types
from functools import wraps
@@ -30,19 +30,18 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import os
import sys
-import traceback
import threading
+import traceback
from random import randint
+import framework.exception as exception
+import framework.utils as utils
-import utils
-import exception
-from dut import Dut
-from config import VirtConf
-from config import VIRTCONF
-from logger import getLogger
-from settings import CONFIG_ROOT_PATH
-from virt_dut import VirtDut
+from .config import VIRTCONF, VirtConf
+from .dut import Dut
+from .logger import getLogger
+from .settings import CONFIG_ROOT_PATH
+from .virt_dut import VirtDut
ST_NOTSTART = "NOTSTART"
ST_PAUSE = "PAUSE"
@@ -30,11 +30,11 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import os
-from config import VirtConf
-from settings import CONFIG_ROOT_PATH
+from .config import VirtConf
+from .qemu_kvm import QEMUKvm
+from .qemu_libvirt import LibvirtKvm
+from .settings import CONFIG_ROOT_PATH
-from qemu_kvm import QEMUKvm
-from qemu_libvirt import LibvirtKvm
def VM(dut, vm_name, suite_name):
conf = VirtConf(CONFIG_ROOT_PATH + os.sep + suite_name + '.cfg')
@@ -32,14 +32,21 @@
import os
import re
import time
-import settings
-from utils import RED, parallel_lock
-from config import PortConf, AppNameConf
-from settings import NICS, LOG_NAME_SEP, get_netdev, load_global_setting, HOST_BUILD_TYPE_SETTING
-from project_dpdk import DPDKdut
-from dut import Dut
-from net_device import GetNicObj
-from net_device import RemoveNicObj
+
+import framework.settings as settings
+from nics.net_device import GetNicObj, RemoveNicObj
+
+from .config import AppNameConf, PortConf
+from .dut import Dut
+from .project_dpdk import DPDKdut
+from .settings import (
+ HOST_BUILD_TYPE_SETTING,
+ LOG_NAME_SEP,
+ NICS,
+ get_netdev,
+ load_global_setting,
+)
+from .utils import RED, parallel_lock
class VirtDut(DPDKdut):
@@ -30,7 +30,7 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
from random import randint
-from utils import get_obj_funcs, parallel_lock, RED
+from .utils import RED, get_obj_funcs, parallel_lock
INIT_FREE_PORT = 6000
INIT_SERIAL_PORT = 7000
@@ -29,15 +29,15 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import time
-import utils
-
-from settings import CONFIG_ROOT_PATH, get_netdev
-from config import VirtConf
-from config import VIRTCONF
-from exception import *
-from qemu_kvm import QEMUKvm
-from pmd_output import PmdOutput
-from utils import create_mask
+
+import framework.utils as utils
+
+from .config import VIRTCONF, VirtConf
+from .exception import *
+from .pmd_output import PmdOutput
+from .qemu_kvm import QEMUKvm
+from .settings import CONFIG_ROOT_PATH, get_netdev
+from .utils import create_mask
# scenario module for handling scenario
# 1. load configurations
similarity index 96%
rename from framework/main.py
rename to main.py
@@ -34,20 +34,16 @@
A test framework for testing DPDK.
"""
-import os
-import sys
import argparse
+import os
import subprocess
+import sys
+
+from framework import dts
# change operation directory
-os.chdir("../")
cwd = os.getcwd()
-sys.path.append(cwd + '/nics')
-sys.path.append(cwd + '/framework')
-#sys.path.append(cwd + '/tests') # suites module path should be loaded in dts/run_all, not here
-sys.path.append(cwd + '/dep')
-import dts
def git_build_package(gitLabel, pkgName):
"""
new file mode 100644
@@ -0,0 +1,30 @@
+#!/usr/bin/python3
+# BSD LICENSE
+#
+# Copyright (c) 2021 PANTHEON.tech s.r.o.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of PANTHEON.tech s.r.o. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -32,14 +32,13 @@
import os
import re
-from functools import wraps
import time
+from functools import wraps
-
-import settings
-from crb import Crb
-from settings import TIMEOUT, HEADER_SIZE
-from utils import RED
+import framework.settings as settings
+from framework.crb import Crb
+from framework.settings import HEADER_SIZE, TIMEOUT
+from framework.utils import RED
NICS_LIST = [] # global list for save nic objects
@@ -30,19 +30,22 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import os
-import time
import re
+import smtplib
+import time
+from collections import OrderedDict
+from email.mime.multipart import MIMEMultipart
+from email.mime.text import MIMEText
import jinja2
-import smtplib
-from email.mime.text import MIMEText
-from email.mime.multipart import MIMEMultipart
-from collections import OrderedDict
#install GitPython
from git import Repo
-from system_info import SystemInfo
-import utils
+
+import framework.utils as utils
+
+from .system_info import SystemInfo
+
def get_dpdk_git_info(repo_dir="/root/dpdk"):
@@ -63,14 +66,14 @@ def get_dpdk_git_info(repo_dir="/root/dpdk"):
return commit
def generate_html_report(file_tpl, perf_data, git_info, nic_info, system_info):
-
+
if not os.path.exists(file_tpl):
return None
templateLoader = jinja2.FileSystemLoader(searchpath = "/")
templateEnv = jinja2.Environment(loader=templateLoader)
template = templateEnv.get_template(file_tpl)
-
+
templateVars = { "title" : "Daily Performance Test Report", \
"test_results" : perf_data, \
"system_infos" : system_info, \
@@ -106,6 +109,6 @@ def send_email(sender, mailto, message, smtp_server):
print(utils.RED("Failed to send email " + str(e)))
def send_html_report(sender, mailto, subject, html_msg, smtp_server):
-
+
message = html_message(sender, mailto, subject, html_msg)
send_email(sender, mailto, message, smtp_server)
@@ -30,13 +30,14 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import os
-import time
import re
-
+import time
from collections import OrderedDict
+
#install GitPython
from git import Repo
+
class SystemInfo(object):
def __init__(self, dut, pci_device_id):
new file mode 100644
@@ -0,0 +1,3 @@
+[tool.isort]
+profile = "black"
+
@@ -38,3 +38,4 @@ pcapy
xlrd
scapy==2.4.4
threadpool
+isort
\ No newline at end of file
@@ -51,12 +51,16 @@ DPDK Test suite.
Test support of ABI .
"""
-import utils
import time
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import load_global_setting, HOST_SHARED_LIB_SETTING, HOST_SHARED_LIB_PATH
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.settings import (
+ HOST_SHARED_LIB_PATH,
+ HOST_SHARED_LIB_SETTING,
+ load_global_setting,
+)
+from framework.test_case import TestCase
class TestABIStable(TestCase):
@@ -30,7 +30,7 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from test_case import TestCase
+from framework.test_case import TestCase
class TestACL(TestCase):
@@ -32,10 +32,11 @@
import os
import re
import time
-from settings import HEADER_SIZE
-from test_case import TestCase
-from packet import Packet
-from pktgen import PacketGeneratorHelper
+
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestAfXdp(TestCase):
@@ -33,10 +33,11 @@
DPDK Test suite.
Test device blocklisting.
"""
-import utils
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import DRIVERS
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.settings import DRIVERS
+from framework.test_case import TestCase
+
class TestBlockList(TestCase):
def set_up_all(self):
@@ -33,13 +33,14 @@
DPDK Test suite.
"""
-import utils
import re
import time
-from test_case import TestCase
-from packet import Packet
-from pktgen import TRANSMIT_CONT
-from pmd_output import PmdOutput
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import TRANSMIT_CONT
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestCBDMA(TestCase):
@@ -41,31 +41,25 @@ import os
import re
import subprocess
import time
-from typing import List, Union, Tuple, Pattern
+from typing import List, Pattern, Tuple, Union
-import time
-
-from rst import RstReport
-import utils
-from exception import VerifyFailure
-from pktgen import PacketGeneratorHelper
-from scapy.layers.inet import UDP, TCP, IP
+from scapy.layers.inet import IP, TCP, UDP
from scapy.layers.inet6 import IPv6
-from scapy.layers.l2 import Ether, GRE
+from scapy.layers.l2 import GRE, Ether
from scapy.layers.sctp import SCTP
from scapy.layers.vxlan import VXLAN
from scapy.packet import Raw
-from scapy.utils import wrpcap, rdpcap
-from test_capabilities import DRIVER_TEST_LACK_CAPA
-from test_case import TestCase
-
-from pmd_output import PmdOutput
-from test_capabilities import DRIVER_TEST_LACK_CAPA
-from pktgen import PacketGeneratorHelper
-from exception import VerifyFailure
-import packet
-
-from settings import FOLDERS
+from scapy.utils import rdpcap, wrpcap
+
+import framework.packet as packet
+import framework.utils as utils
+from framework.exception import VerifyFailure
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.rst import RstReport
+from framework.settings import FOLDERS
+from framework.test_capabilities import DRIVER_TEST_LACK_CAPA
+from framework.test_case import TestCase
l3_proto_classes = [
IP,
@@ -36,20 +36,21 @@ Test the support of generic flow API by Poll Mode Drivers.
"""
-import utils
-import time
import re
+import time
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import DRIVERS
-from crb import Crb
-from dut import Dut
-import packet
-from exception import VerifyFailure
import scapy.layers.inet
from scapy.utils import rdpcap
+import framework.packet as packet
+import framework.utils as utils
+from framework.crb import Crb
+from framework.dut import Dut
+from framework.exception import VerifyFailure
+from framework.pmd_output import PmdOutput
+from framework.settings import DRIVERS
+from framework.test_case import TestCase
+
MAX_QUEUE = 16
class TestCloudFilterWithL4Port(TestCase):
@@ -34,9 +34,8 @@ DPDK Test suite.
Test cmdline.
"""
-import utils
-
-from test_case import TestCase
+import framework.utils as utils
+from framework.test_case import TestCase
class TestCmdline(TestCase):
@@ -30,11 +30,13 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import os
-from test_case import TestCase
-import json
import copy
-import compress_common as cc
+import json
+import os
+
+import tests.compress_common as cc
+from framework.test_case import TestCase
+
class TestCompressdevIsalPmd(TestCase):
@@ -30,11 +30,12 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import os
-from test_case import TestCase
-import json
import copy
-import compress_common as cc
+import json
+import os
+
+import tests.compress_common as cc
+from framework.test_case import TestCase
class TestCompressdevQatPmd(TestCase):
@@ -30,11 +30,13 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import os
-from test_case import TestCase
-import json
import copy
-import compress_common as cc
+import json
+import os
+
+import tests.compress_common as cc
+from framework.test_case import TestCase
+
class TestCompressdevZlibPmd(TestCase):
@@ -36,10 +36,9 @@ Test coremask parsing in DPDK.
"""
-import utils
-
-from exception import VerifyFailure
-from test_case import TestCase
+import framework.utils as utils
+from framework.exception import VerifyFailure
+from framework.test_case import TestCase
#
#
@@ -29,10 +29,11 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import re
import json
-from test_case import TestCase
-import cryptodev_common as cc
+import re
+
+import tests.cryptodev_common as cc
+from framework.test_case import TestCase
class PerfTestsCryptodev(TestCase):
@@ -30,12 +30,14 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import re
import random
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase
-from rte_flow_common import RssProcessing
+import re
+
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
+from .rte_flow_common import RssProcessing
vf0_mac = "00:11:22:33:44:55"
@@ -32,10 +32,12 @@
import re
import time
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase
-from rte_flow_common import RssProcessing
+
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
+from .rte_flow_common import RssProcessing
# ipv4+ipv4+ipv4
mac_ipv4_gre_ipv4_gtpu_ipv4_basic = {
@@ -30,13 +30,15 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import re
import random
+import re
import time
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase, skip_unsupported_pkg, check_supported_nic
-from rte_flow_common import RssProcessing
+
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, check_supported_nic, skip_unsupported_pkg
+
+from .rte_flow_common import RssProcessing
mac_ipv4_gtpu_ipv4_basic = {
'ipv4-nonfrag': 'Ether(dst="00:11:22:33:44:55")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst="192.168.0.1", src="192.168.0.2")/("X"*480)',
@@ -28,15 +28,17 @@
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import re
import random
+import re
import string
import time
-from test_case import TestCase, skip_unsupported_pkg, check_supported_nic
-from pmd_output import PmdOutput
-from packet import Packet
-from rte_flow_common import RssProcessing
-from config import UserConf
+
+from framework.config import UserConf
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, check_supported_nic, skip_unsupported_pkg
+
+from .rte_flow_common import RssProcessing
vf0_mac = '00:11:22:33:44:55'
@@ -30,12 +30,14 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import re
import random
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase
-from rte_flow_common import RssProcessing
+import re
+
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
+from .rte_flow_common import RssProcessing
# toeplitz related data start
mac_ipv4_toeplitz_basic_pkt = {
@@ -32,11 +32,12 @@
import re
import time
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase
-from rte_flow_common import RssProcessing
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
+from .rte_flow_common import RssProcessing
mac_ipv4_gtpu_ipv4_basic = {
'gtpogre-ipv4-nonfrag': 'Ether(dst="68:05:CA:BB:26:E0")/IP(proto=0x2F)/GRE(proto=0x0800)/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst="192.168.0.1",src="192.168.0.2")/("X"*480)',
@@ -32,11 +32,12 @@
import re
import time
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase, skip_unsupported_pkg, check_supported_nic
-from rte_flow_common import RssProcessing
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, check_supported_nic, skip_unsupported_pkg
+
+from .rte_flow_common import RssProcessing
mac_ipv4_gtpu_ipv4_basic = {
'ipv4-nonfrag': 'Ether(dst="68:05:CA:BB:26:E0")/IP()/UDP(dport=2152)/GTP_U_Header(gtp_type=255, teid=0x123456)/IP(dst="192.168.0.1",src="192.168.0.2")/("X"*480)',
@@ -29,13 +29,15 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import re
import random
+import re
import string
-from test_case import TestCase, skip_unsupported_pkg
-from pmd_output import PmdOutput
-from packet import Packet
-from rte_flow_common import RssProcessing
+
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, skip_unsupported_pkg
+
+from .rte_flow_common import RssProcessing
mac_pppoe_pay_packets = {
'mismatch': [
@@ -28,14 +28,16 @@
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import re
import random
+import re
import string
-from test_case import TestCase, skip_unsupported_pkg, check_supported_nic
-from pmd_output import PmdOutput
-from packet import Packet
-from rte_flow_common import RssProcessing
-from config import UserConf
+
+from framework.config import UserConf
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, check_supported_nic, skip_unsupported_pkg
+
+from .rte_flow_common import RssProcessing
mac_ipv4_pfcp_session_packets = {
'match': [
@@ -29,18 +29,17 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import copy
import json
-import time
+import os
import re
-import copy
-
-from test_case import TestCase
-from pmd_output import PmdOutput
-from packet import Packet
-from utils import BLUE, RED, GREEN
-import rte_flow_common as rfc
+import time
-import os
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.utils import BLUE, GREEN, RED
vf1_mac = "00:01:23:45:67:89"
@@ -32,9 +32,10 @@
import re
import time
-from pmd_output import PmdOutput
-from test_case import TestCase
-from packet import Packet
+
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class DcfDatePathTest(TestCase):
@@ -29,18 +29,17 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import copy
import json
-import time
+import os
import re
-import copy
-
-from test_case import TestCase, skip_unsupported_pkg, check_supported_nic
-from pmd_output import PmdOutput
-from packet import Packet
-from utils import BLUE, RED, GREEN
-import rte_flow_common as rfc
+import time
-import os
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, check_supported_nic, skip_unsupported_pkg
+from framework.utils import BLUE, GREEN, RED
tv_mac_pay = {
"name":"tv_mac_pay",
@@ -29,18 +29,17 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import copy
import json
-import time
+import os
import re
-import copy
-
-from test_case import TestCase, skip_unsupported_pkg, check_supported_nic
-from pmd_output import PmdOutput
-from packet import Packet
-from utils import BLUE, RED, GREEN
-import rte_flow_common as rfc
+import time
-import os
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, check_supported_nic, skip_unsupported_pkg
+from framework.utils import BLUE, GREEN, RED
tv_mac_pay = {
"name":"tv_mac_pay",
@@ -29,18 +29,17 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import copy
import json
-import time
+import os
import re
-import copy
-
-from test_case import TestCase, skip_unsupported_pkg, check_supported_nic
-from pmd_output import PmdOutput
-from packet import Packet
-from utils import BLUE, RED, GREEN
-import rte_flow_common as rfc
+import time
-import os
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, check_supported_nic, skip_unsupported_pkg
+from framework.utils import BLUE, GREEN, RED
mac_ipv4_gtpu_basic = {
'ipv4_gtpu': 'Ether(dst="00:11:22:33:44:55")/IP()/UDP()/GTP_U_Header()/Raw("x" *20)',
@@ -29,19 +29,17 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import json
-import time
-import re
import copy
-
-from test_case import TestCase, skip_unsupported_pkg, check_supported_nic
-from pmd_output import PmdOutput
-from packet import Packet
-from utils import BLUE, RED, GREEN
-import rte_flow_common as rfc
-
+import json
import os
+import re
+import time
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, check_supported_nic, skip_unsupported_pkg
+from framework.utils import BLUE, GREEN, RED
tv_mac_vlan_pppoe_ipv4_pay_session_id_proto_id = {
"name":"tv_mac_vlan_pppoe_ipv4_pay_session_id_proto_id",
@@ -1,12 +1,13 @@
import re
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase
-import rte_flow_common as rfc
-import utils
-from utils import GREEN, RED
import time
+import framework.utils as utils
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.utils import GREEN, RED
+
Mac_list = ['00:11:22:33:44:55', '00:11:22:33:44:11', '00:11:22:33:44:22', '00:11:22:33:44:33']
pkt_lst = ["Ether(dst='{}')/IP()/UDP(dport={})/Raw(\'\\x10\\x00\')",
@@ -30,18 +30,17 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import re
-import time
import copy
import os
+import re
+import time
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase, skip_unsupported_pkg
-import rte_flow_common as rfc
-
-from utils import GREEN, RED
-import utils
+import framework.utils as utils
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, skip_unsupported_pkg
+from framework.utils import GREEN, RED
MAC_IPV4_PAY = {
"match": [
@@ -30,14 +30,16 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase
import re
-from utils import GREEN, RED
import time
+
from scapy.all import *
-import rte_flow_common as rfc
+
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.utils import GREEN, RED
LAUNCH_QUEUE = 16
@@ -30,14 +30,17 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import json
-import time
-import re
-import packet
import os
+import re
+import time
+
from scapy.contrib.gtp import *
-from test_case import TestCase
-from pmd_output import PmdOutput
-from rte_flow_common import RssProcessing
+
+import framework.packet as packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
+from .rte_flow_common import RssProcessing
tv_packets_basic = {
'tv_mac_ipv4': 'Ether(dst="00:11:22:33:44:55")/IP(src="192.168.0.2",dst="192.168.0.3")/("X"*40)',
@@ -30,13 +30,15 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase
-from utils import GREEN, RED
import time
+
from scapy.all import *
-import rte_flow_common as rfc
+
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.utils import GREEN, RED
LAUNCH_QUEUE = 16
@@ -30,16 +30,18 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import copy
+import os
import re
import time
-import os
-import copy
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase
-import rte_flow_common as rfc
-from rte_flow_common import CVL_TXQ_RXQ_NUMBER
-import utils
+
+import framework.utils as utils
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
+from .rte_flow_common import CVL_TXQ_RXQ_NUMBER
# max rule number case: rte_flow_pattern and matched packets will be generated by code, and rte_flow_pattern will be writed to file.
tv_max_rule_number = {
@@ -30,14 +30,16 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import random
import re
import time
-import random
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase, check_supported_nic, skip_unsupported_pkg
-from utils import GREEN, RED
-from rte_flow_common import RssProcessing
+
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, check_supported_nic, skip_unsupported_pkg
+from framework.utils import GREEN, RED
+
+from .rte_flow_common import RssProcessing
mac_qinq_ipv4_pay_src_ip = {
'name': 'mac_qinq_ipv4_pay_src_ip',
@@ -30,17 +30,19 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import json
-import time
-import re
-import packet
import os
-from scapy.contrib.gtp import *
-from test_case import TestCase
-from pmd_output import PmdOutput
-from utils import BLUE, RED
+import re
+import time
from collections import OrderedDict
-from packet import IncreaseIP, IncreaseIPv6
-import rte_flow_common as rfc
+
+from scapy.contrib.gtp import *
+
+import framework.packet as packet
+import tests.rte_flow_common as rfc
+from framework.packet import IncreaseIP, IncreaseIPv6
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.utils import BLUE, RED
out = os.popen("pip list|grep scapy ")
version_result =out.read()
@@ -30,21 +30,20 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import json
-import time
-import re
import copy
+import json
+import os
import random
-from itertools import groupby
-
-from test_case import TestCase, skip_unsupported_pkg
-from pmd_output import PmdOutput
-from packet import Packet
-from utils import BLUE, RED, GREEN
+import re
+import time
from collections import OrderedDict
-import rte_flow_common as rfc
+from itertools import groupby
-import os
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, skip_unsupported_pkg
+from framework.utils import BLUE, GREEN, RED
#vxlan non-pipeline mode
#test vector mac_ipv4_vxlan_ipv4
@@ -30,21 +30,20 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import json
-import time
-import re
import copy
+import json
+import os
import random
-from itertools import groupby
-
-from test_case import TestCase, skip_unsupported_pkg
-from pmd_output import PmdOutput
-from packet import Packet
-from utils import BLUE, RED, GREEN
+import re
+import time
from collections import OrderedDict
-import rte_flow_common as rfc
+from itertools import groupby
-import os
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, skip_unsupported_pkg
+from framework.utils import BLUE, GREEN, RED
#test vector ethertype_filter_pppoes
ethertype_filter_pppoes_scapy_str = {
@@ -30,9 +30,10 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import re
-from test_case import TestCase
-from pmd_output import PmdOutput
-from packet import Packet
+
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
vf0_mac = "00:11:22:33:44:55"
vf1_mac = "00:11:22:33:44:66"
@@ -48,16 +48,15 @@ import re
import time
import traceback
from contextlib import contextmanager
-from pprint import pformat
from functools import partial
+from pprint import pformat
-
-from settings import HEADER_SIZE
-from test_case import TestCase
-from exception import VerifyFailure
-from packet import Packet
-from pmd_output import PmdOutput
-import utils
+import framework.utils as utils
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestDcfLifeCycle(TestCase):
@@ -29,15 +29,16 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
+import random
import re
import sys
-import utils
-from qemu_kvm import QEMUKvm
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import get_nic_name
-import random
+import time
+
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.qemu_kvm import QEMUKvm
+from framework.settings import get_nic_name
+from framework.test_case import TestCase
VM_CORES_MASK = 'all'
@@ -29,15 +29,17 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
import re
import sys
-import utils
+import time
+
from scapy.all import *
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import get_nic_name
-import packet
+
+import framework.packet as packet
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.settings import get_nic_name
+from framework.test_case import TestCase
class TestDdpGtpQregion(TestCase):
@@ -33,12 +33,14 @@
DPDK Test suite.
l2tpv3 test script.
"""
-import time
+import random
import re
-from test_case import TestCase
-from pmd_output import PmdOutput
+import time
+
from scapy.all import *
-import random
+
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestDdpL2tpv3(TestCase):
@@ -29,16 +29,17 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
+import random
import sys
-import utils
+import time
+
from scapy.utils import rdpcap
-from qemu_kvm import QEMUKvm
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import get_nic_name
-import random
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.qemu_kvm import QEMUKvm
+from framework.settings import get_nic_name
+from framework.test_case import TestCase
VM_CORES_MASK = 'all'
PF_MAX_QUEUE = 64
@@ -29,15 +29,17 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
+import random
import re
import sys
-import utils
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import get_nic_name
+import time
+
from scapy.all import *
-import random
+
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.settings import get_nic_name
+from framework.test_case import TestCase
class TestDdpPppL2tp(TestCase):
@@ -32,11 +32,12 @@
"""
DPDK Test suite.
"""
-import re
-import utils
import os
-from test_case import TestCase
-from pktgen import PacketGeneratorHelper
+import re
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.test_case import TestCase
class TestDistributor(TestCase):
@@ -38,10 +38,11 @@ hostcpu to start qemu and only have one vcpu
"""
import re
import time
-import utils
-from test_case import TestCase
-from virt_common import VM
-import vhost_peer_conf as peer
+
+import framework.utils as utils
+import tests.vhost_peer_conf as peer
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestDPDKGROLib(TestCase):
@@ -36,13 +36,14 @@ DPDK gso lib test suite.
In this suite, in order to check the performance of gso lib, will use one
hostcpu to start qemu and only have one vcpu
"""
-import time
-import utils
import re
-from test_case import TestCase
-from virt_common import VM
-from config import UserConf
-import vhost_peer_conf as peer
+import time
+
+import framework.utils as utils
+import tests.vhost_peer_conf as peer
+from framework.config import UserConf
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestDPDKGsoLib(TestCase):
@@ -34,9 +34,10 @@ This feature is to limit DPDK to use the exact size which is the mounted hugepag
"""
import re
-import utils
import time
-from test_case import TestCase
+
+import framework.utils as utils
+from framework.test_case import TestCase
DEFAULT_MNT = '/mnt/huge'
MNT_PATH = ["/mnt/huge1", "/mnt/huge2", "/mnt/huge3"]
@@ -37,11 +37,12 @@ Test the support of Dual VLAN Offload Features by Poll Mode Drivers.
"""
-import utils
import random
import re
import time
+import framework.utils as utils
+
txvlan = 3
outvlan = 1
invlan = 2
@@ -71,8 +72,8 @@ vlanCase = ["OUTER+INNER", "INNER", ("OUTER+INNER", "NONE"), ("INNER", "NONE"),
"TX+OUTER+INNER", "TX+OUTER", ("NONE", "TX+OUTER+INNER"), ("NONE", "TX+OUTER")]
-from test_case import TestCase
-from pmd_output import PmdOutput
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestDualVlan(TestCase):
@@ -36,12 +36,11 @@ Test the dynamic driver configuration feature.
"""
-import utils
import time
-from test_case import TestCase
-from pmd_output import PmdOutput
-
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
#
#
@@ -29,12 +29,13 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
import re
-import utils
-from test_case import TestCase
-from pmd_output import PmdOutput
-import packet
+import time
+
+import framework.packet as packet
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
VM_CORES_MASK = 'all'
@@ -29,14 +29,15 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
-import re
-import utils
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import get_nic_name
-from packet import Packet
import random
+import re
+import time
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.settings import get_nic_name
+from framework.test_case import TestCase
test_loop = 3
@@ -33,10 +33,11 @@
"""
DPDK Test suite.
"""
-import utils
import re
-from pmd_output import PmdOutput
-from test_case import TestCase
+
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestEEPROMDump(TestCase):
@@ -32,11 +32,12 @@
"""
DPDK Test suite.
"""
-import re
-import utils
import os
-from test_case import TestCase
-from pktgen import PacketGeneratorHelper
+import re
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.test_case import TestCase
class TestEFD(TestCase):
@@ -29,11 +29,13 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
-import re
import os
-from test_case import TestCase
-from pmd_output import PmdOutput
+import re
+import time
+
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
class TestEnable_Package_Download_In_Ice_Driver(TestCase):
@@ -34,20 +34,20 @@ DPDK Test suite.
Test support of dpdk-procinfo tool feature
'''
+import os
import re
import time
-import os
import traceback
+from functools import reduce
-from utils import create_mask as dts_create_mask
-from test_case import TestCase
-from pmd_output import PmdOutput
-from exception import VerifyFailure
-
-from packet import Packet
from scapy.sendrecv import sendp
-from settings import HEADER_SIZE
-from functools import reduce
+
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+from framework.utils import create_mask as dts_create_mask
class TestEthtoolStats(TestCase):
@@ -34,21 +34,20 @@ DPDK Test suite.
Test userland 10Gb/25Gb/40Gb/100Gb
"""
-import utils
+import os
import re
import time
-import os
-
-from test_case import TestCase
+from datetime import datetime
from time import sleep
-from settings import HEADER_SIZE
-from pmd_output import PmdOutput
-from pktgen import PacketGeneratorHelper
-from settings import FOLDERS
-from system_info import SystemInfo
-import perf_report
-from datetime import datetime
+import framework.utils as utils
+import nics.perf_report as perf_report
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import FOLDERS, HEADER_SIZE
+from framework.test_case import TestCase
+from nics.system_info import SystemInfo
+
class TestEventdevPerf(TestCase):
@@ -34,13 +34,15 @@ DPDK Test suite.
Test eventdev pipeline
"""
-import utils
-import time
import re
-from test_case import TestCase
+import time
+
import scapy.layers.inet
from scapy.utils import rdpcap
-from packet import Packet
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.test_case import TestCase
class TestEventdevPipeline(TestCase):
@@ -34,21 +34,20 @@ DPDK Test suite.
Test userland 10Gb/25Gb/40Gb/100Gb
"""
-import utils
+import os
import re
import time
-import os
-
-from test_case import TestCase
+from datetime import datetime
from time import sleep
-from settings import HEADER_SIZE
-from pmd_output import PmdOutput
-from pktgen import PacketGeneratorHelper
-from settings import FOLDERS
-from system_info import SystemInfo
-import perf_report
-from datetime import datetime
+import framework.utils as utils
+import nics.perf_report as perf_report
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import FOLDERS, HEADER_SIZE
+from framework.test_case import TestCase
+from nics.system_info import SystemInfo
+
class TestEventdevPipelinePerf(TestCase):
@@ -35,9 +35,11 @@ DPDK Test suite.
Test example_build.
"""
-import time
import re
-from test_case import TestCase
+import time
+
+from framework.test_case import TestCase
+
class TestExamplebuild(TestCase):
@@ -35,10 +35,11 @@ DPDK Test suite.
Test external memory.
"""
-import time
import re
-import utils
-from test_case import TestCase
+import time
+
+import framework.utils as utils
+from framework.test_case import TestCase
class TestExternalMemory(TestCase):
@@ -34,9 +34,9 @@ DPDK Test suite.
Test external mempool handler
"""
-import utils
-from test_case import TestCase
-from pmd_output import PmdOutput
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestExternalMempool(TestCase):
@@ -35,20 +35,20 @@ DPDK Test suite.
Test 82599 and fortville Flow Director Support in DPDK
"""
+import imp
import re
-import time
import string
+import sys
+import time
from time import sleep
-from scapy.utils import struct, socket, PcapWriter
-import utils
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pmd_output import PmdOutput
-from pktgen import PacketGeneratorHelper
+from scapy.utils import PcapWriter, socket, struct
-import sys
-import imp
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestFdir(TestCase):
@@ -30,11 +30,13 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import utils
-from test_case import TestCase
-import cryptodev_common as cc
import re
+import framework.utils as utils
+import tests.cryptodev_common as cc
+from framework.test_case import TestCase
+
+
class FipCryptodev(TestCase):
def set_up_all(self):
@@ -33,10 +33,11 @@
"""
DPDK Test suite.
"""
-from pmd_output import PmdOutput
-from test_case import TestCase
import re
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
class TestFirmwareVersion(TestCase):
@@ -32,9 +32,12 @@
import time
-from test_case import TestCase, skip_unsupported_pkg, check_supported_nic
-from flexible_common import FlexibleRxdBase
-import rte_flow_common as rfc
+
+import tests.rte_flow_common as rfc
+from framework.test_case import TestCase, check_supported_nic, skip_unsupported_pkg
+
+from .flexible_common import FlexibleRxdBase
+
class TestFlexibleRxd(TestCase, FlexibleRxdBase):
supported_nic = ['columbiaville_100g', 'columbiaville_25g', 'columbiaville_25gx2', 'foxville']
@@ -38,14 +38,14 @@ Test Floating VEB Features by Poll Mode Drivers.
import re
import time
-from virt_dut import VirtDut
-from project_dpdk import DPDKdut
-from dut import Dut
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import HEADER_SIZE
-from packet import Packet
-from utils import RED
+from framework.dut import Dut
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.project_dpdk import DPDKdut
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+from framework.utils import RED
+from framework.virt_dut import VirtDut
class TestFloatingVEBSwitching(TestCase):
@@ -30,19 +30,19 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import os
-import time
import re
+import time
from collections import Counter
from datetime import datetime
+from functools import reduce
-from packet import Packet
from scapy.sendrecv import sendp
-from utils import create_mask as dts_create_mask
-from test_case import TestCase
-from exception import VerifyFailure
-from settings import HEADER_SIZE
-from functools import reduce
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+from framework.utils import create_mask as dts_create_mask
class TestFlowClassify(TestCase):
@@ -29,38 +29,33 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import utils
+import os
+import random
import re
import time
+from time import sleep
-from settings import HEADER_SIZE
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import DRIVERS
-from crb import Crb
-
-from virt_dut import VirtDut
-from project_dpdk import DPDKdut
-from dut import Dut
-from packet import Packet
-
-import os
-import random
-from exception import VerifyFailure
import scapy.layers.inet
-from scapy.utils import rdpcap
-
-from time import sleep
-from scapy.utils import wrpcap, rdpcap, hexstr
-from scapy.layers.inet import Ether, IP, TCP, UDP, ICMP
+from scapy.arch import get_if_hwaddr
+from scapy.layers.inet import ICMP, IP, TCP, UDP, Ether
from scapy.layers.inet6 import IPv6
-from scapy.layers.l2 import Dot1Q, ARP, GRE
+from scapy.layers.l2 import ARP, GRE, Dot1Q
from scapy.layers.sctp import SCTP, SCTPChunkData
+from scapy.packet import Raw, bind_layers
from scapy.route import *
-from scapy.packet import bind_layers, Raw
-from scapy.arch import get_if_hwaddr
-from scapy.sendrecv import sniff
-from scapy.sendrecv import sendp
+from scapy.sendrecv import sendp, sniff
+from scapy.utils import hexstr, rdpcap, wrpcap
+
+import framework.utils as utils
+from framework.crb import Crb
+from framework.dut import Dut
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.project_dpdk import DPDKdut
+from framework.settings import DRIVERS, HEADER_SIZE
+from framework.test_case import TestCase
+from framework.virt_dut import VirtDut
class TestFlowClassifySoftnic(TestCase):
@@ -30,13 +30,13 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import os
-import utils
-import time
import re
-import os
-import packet
-from test_case import TestCase
-from settings import HEADER_SIZE
+import time
+
+import framework.packet as packet
+import framework.utils as utils
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestFlowFiltering(TestCase):
@@ -47,12 +47,13 @@ keys for GRE should be supported. the test plan is to test the API to switch bet
Support 4*10G, 1*40G and 2*40G NICs.
"""
-import time
import random
import re
-import utils
-import dut
-from pmd_output import PmdOutput
+import time
+
+import framework.dut as dut
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
testQueues = [16]
reta_entries = []
@@ -60,7 +61,8 @@ reta_lines = []
# Use scapy to send packets with different source and dest ip.
# and collect the hash result of five tuple and the queue id.
-from test_case import TestCase
+from framework.test_case import TestCase
+
#
#
# Test class.
@@ -47,12 +47,13 @@ keys for GRE should be supported. the test plan is to test the API to switch bet
Support 4*10G, 1*40G and 2*40G NICs.
"""
-import time
import random
import re
-import utils
-import dut
-from pmd_output import PmdOutput
+import time
+
+import framework.dut as dut
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
testQueues = [16]
reta_entries = []
@@ -60,7 +61,8 @@ reta_lines = []
# Use scapy to send packets with different source and dest ip.
# and collect the hash result of five tuple and the queue id.
-from test_case import TestCase
+from framework.test_case import TestCase
+
#
#
# Test class.
@@ -36,14 +36,13 @@ Test the support of VLAN Offload Features by Poll Mode Drivers.
"""
-import utils
-import time
import re
+import time
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pmd_output import PmdOutput
-from settings import DRIVERS
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.settings import DRIVERS, HEADER_SIZE
+from framework.test_case import TestCase
class TestGeneric_filter(TestCase):
@@ -36,27 +36,25 @@ Test the support of generic flow API by Poll Mode Drivers.
"""
-import utils
-import time
-import re
-
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pmd_output import PmdOutput
-from settings import DRIVERS
-from crb import Crb
-
-from virt_dut import VirtDut
-from project_dpdk import DPDKdut
-from dut import Dut
-import packet
-
import os
import random
-from exception import VerifyFailure
+import re
+import time
+
import scapy.layers.inet
from scapy.utils import rdpcap
+import framework.packet as packet
+import framework.utils as utils
+from framework.crb import Crb
+from framework.dut import Dut
+from framework.exception import VerifyFailure
+from framework.pmd_output import PmdOutput
+from framework.project_dpdk import DPDKdut
+from framework.settings import DRIVERS, HEADER_SIZE
+from framework.test_case import TestCase
+from framework.virt_dut import VirtDut
+
MAX_VLAN = 4095
MAX_QUEUE = 15
testQueues = [16]
@@ -34,8 +34,9 @@ DPDK Test suite.
Test HelloWorld example.
"""
-import utils
-from test_case import TestCase
+import framework.utils as utils
+from framework.test_case import TestCase
+
class TestHelloWorld(TestCase):
@@ -35,12 +35,13 @@ DPDK Test suite.
Test port hot plug.
"""
-import time
-import re
-import utils
-from test_case import TestCase
-from packet import Packet
import os
+import re
+import time
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.test_case import TestCase
class TestPortHotPlug(TestCase):
@@ -34,10 +34,11 @@ DPDK Test suite.
Hotplug Multi-process Test.
"""
-import utils
-import time
-from test_case import TestCase
import itertools
+import time
+
+import framework.utils as utils
+from framework.test_case import TestCase
test_loop = 2
@@ -36,17 +36,16 @@ Test some iavf function in i40e driver
"""
+import math
+import random
import re
import time
-import math
-from virt_common import VM
-from test_case import TestCase
-from pmd_output import PmdOutput
-from packet import Packet
-from settings import get_nic_name
-import random
-from settings import HEADER_SIZE
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE, get_nic_name
+from framework.test_case import TestCase
+from framework.virt_common import VM
VM_CORES_MASK = 'Default'
@@ -32,17 +32,16 @@
import re
import time
+from multiprocessing import Manager, Process
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase, skip_unsupported_pkg
-import rte_flow_common as rfc
-from rte_flow_common import CVL_TXQ_RXQ_NUMBER
-from multiprocessing import Process
-from multiprocessing import Manager
+import framework.utils as utils
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, skip_unsupported_pkg
+from framework.utils import GREEN, RED
-from utils import GREEN, RED
-import utils
+from .rte_flow_common import CVL_TXQ_RXQ_NUMBER
MAC_IPV4_PAY = {
"match": [
@@ -29,14 +29,16 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase
import re
-from utils import GREEN, RED
import time
+
from scapy.all import *
-import rte_flow_common as rfc
+
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.utils import GREEN, RED
LAUNCH_QUEUE = 16
@@ -34,9 +34,9 @@
import time
import traceback
+from framework.test_case import TestCase, check_supported_nic, skip_unsupported_pkg
-from test_case import TestCase, skip_unsupported_pkg, check_supported_nic
-from flexible_common import FlexibleRxdBase
+from .flexible_common import FlexibleRxdBase
class TestIavfFlexibleDescriptor(TestCase, FlexibleRxdBase):
@@ -29,12 +29,14 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
-import re
import os
-from test_case import TestCase
-from pmd_output import PmdOutput
-from config import UserConf
+import re
+import time
+
+from framework.config import UserConf
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
class Testiavf_package_and_driver_check(TestCase):
@@ -34,12 +34,13 @@ DPDK Test suite.
Test support of IEEE1588 Precise Time Protocol.
"""
-import utils
-import time
import re
-from test_case import TestCase
-from pmd_output import PmdOutput
-from packet import Packet
+import time
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
DEV_TX_OFFLOAD_MULTI_SEGS = '0x00008000'
@@ -35,13 +35,14 @@ DPDK Test suite.
Test inline_ipsec.
"""
-import utils
-import time
-import re
import random
+import re
+import time
+
+from scapy.all import ESP, IP, Ether, SecurityAssociation, sendp
-from scapy.all import ESP, IP, Ether, sendp, SecurityAssociation
-from test_case import TestCase
+import framework.utils as utils
+from framework.test_case import TestCase
ETHER_STANDARD_MTU = 1300
ETHER_JUMBO_FRAME_MTU = 9000
@@ -37,8 +37,9 @@ Test interrupt pmd.
import string
import time
-import utils
-from test_case import TestCase
+
+import framework.utils as utils
+from framework.test_case import TestCase
class TestInterruptPmd(TestCase):
@@ -29,38 +29,35 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import utils
+import os
+import random
import re
import time
+from time import sleep
-from settings import HEADER_SIZE
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import DRIVERS
-from crb import Crb
-
-from virt_dut import VirtDut
-from project_dpdk import DPDKdut
-from dut import Dut
-from packet import Packet
-
-import os
-import random
-from exception import VerifyFailure
import scapy.layers.inet
-from scapy.utils import rdpcap
-
-from time import sleep
-#from scapy.all import conf
-from scapy.utils import wrpcap, rdpcap, hexstr
-from scapy.layers.inet import Ether, IP, TCP, UDP, ICMP
-from scapy.layers.l2 import Dot1Q, ARP, GRE
+from scapy.arch import get_if_hwaddr
+from scapy.layers.inet import ICMP, IP, TCP, UDP, Ether
+from scapy.layers.l2 import ARP, GRE, Dot1Q
from scapy.layers.sctp import SCTP, SCTPChunkData
+from scapy.packet import Raw, bind_layers
from scapy.route import *
-from scapy.packet import bind_layers, Raw
-from scapy.arch import get_if_hwaddr
-from scapy.sendrecv import sniff
-from scapy.sendrecv import sendp
+from scapy.sendrecv import sendp, sniff
+
+#from scapy.all import conf
+from scapy.utils import hexstr, rdpcap, wrpcap
+
+import framework.utils as utils
+from framework.crb import Crb
+from framework.dut import Dut
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.project_dpdk import DPDKdut
+from framework.settings import DRIVERS, HEADER_SIZE
+from framework.test_case import TestCase
+from framework.virt_dut import VirtDut
+
class TestIPPipeline(TestCase):
@@ -34,16 +34,16 @@ DPDK Test suite.
Test IPv4 fragmentation features in DPDK.
"""
-import utils
-import string
+import os
import re
+import string
import time
-import os
-from settings import HEADER_SIZE
-from packet import Packet
-from pktgen import PacketGeneratorHelper
-from test_case import TestCase
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
lpm_table_ipv4 = [
"{RTE_IPV4(100,10,0,0), 16, P1}",
@@ -39,22 +39,22 @@ inside virtual point-to-point links over an Internet Protocol network.
Fortville support GRE packet detecting, checksum computing and filtering.
"""
-import utils
+import os
import re
import time
-import os
-
-from packet import Packet
-from scapy.utils import wrpcap, rdpcap
-from scapy.packet import split_layers,bind_layers
-from scapy.layers.inet import Ether, IP, TCP, UDP
-from scapy.layers.sctp import SCTP
+from scapy.layers.inet import IP, TCP, UDP, Ether
from scapy.layers.l2 import GRE
+from scapy.layers.sctp import SCTP
+from scapy.packet import bind_layers, split_layers
+from scapy.utils import rdpcap, wrpcap
+
+import framework.utils as utils
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
-from test_case import TestCase
-from exception import VerifyFailure
-from pmd_output import PmdOutput
class TestIpgre(TestCase):
@@ -31,11 +31,12 @@
import binascii
import time
-import utils
-from test_case import TestCase
-import packet
-import cryptodev_common as cc
+import framework.packet as packet
+import framework.utils as utils
+import tests.cryptodev_common as cc
+from framework.test_case import TestCase
+
class TestIPsecGW(TestCase):
@@ -38,12 +38,13 @@ Test the IP reassembly feature
import os
import time
-from scapy.utils import struct, socket, PcapWriter
-from scapy.layers.inet import Ether, IP, TCP, fragment
+
+from scapy.layers.inet import IP, TCP, Ether, fragment
from scapy.route import *
+from scapy.utils import PcapWriter, socket, struct
-import utils
-from test_case import TestCase
+import framework.utils as utils
+from framework.test_case import TestCase
class IpReassemblyTestConfig(object):
@@ -33,17 +33,19 @@
DPDK Test suite.
Test Niantic ixgbe_get_vf_queue Include Extra Information function.
"""
-import time
import random
import re
-import utils
+import time
+
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.qemu_kvm import QEMUKvm
# Use scapy to send packets with different source and dest ip.
# and collect the hash result of five tuple and the queue id.
-from test_case import TestCase
-from pmd_output import PmdOutput
-from virt_common import VM
-from qemu_kvm import QEMUKvm
+from framework.test_case import TestCase
+from framework.virt_common import VM
+
class TestIxgbeVfGetExtraInfo(TestCase):
@@ -34,12 +34,13 @@ DPDK Test suite.
Test the support of Jumbo Frames by Poll Mode Drivers
"""
-import utils
import re
from time import sleep
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import PROTOCOL_PACKET_SIZE
+
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.settings import PROTOCOL_PACKET_SIZE
+from framework.test_case import TestCase
ETHER_HEADER_LEN = 18
IP_HEADER_LEN = 20
@@ -35,10 +35,12 @@ DPDK Test suite.
Test keep alive
"""
-import time
import re
-import utils
-from test_case import TestCase
+import time
+
+import framework.utils as utils
+from framework.test_case import TestCase
+
class TestKeepAlive(TestCase):
@@ -37,16 +37,17 @@ Test some vf function in ice driver
"""
+import random
import re
import time
-import random
-import utils
-from virt_common import VM
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import HEADER_SIZE
-from packet import Packet
-from utils import RED
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+from framework.utils import RED
+from framework.virt_common import VM
VM_CORES_MASK = 'all'
MAX_VLAN = 4095
@@ -36,14 +36,15 @@ DPDK Test suite.
Test Kernel NIC Interface.
"""
-import utils
-import re
import os
+import re
import time
from random import randint
-from pktgen import PacketGeneratorHelper
-from test_case import TestCase
-import packet
+
+import framework.packet as packet
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.test_case import TestCase
dut_ports = []
port_virtual_interaces = []
@@ -34,10 +34,11 @@ Test Layer-2 Forwarding support
"""
import os
import time
-import utils
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pktgen import PacketGeneratorHelper
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestL2fwd(TestCase):
@@ -29,25 +29,25 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import hmac
-import hashlib
import binascii
+import hashlib
+import hmac
import time
-import utils
-from test_case import TestCase
-from packet import Packet
-
-from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
-from cryptography.hazmat.primitives.ciphers.aead import AESCCM, AESGCM
-from cryptography.hazmat.backends import default_backend
# Manually Install the CryptoMobile Python Library,
# Before running this test suite
# Web link : https://github.com/mitshell/CryptoMobile
import CryptoMobile.CM as cm
import pyDes
+from cryptography.hazmat.backends import default_backend
+from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
+from cryptography.hazmat.primitives.ciphers.aead import AESCCM, AESGCM
+
+import framework.utils as utils
+import tests.cryptodev_common as cc
+from framework.packet import Packet
+from framework.test_case import TestCase
-import cryptodev_common as cc
class TestL2fwdCrypto(TestCase):
@@ -35,10 +35,11 @@ DPDK Test suite.
Test L2fwd Jobstats
"""
-import time
import re
-import utils
-from test_case import TestCase
+import time
+
+import framework.utils as utils
+from framework.test_case import TestCase
class TestL2fwdJobstats(TestCase):
@@ -31,10 +31,11 @@
import re
import time
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase, skip_unsupported_pkg, check_supported_nic
-import rte_flow_common as rfc
+
+import tests.rte_flow_common as rfc
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase, check_supported_nic, skip_unsupported_pkg
vf0_mac = "00:11:22:33:44:55"
@@ -33,8 +33,9 @@
DPDK Test suite.
Layer-3 forwarding test script.
"""
-from test_case import TestCase
-from perf_test_base import PerfTestBase, MATCH_MODE, IP_TYPE
+from framework.test_case import TestCase
+
+from .perf_test_base import IP_TYPE, MATCH_MODE, PerfTestBase
class TestL3fwd(TestCase, PerfTestBase):
@@ -33,8 +33,9 @@
DPDK Test suite.
Layer-3 forwarding test script.
"""
-from test_case import TestCase
-from perf_test_base import PerfTestBase, MATCH_MODE, IP_TYPE
+from framework.test_case import TestCase
+
+from .perf_test_base import IP_TYPE, MATCH_MODE, PerfTestBase
class TestL3fwdEm(TestCase, PerfTestBase):
@@ -33,8 +33,9 @@
DPDK Test suite.
Layer-3 forwarding test script.
"""
-from test_case import TestCase
-from perf_test_base import PerfTestBase, MATCH_MODE, IP_TYPE
+from framework.test_case import TestCase
+
+from .perf_test_base import IP_TYPE, MATCH_MODE, PerfTestBase
class TestL3fwdLpmIpv4(TestCase, PerfTestBase):
@@ -33,8 +33,9 @@
DPDK Test suite.
Layer-3 forwarding test script.
"""
-from test_case import TestCase
-from perf_test_base import PerfTestBase, MATCH_MODE, IP_TYPE
+from framework.test_case import TestCase
+
+from .perf_test_base import IP_TYPE, MATCH_MODE, PerfTestBase
class TestL3fwdLpmIpv4Rfc2544(TestCase, PerfTestBase):
@@ -33,8 +33,9 @@
DPDK Test suite.
Layer-3 forwarding test script.
"""
-from test_case import TestCase
-from perf_test_base import PerfTestBase, MATCH_MODE, IP_TYPE
+from framework.test_case import TestCase
+
+from .perf_test_base import IP_TYPE, MATCH_MODE, PerfTestBase
class TestL3fwdLpmIpv6(TestCase, PerfTestBase):
@@ -35,10 +35,12 @@ Layer-3 forwarding ACL test script.
"""
import re
-import utils
import time
-from test_case import TestCase
-import packet
+
+import framework.packet as packet
+import framework.utils as utils
+from framework.test_case import TestCase
+
class TestL3fwdacl(TestCase):
@@ -32,11 +32,10 @@
import re
import time
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase
-
-from utils import GREEN, RED
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.utils import GREEN, RED
multi_fdir_queue_group = {
"match": [
@@ -34,15 +34,15 @@ DPDK Test suite.
Test for Ethernet Link Flow Control Features by Poll Mode Drivers
"""
-import utils
-import re
import os
-
+import re
from time import sleep
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import HEADER_SIZE
-from pktgen import PacketGeneratorHelper
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestLinkFlowctrl(TestCase):
@@ -35,12 +35,13 @@ DPDK Test suite.
Test link status.
"""
-import utils
+import re
import string
import time
-import re
-from test_case import TestCase
-from packet import Packet
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.test_case import TestCase
class TestLinkStatusInterrupt(TestCase):
@@ -37,10 +37,9 @@ Linux Kernel Modules example.
import os
import time
-from pmd_output import PmdOutput
-from test_case import TestCase
-
from framework import settings
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
ETHER_HEADER_LEN = 18
IP_HEADER_LEN = 20
@@ -37,11 +37,12 @@ Benchmark Vhost loopback for 7 RX/TX PATHs.
Includes Mergeable, Normal, Vector_RX,Inorder_mergeable,
Inorder_no_mergeable, VIRTIO1.1_mergeable, VIRTIO1.1_normal Path.
"""
-import utils
-import time
import re
-from pmd_output import PmdOutput
-from test_case import TestCase
+import time
+
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestLoopbackPortRestart(TestCase):
@@ -36,11 +36,12 @@ Includes Mergeable, Normal, Vector_RX, Inorder mergeable,
Inorder no-mergeable, Virtio 1.1 mergeable, Virtio 1.1 no-mergeable Path.
"""
-import utils
-import time
import re
-from pmd_output import PmdOutput
-from test_case import TestCase
+import time
+
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestLoopbackMultiQueues(TestCase):
@@ -35,11 +35,12 @@
DPDK Test suite.
Test loopback virtio-user server mode
"""
-import utils
-import time
import re
-from pmd_output import PmdOutput
-from test_case import TestCase
+import time
+
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestLoopbackVirtioUserServerMode(TestCase):
@@ -34,12 +34,14 @@ DPDK Test suite.
Test the support of Allowlist Features by Poll Mode Drivers
"""
-import utils
-import time
-from test_case import TestCase
-from pmd_output import PmdOutput
-from packet import Packet
import operator
+import time
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
class TestMacFilter(TestCase):
@@ -29,14 +29,15 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import os
import re
import time
-import os
-from test_case import TestCase
-from dut import Dut
-from pktgen import PacketGeneratorHelper
-from packet import Packet
+from framework.dut import Dut
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.test_case import TestCase
+
class TestMacsecForIxgbe(TestCase):
def set_up_all(self):
@@ -38,12 +38,11 @@ import re
import time
import traceback
from contextlib import contextmanager
-from pmd_output import PmdOutput
-
-from exception import VerifyFailure
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.exception import VerifyFailure
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestSuiteMaliciousDrvEventIndication(TestCase):
@@ -37,10 +37,11 @@ Test the support of Malicious Driver Detection
import re
import time
-from packet import Packet
-from virt_common import VM
-from test_case import TestCase
-from pmd_output import PmdOutput
+
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.virt_common import VM
VM_CORES_MASK = 'all'
send_pks_num = 2000
@@ -34,15 +34,16 @@ Test metering_and_policing.
"""
import os
-import utils
+import re
import string
import time
-import re
-from test_case import TestCase
-from plotting import Plotting
-from settings import HEADER_SIZE
-from dut import Dut
-from pmd_output import PmdOutput
+
+import framework.utils as utils
+from framework.dut import Dut
+from framework.plotting import Plotting
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestMeteringAndPolicing(TestCase):
@@ -34,20 +34,20 @@ DPDK Test suite.
'''
import os
+import random
import re
import time
-import random
import traceback
from copy import deepcopy
from pprint import pformat
-from test_case import TestCase
-from pmd_output import PmdOutput
-from exception import VerifyFailure
-from settings import HEADER_SIZE
-from packet import Packet
-from pktgen import TRANSMIT_CONT
-from config import SuiteConf
+from framework.config import SuiteConf
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pktgen import TRANSMIT_CONT
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestMetrics(TestCase):
@@ -35,24 +35,19 @@ DPDK Test suite.
MTU Checks example.
"""
import os
+import re
import subprocess
+import time
from time import sleep
from typing import List, Tuple
-import utils
-from pmd_output import PmdOutput
-from test_case import TestCase
-
-from pktgen_base import TRANSMIT_S_BURST
-
-import utils
-import re
-import time
-from test_case import TestCase
-from pktgen import TRANSMIT_CONT
-
-from packet import Packet
-from settings import HEADER_SIZE
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import TRANSMIT_CONT
+from framework.pktgen_base import TRANSMIT_S_BURST
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
ETHER_HEADER_LEN = 18
VLAN=4
@@ -36,8 +36,9 @@ multicast test script.
"""
import time
-from test_case import TestCase
-import utils
+
+import framework.utils as utils
+from framework.test_case import TestCase
routeTbl = [
["224.0.0.101", "P1"], ["224.0.0.102", "P2"],
@@ -29,14 +29,15 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
import os
-import re
import random
+import re
import string
-import utils
-from test_case import TestCase
-from packet import Packet
+import time
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.test_case import TestCase
class TestMultiplePthread(TestCase):
@@ -34,13 +34,14 @@ DPDK Test suite.
Multi-process Test.
"""
-import utils
-import time
import os
+import time
+
+import framework.utils as utils
executions = []
-from test_case import TestCase
-from pktgen import PacketGeneratorHelper
+from framework.pktgen import PacketGeneratorHelper
+from framework.test_case import TestCase
class TestMultiprocess(TestCase):
@@ -32,18 +32,20 @@
DPDK Test suite.
"""
-import utils
import json
import os
import string
-from test_case import TestCase
-from exception import VerifyFailure
-from settings import HEADER_SIZE, UPDATE_EXPECTED, load_global_setting
-from pmd_output import PmdOutput
from copy import deepcopy
+
from numpy import mean
-import rst
-from pktgen import PacketGeneratorHelper
+
+import framework.rst as rst
+import framework.utils as utils
+from framework.exception import VerifyFailure
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE, UPDATE_EXPECTED, load_global_setting
+from framework.test_case import TestCase
class TestNicSingleCorePerf(TestCase):
@@ -32,11 +32,13 @@
import os
import re
import time
-from test_case import TestCase
-from net_device import GetNicObj
-from settings import HEADER_SIZE
-from packet import Packet
-from pktgen import PacketGeneratorHelper
+
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+from nics.net_device import GetNicObj
+
class TestNtb(TestCase):
@@ -36,27 +36,27 @@ Test NVGRE features in DPDK.
"""
-import utils
-import string
+import os
import re
+import string
import time
-import os
-from pmd_output import PmdOutput
-from packet import IncreaseIP, IncreaseIPv6
from random import randint
-
from socket import AF_INET6
-from scapy.utils import struct, socket, wrpcap, rdpcap
-from scapy.layers.inet import Ether, IP, TCP, UDP
+
+from scapy.config import conf
+from scapy.layers.inet import IP, TCP, UDP, Ether
from scapy.layers.inet6 import IPv6
-from scapy.layers.l2 import Dot1Q, GRE
+from scapy.layers.l2 import GRE, Dot1Q
from scapy.layers.sctp import SCTP, SCTPChunkData
-from scapy.sendrecv import sniff
-from scapy.config import conf
from scapy.route import *
+from scapy.sendrecv import sniff
+from scapy.utils import rdpcap, socket, struct, wrpcap
-from test_case import TestCase
-from settings import HEADER_SIZE
+import framework.utils as utils
+from framework.packet import IncreaseIP, IncreaseIPv6
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
#
#
@@ -32,25 +32,24 @@
DPDK Test suite.
Test support dpdk pdump tool features
'''
-import random
import os
-import traceback
-import time
+import random
import re
import signal
import subprocess
+import time
+import traceback
from pprint import pformat
-from scapy.utils import rdpcap
+from scapy.fields import ConditionalField
from scapy.packet import NoPayload
from scapy.packet import Packet as scapyPacket
-from scapy.fields import ConditionalField
-
-from test_case import TestCase
-from exception import VerifyFailure
-from pmd_output import PmdOutput
-from packet import Packet
+from scapy.utils import rdpcap
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
# These source code copy from packet.py module before sniff_packets/load_sniff_packets
# refactor. New refactor methods have much more longer time consumption than
@@ -36,9 +36,10 @@ Packet ordering example app test cases.
import os
import time
-import utils
-from test_case import TestCase
-from packet import Packet
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.test_case import TestCase
class TestPacketOrdering(TestCase):
@@ -37,16 +37,17 @@ Inorder non-mergeable, packed ring mergeable, non-mergeable, inorder mergeable,
inorder non-mergeable Path.
"""
-import utils
-import time
-import re
import json
-import rst
import os
-from pmd_output import PmdOutput
+import re
+import time
from copy import deepcopy
-from test_case import TestCase
-from settings import UPDATE_EXPECTED, load_global_setting
+
+import framework.rst as rst
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.settings import UPDATE_EXPECTED, load_global_setting
+from framework.test_case import TestCase
class TestPerfVirtioUserLoopback(TestCase):
@@ -38,19 +38,20 @@ vm2vm split ring and packed ring vhost-user/virtio-net check the payload of larg
mergeable and non-mergeable dequeue zero copy.
please use qemu version greater 4.1.94 which support packed feathur to test this suite.
"""
-import re
-import os
-import rst
import json
-import time
-import string
+import os
import random
-from virt_common import VM
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import UPDATE_EXPECTED, load_global_setting
+import re
+import string
+import time
from copy import deepcopy
+import framework.rst as rst
+from framework.pmd_output import PmdOutput
+from framework.settings import UPDATE_EXPECTED, load_global_setting
+from framework.test_case import TestCase
+from framework.virt_common import VM
+
class TestPerfVM2VMVirtioNetPerf(TestCase):
def set_up_all(self):
@@ -35,10 +35,11 @@ Performance-Thread test script.
"""
import os
import string
-import utils
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pktgen import PacketGeneratorHelper
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestPerformanceThread(TestCase):
@@ -29,14 +29,17 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase
-from smoke_base import SmokeTest
-from smoke_base import JUMBO_FRAME_LENGTH
-from smoke_base import JUMBO_FRAME_MTU
-from smoke_base import DEFAULT_MTU_VALUE
-from smoke_base import LAUNCH_QUEUE
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
+from .smoke_base import (
+ DEFAULT_MTU_VALUE,
+ JUMBO_FRAME_LENGTH,
+ JUMBO_FRAME_MTU,
+ LAUNCH_QUEUE,
+ SmokeTest,
+)
class TestPfSmoke(TestCase):
@@ -29,41 +29,36 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import utils
+import itertools
+import os
+import random
import re
-import time
import socket
+import time
+from time import sleep
-from settings import HEADER_SIZE
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import DRIVERS
-from crb import Crb
-
-from virt_dut import VirtDut
-from project_dpdk import DPDKdut
-from dut import Dut
-from packet import Packet
-
-import os
-import random
-from exception import VerifyFailure
import scapy.layers.inet
-from scapy.utils import rdpcap
-
-from time import sleep
-# from scapy.all import conf
-from scapy.utils import wrpcap, rdpcap, hexstr
-from scapy.layers.inet import Ether, IP, TCP, UDP, ICMP
-from scapy.layers.l2 import Dot1Q, ARP, GRE
+from scapy.arch import get_if_hwaddr
+from scapy.layers.inet import ICMP, IP, TCP, UDP, Ether
+from scapy.layers.l2 import ARP, GRE, Dot1Q
from scapy.layers.sctp import SCTP, SCTPChunkData
+from scapy.packet import Raw, bind_layers
from scapy.route import *
-from scapy.packet import bind_layers, Raw
-from scapy.arch import get_if_hwaddr
-from scapy.sendrecv import sniff
-from scapy.sendrecv import sendp
+from scapy.sendrecv import sendp, sniff
-import itertools
+# from scapy.all import conf
+from scapy.utils import hexstr, rdpcap, wrpcap
+
+import framework.utils as utils
+from framework.crb import Crb
+from framework.dut import Dut
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.project_dpdk import DPDKdut
+from framework.settings import DRIVERS, HEADER_SIZE
+from framework.test_case import TestCase
+from framework.virt_dut import VirtDut
TIMESTAMP = re.compile(r'\d{2}\:\d{2}\:\d{2}\.\d{6}')
PAYLOAD = re.compile(r'\t0x([0-9a-fA-F]+): ([0-9a-fA-F ]+)')
@@ -34,21 +34,20 @@ DPDK Test suite.
Test userland 10Gb PMD
"""
-import utils
+import os
import re
import time
-import os
-
-from test_case import TestCase
+from datetime import datetime
from time import sleep
-from settings import HEADER_SIZE
-from pmd_output import PmdOutput
-from settings import FOLDERS
-from system_info import SystemInfo
-import perf_report
-from datetime import datetime
-from pktgen import PacketGeneratorHelper
+import framework.utils as utils
+import nics.perf_report as perf_report
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import FOLDERS, HEADER_SIZE
+from framework.test_case import TestCase
+from nics.system_info import SystemInfo
+
class TestPmd(TestCase):
@@ -37,17 +37,17 @@ Test userland 10Gb PMD.
"""
-import time
-import re
import random
-from socket import htons, htonl
+import re
+import time
from functools import wraps
+from socket import htonl, htons
-import utils
-from test_case import TestCase
-from exception import TimeoutException
-from settings import TIMEOUT
-from pmd_output import PmdOutput
+import framework.utils as utils
+from framework.exception import TimeoutException
+from framework.pmd_output import PmdOutput
+from framework.settings import TIMEOUT
+from framework.test_case import TestCase
SOCKET_0 = 0
SOCKET_1 = 1
@@ -29,17 +29,19 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
import re
+import time
import traceback
+# import bonding lib(common methods for pmd bonding command)
+import tests.bonding as bonding
+from framework.exception import VerifyFailure
+
# import dts/framework libs
-from test_case import TestCase
-from exception import VerifyFailure
+from framework.test_case import TestCase
+
+from .bonding import FRAME_SIZE_64, MODE_LACP
-# import bonding lib(common methods for pmd bonding command)
-import bonding
-from bonding import MODE_LACP, FRAME_SIZE_64
######################
# bonding 802.3ad mode
@@ -33,21 +33,24 @@ import time
import traceback
# import dts/framework libs
-import utils
-from test_case import TestCase
-from exception import VerifyFailure
+import framework.utils as utils
# import bonding lib
-import bonding
-from bonding import (
- MODE_ROUND_ROBIN,
- MODE_ACTIVE_BACKUP,
- MODE_XOR_BALANCE,
- MODE_BROADCAST,
- MODE_LACP,
- MODE_TLB_BALANCE,
- MODE_ALB_BALANCE,
- FRAME_SIZE_64)
+import tests.bonding as bonding
+from framework.exception import VerifyFailure
+from framework.test_case import TestCase
+
+from .bonding import (
+ FRAME_SIZE_64,
+ MODE_ACTIVE_BACKUP,
+ MODE_ALB_BALANCE,
+ MODE_BROADCAST,
+ MODE_LACP,
+ MODE_ROUND_ROBIN,
+ MODE_TLB_BALANCE,
+ MODE_XOR_BALANCE,
+)
+
class TestBondingStacked(TestCase):
@@ -31,12 +31,13 @@
'''
'''
-from test_case import TestCase
-
from time import sleep
-from scapy.layers.inet import Ether, IP
+
+from scapy.layers.inet import IP, Ether
from scapy.utils import wrpcap
-import utils
+
+import framework.utils as utils
+from framework.test_case import TestCase
#
@@ -36,10 +36,11 @@ Test DPDK1.8 feature: Fortville RSS full support - configuring hash functions.
It can select Toeplitz or simple XOR hash function and it can configure symmetric hash functions.
Support 4*10G, 1*40G and 2*40G NICs.
"""
-import time
import random
import re
-import utils
+import time
+
+import framework.utils as utils
queue = 16
reta_entries = []
@@ -60,7 +61,9 @@ iptypes = {'ipv4-sctp': 'sctp',
# Use scapy to send packets with different source and dest ip.
# and collect the hash result of five tuple and the queue id.
-from test_case import TestCase
+from framework.test_case import TestCase
+
+
#
#
# Test class.
@@ -33,19 +33,22 @@
DPDK Test suite.
Test RSS reta (redirection table) update function.
"""
-import time
import random
import re
-import utils
import textwrap
+import time
+
+import framework.utils as utils
+
testQueues = [2, 9, 16]
reta_entries = []
reta_lines = []
+from framework.pmd_output import PmdOutput
+
# Use scapy to send packets with different source and dest ip.
# and collect the hash result of five tuple and the queue id.
-from test_case import TestCase
-from pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestPmdrssreta(TestCase):
@@ -30,13 +30,14 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import os
-import utils
-import time
import re
-import packet
-from test_case import TestCase
-from pmd_output import PmdOutput
-from virt_common import VM
+import time
+
+import framework.packet as packet
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestPortControl(TestCase):
@@ -36,13 +36,13 @@ mode, stats reset, etc. our statistical data information is
independent on the control plane and data plane.
"""
-import time
import re
+import time
-from test_case import TestCase
-from dut import Dut
-from packet import Packet
-from pmd_output import PmdOutput
+from framework.dut import Dut
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestPortRepresentor(TestCase):
@@ -37,10 +37,10 @@ import os
import time
import traceback
-from utils import create_mask as dts_create_mask
-from qemu_libvirt import LibvirtKvm
-from exception import VerifyFailure
-from test_case import TestCase
+from framework.exception import VerifyFailure
+from framework.qemu_libvirt import LibvirtKvm
+from framework.test_case import TestCase
+from framework.utils import create_mask as dts_create_mask
class TestPowerBidirectionChannel(TestCase):
@@ -36,21 +36,18 @@ virtual power manager policy branch ratio test suite.
import os
import re
import time
+import traceback
from contextlib import contextmanager
from copy import deepcopy
from pprint import pformat
-import traceback
-
-from settings import load_global_setting
-from settings import HOST_BUILD_TYPE_SETTING
-from utils import create_mask as dts_create_mask
-from qemu_libvirt import LibvirtKvm
-from pktgen import TRANSMIT_CONT
-from exception import VerifyFailure
-from settings import HEADER_SIZE
-from packet import Packet
-from test_case import TestCase
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pktgen import TRANSMIT_CONT
+from framework.qemu_libvirt import LibvirtKvm
+from framework.settings import HEADER_SIZE, HOST_BUILD_TYPE_SETTING, load_global_setting
+from framework.test_case import TestCase
+from framework.utils import create_mask as dts_create_mask
class TestPowerBranchRatio(TestCase):
@@ -39,12 +39,12 @@ import traceback
from copy import deepcopy
from pprint import pformat
-from utils import create_mask as dts_create_mask
-from exception import VerifyFailure
-from test_case import TestCase
-from settings import HEADER_SIZE, PKTGEN_TREX
-from packet import Packet
-from pktgen import TRANSMIT_CONT
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pktgen import TRANSMIT_CONT
+from framework.settings import HEADER_SIZE, PKTGEN_TREX
+from framework.test_case import TestCase
+from framework.utils import create_mask as dts_create_mask
class TestPowerEmptyPoll(TestCase):
@@ -39,10 +39,10 @@ import re
import time
import traceback
-from utils import create_mask as dts_create_mask
-from qemu_libvirt import LibvirtKvm
-from exception import VerifyFailure
-from test_case import TestCase
+from framework.exception import VerifyFailure
+from framework.qemu_libvirt import LibvirtKvm
+from framework.test_case import TestCase
+from framework.utils import create_mask as dts_create_mask
class TestPowerNegative(TestCase):
@@ -29,22 +29,22 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import json
import os
-import time
import random
-import json
import re
import shutil
+import time
import traceback
from collections import Counter
from pprint import pformat
-# import dts libs
-from settings import load_global_setting
-from settings import HOST_BUILD_TYPE_SETTING
-from test_case import TestCase
-from exception import VerifyFailure
-from utils import create_mask
+from framework.exception import VerifyFailure
+
+# import framework.dts as dts libs
+from framework.settings import HOST_BUILD_TYPE_SETTING, load_global_setting
+from framework.test_case import TestCase
+from framework.utils import create_mask
class TestPowerPbf(TestCase):
@@ -29,18 +29,19 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import os
-import time
import json
+import os
import shutil
+import time
import traceback
from collections import Counter
from pprint import pformat
-# import dts libs
-from test_case import TestCase
-from exception import VerifyFailure
-from utils import create_mask
+from framework.exception import VerifyFailure
+
+# import framework.dts as dts libs
+from framework.test_case import TestCase
+from framework.utils import create_mask
class TestPowerPstate(TestCase):
@@ -33,24 +33,21 @@
DPDK Test suite.
l3fwd-power test suite.
"""
+import json
import os
import re
-import time
import textwrap
+import time
import traceback
-import json
from copy import deepcopy
from pprint import pformat
-from settings import load_global_setting
-from settings import HOST_BUILD_TYPE_SETTING
-from utils import create_mask as dts_create_mask
-from settings import HEADER_SIZE
-from test_case import TestCase
-from pktgen import TRANSMIT_CONT
-from exception import VerifyFailure
-
-from packet import Packet
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pktgen import TRANSMIT_CONT
+from framework.settings import HEADER_SIZE, HOST_BUILD_TYPE_SETTING, load_global_setting
+from framework.test_case import TestCase
+from framework.utils import create_mask as dts_create_mask
class TestPowerTelemetry(TestCase):
@@ -34,10 +34,12 @@ DPDK Test suite.
Test support of IEEE1588 Precise Time Protocol.
"""
-import utils
import re
import time
-from test_case import TestCase
+
+import framework.utils as utils
+from framework.test_case import TestCase
+
class TestPtpClient(TestCase):
@@ -30,13 +30,15 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import utils
-from test_case import TestCase
-from exception import VerifyFailure
-from pmd_output import PmdOutput
-from packet import Packet
-import time
import re
+import time
+
+import framework.utils as utils
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
class TestPtype_Mapping(TestCase):
@@ -40,12 +40,14 @@ qemu =
"""
import re
import time
-import utils
+
from scapy.utils import wrpcap
-from test_case import TestCase
-from settings import HEADER_SIZE
-from virt_common import VM
-from pktgen import PacketGeneratorHelper
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestVhostPVPDiffQemuVersion(TestCase):
@@ -34,15 +34,16 @@ DPDK Test suite.
Test PVP performance using virtio_user on 8 tx/rx path.
"""
import json
-import rst
import os
-import utils
-from test_case import TestCase
-from packet import Packet
-from pktgen import PacketGeneratorHelper
-from settings import UPDATE_EXPECTED, load_global_setting
from copy import deepcopy
-from pmd_output import PmdOutput
+
+import framework.rst as rst
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import UPDATE_EXPECTED, load_global_setting
+from framework.test_case import TestCase
class TestPVPMultiPathPerformance(TestCase):
@@ -35,15 +35,16 @@ Test PVP vhost single core performance using virtio_user on 8 tx/rx path.
"""
import json
-import rst
import os
-import utils
-from test_case import TestCase
-from packet import Packet
-from pktgen import PacketGeneratorHelper
-from settings import UPDATE_EXPECTED, load_global_setting
from copy import deepcopy
-from pmd_output import PmdOutput
+
+import framework.rst as rst
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import UPDATE_EXPECTED, load_global_setting
+from framework.test_case import TestCase
class TestPVPMultiPathVhostPerformance(TestCase):
@@ -35,15 +35,16 @@ Test PVP virtio single core performance using virtio_user on 8 tx/rx path.
"""
import json
-import rst
import os
-import utils
-from test_case import TestCase
-from packet import Packet
-from pktgen import PacketGeneratorHelper
-from settings import UPDATE_EXPECTED, load_global_setting
from copy import deepcopy
-from pmd_output import PmdOutput
+
+import framework.rst as rst
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import UPDATE_EXPECTED, load_global_setting
+from framework.test_case import TestCase
class TestPVPMultiPathVirtioPerformance(TestCase):
@@ -38,13 +38,14 @@ includes Mergeable, Normal, Vector_RX.
Cover virtio 1.0 and virtio 0.95.Also cover
port restart test with each path
"""
-import utils
-import time
import re
-from virt_common import VM
-from test_case import TestCase
-from packet import Packet
-from pktgen import PacketGeneratorHelper
+import time
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestPVPQemuMultiPathPortRestart(TestCase):
@@ -34,10 +34,10 @@ DPDK Test suite.
The feature need compile dpdk as shared libraries.
"""
-import utils
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pktgen import PacketGeneratorHelper
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestPVPShareLib(TestCase):
@@ -37,12 +37,13 @@ Becase this suite will use the reconnet feature, the VM will start as
server mode, so the qemu version should greater than 2.7
"""
import re
-import utils
import time
-from test_case import TestCase
-from virt_common import VM
-from packet import Packet
-from pktgen import PacketGeneratorHelper
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestPVPVhostUserReconnect(TestCase):
@@ -36,12 +36,13 @@ link bonding devices from within testpmd interactive prompt.
"""
import re
import time
-import utils
-from test_case import TestCase
-from virt_common import VM
-from pmd_output import PmdOutput
-from packet import Packet
-from pktgen import PacketGeneratorHelper
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestPVPVirtIOBonding(TestCase):
@@ -34,11 +34,12 @@ DPDK Test suite.
vhost/virtio-user pvp with 2M hugepage.
"""
-import utils
import time
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pktgen import PacketGeneratorHelper
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestPVPVirtioWith2Mhuge(TestCase):
@@ -34,11 +34,12 @@ DPDK Test suite.
vhost/virtio-user pvp with 4K pages.
"""
-import utils
import time
-from test_case import TestCase
-from packet import Packet
-from pktgen import PacketGeneratorHelper
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.test_case import TestCase
class TestPvpVirtioUser4kPages(TestCase):
@@ -39,12 +39,14 @@ mergeable, in-order non-mergeable, mergeable, non-mergeable, vector_rx path test
and packed virtqueue in-order mergeable, in-order non-mergeable, mergeable,
non-mergeable path, also cover port restart test with each path.
"""
-import time
import re
-from test_case import TestCase
-from packet import Packet
-from pktgen import PacketGeneratorHelper
-from pmd_output import PmdOutput
+import time
+
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
class TestPVPVirtioUserMultiQueuesPortRestart(TestCase):
@@ -37,10 +37,12 @@ Test the support of VLAN Offload Features by Poll Mode Drivers.
"""
-from test_case import TestCase
-import utils
import time
-from pmd_output import PmdOutput
+
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
class TestQinqFilter(TestCase):
@@ -34,14 +34,15 @@ DPDK Test suite.
Test QOS API in DPDK.
"""
-import utils
-import string
+import os
import re
+import string
import time
-import os
-from pktgen import PacketGeneratorHelper
-from test_case import TestCase
-from pmd_output import PmdOutput
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestQosApi(TestCase):
@@ -35,11 +35,12 @@ Test QOS API in DPDK.
The DUT must have two 10G Ethernet ports connected to two ports of IXIA.
"""
import os
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pktgen import TRANSMIT_CONT
-from pmd_output import PmdOutput
-from packet import Packet
+
+from framework.packet import Packet
+from framework.pktgen import TRANSMIT_CONT
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestQosMeter(TestCase):
@@ -36,18 +36,16 @@ Test the support of VLAN Offload Features by Poll Mode Drivers.
"""
-import utils
-import time
import re
+import time
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pmd_output import PmdOutput
-from settings import DRIVERS
-
-from project_dpdk import DPDKdut
-from dut import Dut
-from packet import Packet
+import framework.utils as utils
+from framework.dut import Dut
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.project_dpdk import DPDKdut
+from framework.settings import DRIVERS, HEADER_SIZE
+from framework.test_case import TestCase
class TestQueue_region(TestCase):
@@ -38,13 +38,14 @@ Test queue start stop Feature
"""
-import time
-import re
import os
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import FOLDERS
-from packet import Packet, strip_pktload
+import re
+import time
+
+from framework.packet import Packet, strip_pktload
+from framework.pmd_output import PmdOutput
+from framework.settings import FOLDERS
+from framework.test_case import TestCase
#
#
@@ -37,13 +37,13 @@ Test the support of RSS Key Update by Poll Mode Drivers.
"""
-import time
-import re
import random
-import utils
+import re
+import time
-from test_case import TestCase
-from pmd_output import PmdOutput
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
queue = 16
reta_entries = []
@@ -36,12 +36,12 @@ Test moving RSS to rte_flow.
"""
-import time
import re
-import packet
+import time
-from test_case import TestCase
-from pmd_output import PmdOutput
+import framework.packet as packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestRSS_to_Rteflow(TestCase):
@@ -34,17 +34,14 @@
DPDK Test suite.
MTU Checks example.
"""
-import time
import ipaddress
+import time
from typing import Callable
-import utils
-from pmd_output import PmdOutput
-from test_case import TestCase
-
-from test_case import TestCase
-
-from flow import generator
+import framework.utils as utils
+from framework.flow import generator
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class RteFlow(TestCase):
@@ -35,23 +35,26 @@ DPDK Test suite.
Test rte_flow priority
"""
+import imp
import re
-import time
import string
+import sys
+import time
from time import sleep
-from scapy.utils import struct, socket, PcapWriter
-import utils
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pmd_output import PmdOutput
-import sys
-import imp
+from scapy.utils import PcapWriter, socket, struct
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+
imp.reload(sys)
class TestRteflowPriority(TestCase):
-
+
def set_up_all(self):
"""
Run at the start of each test suite.
@@ -34,12 +34,13 @@ DPDK Test suite.
'''
-import time
import re
-from qemu_kvm import QEMUKvm
-from test_case import TestCase
-from pmd_output import PmdOutput
-from packet import Packet
+import time
+
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.qemu_kvm import QEMUKvm
+from framework.test_case import TestCase
RSS_KEY = '6EA6A420D5138E712433B813AE45B3C4BECB2B405F31AD6C331835372D15E2D5E49566EE0ED1962AFA1B7932F3549520FD71C75E'
PACKET_COUNT = 100
@@ -37,11 +37,11 @@ runtime_vf_queue_number_kernel test script.
import random
import time
-import utils
-from pmd_output import PmdOutput
-from test_case import TestCase
-from virt_common import VM
-from packet import Packet
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.virt_common import VM
VM_CORES_MASK = 'all'
@@ -34,11 +34,12 @@ DPDK Test suite.
'''
-import time
-import re
import math
-from test_case import TestCase
-from pmd_output import PmdOutput
+import re
+import time
+
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestRuntimeVfQnMaxinum(TestCase):
@@ -34,10 +34,11 @@
DPDK Test suite.
Test Rxtx_Callbacks.
"""
-import utils
import string
import time
-from test_case import TestCase
+
+import framework.utils as utils
+from framework.test_case import TestCase
class TestRxtxCallbacks(TestCase):
@@ -36,18 +36,16 @@ New RX/TX offload APIs.
"""
-import utils
-import time
import re
+import time
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pmd_output import PmdOutput
-from settings import DRIVERS
-
-from project_dpdk import DPDKdut
-from dut import Dut
-from packet import Packet
+import framework.utils as utils
+from framework.dut import Dut
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.project_dpdk import DPDKdut
+from framework.settings import DRIVERS, HEADER_SIZE
+from framework.test_case import TestCase
ETHER_STANDARD_MTU = 1518
ETHER_JUMBO_FRAME_MTU = 9000
@@ -33,10 +33,12 @@
DPDK Test suite.
Test Scattered Packets.
"""
-from test_case import TestCase
-from pmd_output import PmdOutput
-from packet import Packet, strip_pktload
import time
+
+from framework.packet import Packet, strip_pktload
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
#
#
# Test class.
@@ -38,12 +38,13 @@ Test short live dpdk app Feature
"""
-import time
-import re
import os
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import FOLDERS
+import re
+import time
+
+from framework.pmd_output import PmdOutput
+from framework.settings import FOLDERS
+from framework.test_case import TestCase
#
#
@@ -36,19 +36,19 @@ Test Shutdown API Feature
"""
-import utils
-import time
-import re
import os
import random
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import HEADER_SIZE, PROTOCOL_PACKET_SIZE
-from exception import VerifyFailure
-from qemu_kvm import QEMUKvm
-from settings import get_nic_name
+import re
+import time
from random import randint
-from settings import DRIVERS
+
+import framework.utils as utils
+from framework.exception import VerifyFailure
+from framework.pmd_output import PmdOutput
+from framework.qemu_kvm import QEMUKvm
+from framework.settings import DRIVERS, HEADER_SIZE, PROTOCOL_PACKET_SIZE, get_nic_name
+from framework.test_case import TestCase
+
#
#
# Test class.
@@ -34,11 +34,11 @@
DPDK Test suite.
Test Skeleton.
"""
-import utils
import string
import time
-from test_case import TestCase
+import framework.utils as utils
+from framework.test_case import TestCase
class TestSkeleton(TestCase):
@@ -34,15 +34,16 @@ DPDK Test suite.
Test softnic API in DPDK.
"""
-import utils
-import string
+import os
import re
+import string
import time
-from settings import HEADER_SIZE
-import os
-from pktgen import PacketGeneratorHelper
-from test_case import TestCase
-from pmd_output import PmdOutput
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestSoftnic(TestCase):
@@ -33,9 +33,9 @@
"""
DPDK Test suite.
"""
-import utils
-from pmd_output import PmdOutput
-from test_case import TestCase
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestSpeedCapabilities(TestCase):
@@ -37,16 +37,15 @@ Test userland 10Gb PMD.
"""
-import re
import pdb
-import time
import random
+import re
+import time
-from virt_common import VM
-from test_case import TestCase
-
-from pmd_output import PmdOutput
-from settings import PROTOCOL_PACKET_SIZE
+from framework.pmd_output import PmdOutput
+from framework.settings import PROTOCOL_PACKET_SIZE
+from framework.test_case import TestCase
+from framework.virt_common import VM
FRAME_SIZE_64 = 64
VM_CORES_MASK = 'all'
@@ -34,17 +34,17 @@
DPDK Test suite.
Stats Checks example.
"""
-from time import sleep
-from typing import List, Iterator, Tuple
import random
-import struct
-import socket
import re
-import utils
-from pmd_output import PmdOutput
-import packet
+import socket
+import struct
+from time import sleep
+from typing import Iterator, List, Tuple
-from test_case import TestCase
+import framework.packet as packet
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
ETHER_HEADER_LEN = 18
IP_HEADER_LEN = 20
@@ -29,16 +29,17 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import os
-import time
import json
+import os
import re
import textwrap
+import time
from pprint import pformat
-# import dts libs
-from test_case import TestCase
-from pmd_output import PmdOutput
+from framework.pmd_output import PmdOutput
+
+# import framework.dts as dts libs
+from framework.test_case import TestCase
class TestTelemetry(TestCase):
@@ -34,8 +34,9 @@ DPDK Test suite.
testpmd perf test script.
"""
-from test_case import TestCase
-from perf_test_base import PerfTestBase, BIN_TYPE, MATCH_MODE, IP_TYPE
+from framework.test_case import TestCase
+
+from .perf_test_base import BIN_TYPE, IP_TYPE, MATCH_MODE, PerfTestBase
class TestPmdPerf(TestCase, PerfTestBase):
@@ -34,12 +34,11 @@ DPDK Test suite.
Test Timer.
"""
-import utils
import re
import time
-
-from test_case import TestCase
+import framework.utils as utils
+from framework.test_case import TestCase
class TestTimer(TestCase):
@@ -37,14 +37,14 @@ Tests for TSO.
"""
import os
-import utils
-import time
import re
-import os
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pktgen import PacketGeneratorHelper
-from packet import Packet
+import time
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
DEFAULT_MUT = 1500
TSO_MTU = 9000
@@ -39,16 +39,18 @@ Test tx preparation feature
"""
import os
-import time
-import dut
+import random
import re
import subprocess
-from config import PortConf
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import FOLDERS
-from packet import Packet
-import random
+import time
+
+import framework.dut as dut
+from framework.config import PortConf
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.settings import FOLDERS
+from framework.test_case import TestCase
+
#
#
# Test class.
@@ -43,12 +43,13 @@ translate the offloaded packet types into these 7 fields of information, for
user applications
"""
-import utils
-from test_case import TestCase
-from exception import VerifyFailure
-from packet import Packet
import time
-from pmd_output import PmdOutput
+
+import framework.utils as utils
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestUniPacket(TestCase):
@@ -36,8 +36,8 @@ Cmdline autotest
"""
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -36,8 +36,8 @@ Crc autotest
"""
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -30,10 +30,10 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import json
-import utils
-from test_case import TestCase
-import cryptodev_common as cc
+import framework.utils as utils
+import tests.cryptodev_common as cc
+from framework.test_case import TestCase
class UnitTestsCryptodev(TestCase):
@@ -38,8 +38,8 @@ Run Inter-VM share memory autotests
"""
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -36,10 +36,8 @@ EAL autotest.
"""
-import utils
-
-
-from test_case import TestCase
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -34,9 +34,8 @@ DPDK Test suite.
Test Event Timer Adapter Unit test
"""
-import utils
-
-from test_case import TestCase
+import framework.utils as utils
+from framework.test_case import TestCase
class TestUnitTestEventTimer(TestCase):
@@ -35,8 +35,8 @@ DPDK Test suite.
This TestSuite runs the unit tests included in DPDK for KNI feature.
"""
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -35,10 +35,11 @@ DPDK Test suite.
This TestSuite runs the unit tests included in DPDK for X710/XL710/XXV710 loopback mode.
"""
-import utils
import re
import time
-from test_case import TestCase
+
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -36,8 +36,8 @@ This TestSuite runs the unit tests included in DPDK for LPM methods in l3fwd.
"""
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -36,8 +36,8 @@ Run all mbuf autotests
"""
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -36,8 +36,8 @@ Run all Mempool autotests
"""
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -36,7 +36,8 @@ This TestSuite runs the unit tests included in DPDK for pmd performance.
"""
import re
-from test_case import TestCase
+
+from framework.test_case import TestCase
#
#
@@ -35,8 +35,8 @@ DPDK Test suite.
This TestSuite runs the unit tests included in DPDK for power feature.
"""
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -36,8 +36,8 @@ This TestSuite runs the unit tests included in DPDK for Random Early
Detection, Metering and Scheduling QoS features.
"""
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -36,8 +36,8 @@ Run all Ring autotests
"""
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -36,8 +36,8 @@ Run Inter-VM share memory autotests
"""
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -36,8 +36,8 @@ Run all timer autotests
"""
-from test_case import TestCase
-import utils
+import framework.utils as utils
+from framework.test_case import TestCase
#
#
@@ -35,17 +35,17 @@ Test support of userspace ethtool feature
"""
import os
-import utils
-import time
-import re
-from test_case import TestCase
-from packet import Packet
import random
-from settings import HEADER_SIZE
-from settings import SCAPY2IXIA
-from pktgen import PacketGeneratorHelper
-from utils import RED
-from exception import VerifyFailure
+import re
+import time
+
+import framework.utils as utils
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE, SCAPY2IXIA
+from framework.test_case import TestCase
+from framework.utils import RED
class TestUserspaceEthtool(TestCase):
@@ -41,11 +41,12 @@ RX queue in each case. Those packets are then forwarded by each process which
sends them out by writing them directly to a suitable TX queue.
"""
-import time
import re
-import utils
-from test_case import TestCase
-from virt_common import VM
+import time
+
+import framework.utils as utils
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestVdevPrimarySecondary(TestCase):
@@ -37,16 +37,16 @@ Test VEB Switch and floating VEB Features by Poll Mode Drivers.
import re
import time
-import utils
-
-from virt_dut import VirtDut
-from project_dpdk import DPDKdut
-from dut import Dut
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import HEADER_SIZE
-from packet import Packet
-from utils import RED
+
+import framework.utils as utils
+from framework.dut import Dut
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.project_dpdk import DPDKdut
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+from framework.utils import RED
+from framework.virt_dut import VirtDut
class TestVEBSwitching(TestCase):
@@ -29,17 +29,18 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
+import random
import sys
-import utils
+import time
+
from scapy.utils import rdpcap
-from qemu_kvm import QEMUKvm
-from test_case import TestCase
-from pmd_output import PmdOutput
-from packet import Packet
-from settings import get_nic_name
-import random
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.qemu_kvm import QEMUKvm
+from framework.settings import get_nic_name
+from framework.test_case import TestCase
VM_CORES_MASK = 'all'
MAX_VLAN = 4095
@@ -35,13 +35,15 @@ DPDK Test suite.
Test vf_interrupt_pmd.
"""
-import utils
-import time
-import re
import pdb
-from virt_common import VM
-from test_case import TestCase
-from packet import Packet
+import re
+import time
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.test_case import TestCase
+from framework.virt_common import VM
+
class TestVfInterruptPmd(TestCase):
supported_vf_driver = ['pci-stub', 'vfio-pci']
@@ -32,13 +32,13 @@
import re
import time
-import utils
-from virt_common import VM
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import HEADER_SIZE
-from packet import Packet
-from utils import RED
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+from framework.utils import RED
+from framework.virt_common import VM
VM_CORES_MASK = 'all'
@@ -35,18 +35,18 @@ DPDK Test suite.
Test VF kernel
"""
-import utils
-import time
import datetime
-import re
import random
+import re
import threading
-from test_case import TestCase
-from qemu_kvm import QEMUKvm
-from pmd_output import PmdOutput
-from packet import Packet
-import random
-from utils import GREEN, RED
+import time
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.qemu_kvm import QEMUKvm
+from framework.test_case import TestCase
+from framework.utils import GREEN, RED
class TestVfKernel(TestCase):
@@ -29,14 +29,15 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
import os
import string
-import utils
-from test_case import TestCase
-from pmd_output import PmdOutput
-from settings import HEADER_SIZE
-from pktgen import PacketGeneratorHelper
+import time
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestVfL3fwd(TestCase):
@@ -31,8 +31,16 @@
import os
import time
-from test_case import TestCase
-from perf_test_base import PerfTestBase, IP_TYPE, MATCH_MODE, SUITE_TYPE, VF_L3FWD_NIC_SUPPORT
+
+from framework.test_case import TestCase
+
+from .perf_test_base import (
+ IP_TYPE,
+ MATCH_MODE,
+ SUITE_TYPE,
+ VF_L3FWD_NIC_SUPPORT,
+ PerfTestBase,
+)
class TestVfL3fwdEmKernelPf(TestCase, PerfTestBase):
@@ -31,8 +31,16 @@
import os
import time
-from test_case import TestCase
-from perf_test_base import PerfTestBase, IP_TYPE, MATCH_MODE, SUITE_TYPE, VF_L3FWD_NIC_SUPPORT
+
+from framework.test_case import TestCase
+
+from .perf_test_base import (
+ IP_TYPE,
+ MATCH_MODE,
+ SUITE_TYPE,
+ VF_L3FWD_NIC_SUPPORT,
+ PerfTestBase,
+)
class TestVfL3fwdKernelPf(TestCase, PerfTestBase):
@@ -31,8 +31,16 @@
import os
import time
-from test_case import TestCase
-from perf_test_base import PerfTestBase, IP_TYPE, MATCH_MODE, SUITE_TYPE, VF_L3FWD_NIC_SUPPORT
+
+from framework.test_case import TestCase
+
+from .perf_test_base import (
+ IP_TYPE,
+ MATCH_MODE,
+ SUITE_TYPE,
+ VF_L3FWD_NIC_SUPPORT,
+ PerfTestBase,
+)
class TestVfL3fwdLpmIpv4KernelPf(TestCase, PerfTestBase):
@@ -31,8 +31,16 @@
import os
import time
-from test_case import TestCase
-from perf_test_base import PerfTestBase, IP_TYPE, MATCH_MODE, SUITE_TYPE, VF_L3FWD_NIC_SUPPORT
+
+from framework.test_case import TestCase
+
+from .perf_test_base import (
+ IP_TYPE,
+ MATCH_MODE,
+ SUITE_TYPE,
+ VF_L3FWD_NIC_SUPPORT,
+ PerfTestBase,
+)
class TestVfL3fwdLpmIpv4Rfc2544KernelPf(TestCase, PerfTestBase):
@@ -31,8 +31,16 @@
import os
import time
-from test_case import TestCase
-from perf_test_base import PerfTestBase, IP_TYPE, MATCH_MODE, SUITE_TYPE, VF_L3FWD_NIC_SUPPORT
+
+from framework.test_case import TestCase
+
+from .perf_test_base import (
+ IP_TYPE,
+ MATCH_MODE,
+ SUITE_TYPE,
+ VF_L3FWD_NIC_SUPPORT,
+ PerfTestBase,
+)
class TestVfL3fwdLpmIpv6KernelPf(TestCase, PerfTestBase):
@@ -32,9 +32,9 @@
import re
import time
-from virt_common import VM
-from test_case import TestCase
-from pmd_output import PmdOutput
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.virt_common import VM
VM_CORES_MASK = 'all'
@@ -30,17 +30,18 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import re
-import time
import string
+import time
+
+import framework.utils as utils
+from framework.crb import Crb
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+from framework.utils import GREEN, RED
+from framework.virt_common import VM
+from nics.net_device import NetDevice
-import utils
-from virt_common import VM
-from test_case import TestCase
-from pmd_output import PmdOutput
-from utils import RED, GREEN
-from net_device import NetDevice
-from crb import Crb
-from settings import HEADER_SIZE
VM_CORES_MASK = 'all'
DEFAULT_MTU = 1500
TSO_MTU = 9000
@@ -32,10 +32,10 @@
import re
import time
-from virt_common import VM
-from test_case import TestCase
-from pmd_output import PmdOutput
-from packet import Packet
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.virt_common import VM
VM_CORES_MASK = 'all'
@@ -32,10 +32,11 @@
import re
import time
-from virt_common import VM
-from test_case import TestCase
-from pmd_output import PmdOutput
-from packet import Packet
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.virt_common import VM
+
VM_CORES_MASK = 'all'
class TestVfPortStartStop(TestCase):
@@ -33,18 +33,20 @@
DPDK Test suite.
Test RSS reta (redirection table) update function.
"""
-import time
import random
import re
+import time
+
testQueues = [4]
reta_entries = []
reta_lines = []
+from framework.pmd_output import PmdOutput
+
# Use scapy to send packets with different source and dest ip.
# and collect the hash result of five tuple and the queue id.
-from test_case import TestCase
-from pmd_output import PmdOutput
-from virt_common import VM
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestVfRss(TestCase):
@@ -32,15 +32,16 @@
DPDK Test suite.
"""
-import utils
import json
import os
-from test_case import TestCase
-from settings import HEADER_SIZE, UPDATE_EXPECTED, load_global_setting
-from pmd_output import PmdOutput
from copy import deepcopy
-import rst
-from pktgen import PacketGeneratorHelper
+
+import framework.rst as rst
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE, UPDATE_EXPECTED, load_global_setting
+from framework.test_case import TestCase
class TestVfSingleCorePerf(TestCase):
@@ -29,14 +29,17 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from packet import Packet
-from pmd_output import PmdOutput
-from test_case import TestCase
-from smoke_base import SmokeTest
-from smoke_base import JUMBO_FRAME_LENGTH
-from smoke_base import JUMBO_FRAME_MTU
-from smoke_base import DEFAULT_MTU_VALUE
-from smoke_base import LAUNCH_QUEUE
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
+from .smoke_base import (
+ DEFAULT_MTU_VALUE,
+ JUMBO_FRAME_LENGTH,
+ JUMBO_FRAME_MTU,
+ LAUNCH_QUEUE,
+ SmokeTest,
+)
VF_MAC_ADDR = '00:11:22:33:44:55'
@@ -33,14 +33,14 @@ DPDK Test suite
Test vf to vf nic bridge
"""
+import pdb
import re
-import utils
import time
-import pdb
-from test_case import TestCase
-from virt_common import VM
-from pmd_output import PmdOutput
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.virt_common import VM
VF_NUMS_ON_ONE_PF = 2
VF_TEMP_MAC = "52:54:12:45:67:1%d"
@@ -29,15 +29,15 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+import random
import re
import time
-from virt_common import VM
-from test_case import TestCase
-from pmd_output import PmdOutput
-from packet import Packet
-from settings import get_nic_name
-import random
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.settings import get_nic_name
+from framework.test_case import TestCase
+from framework.virt_common import VM
VM_CORES_MASK = 'all'
MAX_VLAN = 4095
@@ -34,8 +34,8 @@ DPDK Test suite.
Basic test for launch vhost with 1024 ethports
"""
-import utils
-from test_case import TestCase
+import framework.utils as utils
+from framework.test_case import TestCase
class TestVhost1024Ethports(TestCase):
@@ -42,18 +42,19 @@ Here is an example:
$ ./testpmd -c f -n 4 \
--vdev 'net_vhost0,iface=/tmp/s0,queues=1,dmas=[txq0@80:04.0],dmathr=1024'
"""
-import rst, json
+import json
import os
import re
import time
-from test_case import TestCase
-from settings import HEADER_SIZE
-from packet import Packet
-from pktgen import PacketGeneratorHelper
-from pmd_output import PmdOutput
-from settings import UPDATE_EXPECTED, load_global_setting
from copy import deepcopy
+import framework.rst as rst
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE, UPDATE_EXPECTED, load_global_setting
+from framework.test_case import TestCase
+
class TestVirTioVhostCbdma(TestCase):
def set_up_all(self):
@@ -34,11 +34,12 @@ DPDK Test suite.
Vhost event idx interrupt need test with l3fwd-power sample
"""
-import utils
-import time
import re
-from virt_common import VM
-from test_case import TestCase
+import time
+
+import framework.utils as utils
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestVhostEventIdxInterrupt(TestCase):
@@ -36,13 +36,14 @@ Vhost PVP performance using Qemu test suite.
"""
import re
import time
-import utils
-from test_case import TestCase
-from settings import HEADER_SIZE
-from virt_common import VM
-from packet import Packet
-from pmd_output import PmdOutput
-from pktgen import PacketGeneratorHelper
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestVhostMultiQueueQemu(TestCase):
@@ -34,16 +34,18 @@ DPDK Test suite.
vhost pmd xstats test suite.
"""
+import copy
+import datetime
import re
import time
-import utils
-import datetime
-import copy
-from test_case import TestCase
-from settings import HEADER_SIZE
-from qemu_kvm import QEMUKvm
-from packet import Packet
-from pmd_output import PmdOutput
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.qemu_kvm import QEMUKvm
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+
ETHER_JUMBO_FRAME_MTU = 9000
DEFAULT_JUMBO_FRAME_MTU = 1500
@@ -34,10 +34,11 @@ DPDK Test suite.
Vhost enqueue interrupt need test with l3fwd-power sample
"""
-import utils
-import time
import re
-from test_case import TestCase
+import time
+
+import framework.utils as utils
+from framework.test_case import TestCase
class TestVhostUserInterrupt(TestCase):
@@ -31,11 +31,12 @@
import re
import time
-import utils
-from virt_common import VM
-from test_case import TestCase
-from config import UserConf
-from exception import VirtDutInitException
+
+import framework.utils as utils
+from framework.config import UserConf
+from framework.exception import VirtDutInitException
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestVhostUserLiveMigration(TestCase):
@@ -34,13 +34,14 @@ DPDK Test suite.
vhost virtio pmd interrupt need test with l3fwd-power sample
"""
-import utils
-import time
import re
-from virt_common import VM
-from test_case import TestCase
-from packet import Packet
-from pktgen import PacketGeneratorHelper
+import time
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestVhostVirtioPmdInterrupt(TestCase):
@@ -36,8 +36,9 @@ Virtio-user interrupt need test with l3fwd-power sample
import re
import time
-import utils
-from test_case import TestCase
+
+import framework.utils as utils
+from framework.test_case import TestCase
class TestVirtioUserInterrupt(TestCase):
@@ -34,13 +34,14 @@ DPDK Test suite.
Virtio idx interrupt need test with l3fwd-power sample
"""
-import utils
-import time
import _thread
import re
-from virt_common import VM
-from test_case import TestCase
-from pktgen import PacketGeneratorHelper
+import time
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestVirtioIdxInterrupt(TestCase):
@@ -32,15 +32,17 @@
DPDK Test suite
Test DPDK vhost + virtio scenarios
"""
+import binascii
import os
-import utils
-import time
import subprocess
-import binascii
-from test_case import TestCase
-from qemu_kvm import QEMUKvm
-import cryptodev_common as cc
-from packet import Packet
+import time
+
+import framework.utils as utils
+import tests.cryptodev_common as cc
+from framework.packet import Packet
+from framework.qemu_kvm import QEMUKvm
+from framework.test_case import TestCase
+
class VirtioCryptodevIpsecTest(TestCase):
def set_up_all(self):
@@ -33,11 +33,13 @@ DPDK Test suite
Test DPDK vhost + virtio scenarios
"""
import os
-import utils
import subprocess
-from test_case import TestCase
-from qemu_kvm import QEMUKvm
-import cryptodev_common as cc
+
+import framework.utils as utils
+import tests.cryptodev_common as cc
+from framework.qemu_kvm import QEMUKvm
+from framework.test_case import TestCase
+
class VirtioCryptodevPerfTest(TestCase):
def set_up_all(self):
@@ -43,11 +43,12 @@ qemu =
"""
import re
import time
-import utils
-from test_case import TestCase
-from settings import HEADER_SIZE
-from virt_common import VM
-from pktgen import PacketGeneratorHelper
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestVirtioPVPRegression(TestCase):
@@ -34,8 +34,10 @@ DPDK Test suite.
"""
import re
-from test_case import TestCase
-from pmd_output import PmdOutput
+
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+
DEFAULT_MTU = 1500
TSO_MTU = 9000
@@ -35,11 +35,13 @@ Test DPDK vhost + virtio scenarios
"""
import os
-import utils
import subprocess
-from test_case import TestCase
-from qemu_kvm import QEMUKvm
-import cryptodev_common as cc
+
+import framework.utils as utils
+import tests.cryptodev_common as cc
+from framework.qemu_kvm import QEMUKvm
+from framework.test_case import TestCase
+
class VirtioCryptodevUnitTest(TestCase):
def set_up_all(self):
@@ -36,11 +36,13 @@ virtio user as exception path test suite.
"""
import re
import time
-import utils
-from test_case import TestCase
-from settings import HEADER_SIZE
-import vhost_peer_conf as peer
-from pktgen import PacketGeneratorHelper
+
+import framework.utils as utils
+import tests.vhost_peer_conf as peer
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+
class TestVirtioUserAsExceptionalPath(TestCase):
@@ -35,16 +35,16 @@ Virtio user for container networking
"""
import json
-import rst
import os
-import utils
import time
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pktgen import PacketGeneratorHelper
-from settings import UPDATE_EXPECTED, load_global_setting
from copy import deepcopy
+import framework.rst as rst
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE, UPDATE_EXPECTED, load_global_setting
+from framework.test_case import TestCase
+
class TestVirtioUserForContainer(TestCase):
@@ -37,13 +37,12 @@ Test the support of VLAN Offload Features by Poll Mode Drivers.
"""
-import utils
import time
-
-from test_case import TestCase
-from pmd_output import PmdOutput
-from packet import Packet
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestVlan(TestCase):
@@ -37,19 +37,19 @@ Test the support of VLAN Offload Features by Poll Mode Drivers.
"""
-import dts
+import random
import time
-import utils
-from test_case import TestCase
-from pmd_output import PmdOutput
-from scapy.utils import struct, socket, wrpcap, rdpcap
-from scapy.layers.inet import Ether, IP, TCP, UDP, ICMP
-from scapy.layers.l2 import Dot1Q, ARP, GRE
-from settings import DPDK_RXMODE_SETTING
-from settings import load_global_setting
+from scapy.layers.inet import ICMP, IP, TCP, UDP, Ether
+from scapy.layers.l2 import ARP, GRE, Dot1Q
+from scapy.utils import rdpcap, socket, struct, wrpcap
+
+import framework.dts as dts
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.settings import DPDK_RXMODE_SETTING, load_global_setting
+from framework.test_case import TestCase
-import random
MAX_VLAN = 4095
@@ -38,14 +38,15 @@ vm2vm split ring and packed ring vhost-user/virtio-net check the payload of larg
mergeable and non-mergeable dequeue zero copy.
please use qemu version greater 4.1.94 which support packed feathur to test this suite.
"""
+import random
import re
-import time
import string
-import random
-import utils
-from virt_common import VM
-from test_case import TestCase
-from pmd_output import PmdOutput
+import time
+
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestVM2VMVirtioNetPerf(TestCase):
@@ -40,11 +40,13 @@ About mergeable path check the large packet payload.
"""
import re
import time
-import utils
-from virt_common import VM
-from test_case import TestCase
-from packet import Packet
-from pmd_output import PmdOutput
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
+from framework.virt_common import VM
+
class TestVM2VMVirtioPMD(TestCase):
def set_up_all(self):
@@ -40,10 +40,11 @@ mergeable, non-mergeable path test
"""
import re
import time
-import utils
-from test_case import TestCase
-from packet import Packet
-from pmd_output import PmdOutput
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.test_case import TestCase
class TestVM2VMVirtioUser(TestCase):
@@ -39,9 +39,10 @@ Test some vm hotplug function with vfio
import os
import re
import time
-from qemu_kvm import QEMUKvm
-from test_case import TestCase
-from pmd_output import PmdOutput
+
+from framework.pmd_output import PmdOutput
+from framework.qemu_kvm import QEMUKvm
+from framework.test_case import TestCase
VM_CORES_MASK = 'all'
@@ -35,10 +35,11 @@ VM power manager test suite.
"""
import re
-import utils
-from test_case import TestCase
-from settings import HEADER_SIZE
-from qemu_libvirt import LibvirtKvm
+
+import framework.utils as utils
+from framework.qemu_libvirt import LibvirtKvm
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestVmPowerManager(TestCase):
@@ -34,23 +34,23 @@ DPDK Test suite.
virtual power manager policy (traffic/time) test suite.
"""
import os
+import random
import re
-import time
import textwrap
-import random
+import time
import traceback
-from itertools import product
-from datetime import datetime, timedelta
from copy import deepcopy
+from datetime import datetime, timedelta
+from itertools import product
from pprint import pformat
-from utils import create_mask as dts_create_mask
-from test_case import TestCase
-from pmd_output import PmdOutput
-from qemu_libvirt import LibvirtKvm
-from pktgen import TRANSMIT_CONT
-from exception import VerifyFailure
-from packet import Packet
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pktgen import TRANSMIT_CONT
+from framework.pmd_output import PmdOutput
+from framework.qemu_libvirt import LibvirtKvm
+from framework.test_case import TestCase
+from framework.utils import create_mask as dts_create_mask
class TestVmPwMgmtPolicy(TestCase):
@@ -35,13 +35,14 @@ DPDK Test suite.
Tests for vmdq.
"""
-import utils
import os
import re
-from test_case import TestCase
from time import sleep
-from settings import HEADER_SIZE
-from pktgen import PacketGeneratorHelper
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestVmdq(TestCase):
@@ -36,13 +36,14 @@ DPDK Test suite.
Test example vmdq_dcb.
"""
-import utils
import os
-import re
import random
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pktgen import PacketGeneratorHelper
+import re
+
+import framework.utils as utils
+from framework.pktgen import PacketGeneratorHelper
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestVmdqDcb(TestCase):
@@ -33,18 +33,19 @@
DPDK Test suite.
"""
-import utils
-import re
-import time
import os
-from test_case import TestCase
-from packet import Packet
-from pktgen import PacketGeneratorHelper
-from pmd_output import PmdOutput
-from virt_common import VM
-from settings import HEADER_SIZE
import random
+import re
import string
+import time
+
+import framework.utils as utils
+from framework.packet import Packet
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+from framework.virt_common import VM
class TestVswitchSampleCBDMA(TestCase):
@@ -36,29 +36,29 @@ Test VXLAN behaviour in DPDK.
"""
-import utils
-import string
+import os
import re
+import string
import time
-import os
-from pmd_output import PmdOutput
-from packet import IncreaseIP, IncreaseIPv6
from random import randint
-from scapy.utils import wrpcap, rdpcap
-from scapy.layers.inet import Ether, IP, TCP, UDP
+from scapy.config import conf
+from scapy.layers.inet import IP, TCP, UDP, Ether
from scapy.layers.inet6 import IPv6
from scapy.layers.l2 import Dot1Q
-from scapy.layers.vxlan import VXLAN
from scapy.layers.sctp import SCTP, SCTPChunkData
-from scapy.sendrecv import sniff
-from scapy.config import conf
+from scapy.layers.vxlan import VXLAN
from scapy.route import *
+from scapy.sendrecv import sniff
+from scapy.utils import rdpcap, wrpcap
-from test_case import TestCase
-from settings import HEADER_SIZE, FOLDERS
-from pktgen import PacketGeneratorHelper
-import packet
+import framework.packet as packet
+import framework.utils as utils
+from framework.packet import IncreaseIP, IncreaseIPv6
+from framework.pktgen import PacketGeneratorHelper
+from framework.pmd_output import PmdOutput
+from framework.settings import FOLDERS, HEADER_SIZE
+from framework.test_case import TestCase
#
#
@@ -622,7 +622,7 @@ class TestVxlan(TestCase):
out = self.dut.send_expect("stop", "testpmd>", 10)
self.dut.send_expect("quit", "#", 10)
-
+
def test_vxlan_ipv6_detect(self):
"""
verify vxlan packet detection with ipv6 header
@@ -36,17 +36,19 @@ Test VXLAN-GPE behaviour in DPDK.
"""
-import utils
import os
import re
-from pmd_output import PmdOutput
-from scapy.utils import wrpcap, rdpcap
-from scapy.layers.inet import Ether, IP, UDP
+
+from scapy.config import conf
+from scapy.layers.inet import IP, UDP, Ether
from scapy.layers.l2 import Dot1Q
from scapy.layers.vxlan import VXLAN
-from scapy.config import conf
-from test_case import TestCase
-from settings import FOLDERS
+from scapy.utils import rdpcap, wrpcap
+
+import framework.utils as utils
+from framework.pmd_output import PmdOutput
+from framework.settings import FOLDERS
+from framework.test_case import TestCase
#
#
new file mode 100644
@@ -0,0 +1,30 @@
+#!/usr/bin/python3
+# BSD LICENSE
+#
+# Copyright (c) 2021 PANTHEON.tech s.r.o.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of PANTHEON.tech s.r.o. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -30,20 +30,20 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import os
-import time
import re
-import struct
import socket
+import struct
+import time
from socket import htonl
-from packet import Packet, TMP_PATH
from scapy.sendrecv import sendp
from scapy.utils import wrpcap
-import utils
-from exception import TimeoutException, VerifyFailure
-from pmd_output import PmdOutput
-from settings import HEADER_SIZE
+import framework.utils as utils
+from framework.exception import TimeoutException, VerifyFailure
+from framework.packet import TMP_PATH, Packet
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
# define bonding mode
MODE_ROUND_ROBIN = 0
@@ -32,8 +32,9 @@
import os
import re
-import utils
-from config import SuiteConf
+
+import framework.utils as utils
+from framework.config import SuiteConf
conf = SuiteConf('compressdev_sample')
@@ -29,8 +29,8 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from net_device import GetNicObj
-from config import SuiteConf
+from framework.config import SuiteConf
+from nics.net_device import GetNicObj
conf = SuiteConf('cryptodev_sample')
@@ -29,10 +29,11 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import time
-from packet import Packet
-from pmd_output import PmdOutput
import re
+import time
+
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
class FlexibleRxdBase(object):
@@ -32,25 +32,30 @@
"""
Layer-3 forwarding test script base class.
"""
+import json
import os
import re
import time
import traceback
-import texttable
-import json
-import numpy as np
+from copy import deepcopy
from enum import Enum, unique
-from pprint import pformat
from itertools import product
-from copy import deepcopy
+from pprint import pformat
-from config import SuiteConf
-from packet import Packet
-from pktgen import TRANSMIT_CONT, PKTGEN_TREX, PKTGEN_IXIA, PKTGEN_IXIA_NETWORK
-from utils import convert_int2ip, convert_ip2int
-from exception import VerifyFailure
-import utils
+import numpy as np
+import framework.texttable as texttable
+import framework.utils as utils
+from framework.config import SuiteConf
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pktgen import (
+ PKTGEN_IXIA,
+ PKTGEN_IXIA_NETWORK,
+ PKTGEN_TREX,
+ TRANSMIT_CONT,
+)
+from framework.utils import convert_int2ip, convert_ip2int
VF_L3FWD_NIC_SUPPORT = frozenset((
"niantic",
@@ -30,10 +30,11 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import json
-import time
import re
-from utils import GREEN, RED
-from packet import Packet
+import time
+
+from framework.packet import Packet
+from framework.utils import GREEN, RED
CVL_TXQ_RXQ_NUMBER = 16
@@ -31,7 +31,8 @@
import re
import time
-from settings import HEADER_SIZE
+
+from framework.settings import HEADER_SIZE
JUMBO_FRAME_MTU = 9600
DEFAULT_MTU_VALUE = 1500
@@ -29,7 +29,7 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-from config import UserConf
+from framework.config import UserConf
conf_file = 'conf/vhost_peer_conf.cfg'
conf_peer = UserConf(conf_file)
new file mode 100644
@@ -0,0 +1,30 @@
+#!/usr/bin/python3
+# BSD LICENSE
+#
+# Copyright (c) 2021 PANTHEON.tech s.r.o.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in
+# the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of PANTHEON.tech s.r.o. nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -1,8 +1,8 @@
-import sys
-import os
-import re
import inspect
import json
+import os
+import re
+import sys
exec_file = os.path.realpath(__file__)
DTS_PATH = exec_file.replace('/tools/dump_case.py', '')
@@ -13,9 +13,9 @@ DTS_FRAMEWORK = DTS_PATH + '/framework'
sys.path.append(DTS_SUITES)
sys.path.append(DTS_FRAMEWORK)
-import dts
-from test_case import TestCase
-from utils import pprint
+import framework.dts as dts
+from framework.test_case import TestCase
+from framework.utils import pprint
def get_subclasses(module, clazz):
@@ -79,7 +79,7 @@ def load_cases():
suite_func_list = {}
suite_perf_list = {}
for suite in suites:
- test_module = __import__('TestSuite_' + suite)
+ test_module = __import__('tests.TestSuite_' + suite)
for classname, test_class in get_subclasses(test_module, TestCase):
test_suite = test_class(dut, None, None, suite)
func_cases = get_functional_test_cases(test_suite)
@@ -1,6 +1,6 @@
-import sys
import os.path
import re
+import sys
def RED(text):
@@ -1,9 +1,10 @@
-import sys
+import configparser
import os
-import parse_opt
import re
+import sys
import time
-import configparser
+
+import parse_opt
exec_file = os.path.realpath(__file__)
DTS_PATH = exec_file.replace('/tools/setup.py', '')
@@ -22,10 +23,11 @@ DTS_IXIA_CFG = DTS_PATH + '/conf/ixia.cfg'
sys.path.append(DTS_FRAMEWORK)
sys.path.append(DTS_TOOLS)
-import utils
-from parse_opt import Option
-from settings import NICS
-from utils import GREEN, RED
+import framework.utils as utils
+from framework.settings import NICS
+from framework.utils import GREEN, RED
+
+from .parse_opt import Option
global def_opt
global dut_ip