@@ -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,28 @@
"""
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 (IXIA, 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,
+ IXIA,
+ 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
@@ -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, IXIA
-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 IXIA, 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.*#'
@@ -1,7 +1,7 @@
"""
Static configuration data for any CRBs that can be used.
"""
-from settings import IXIA
+from .settings import IXIA
crbs_desc = {
'CrownPassCRB1':
@@ -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
@@ -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):
@@ -32,12 +32,13 @@
import re
import string
import time
-from config import IxiaConf
-from ssh_connection import SSHConnection
-from settings import SCAPY2IXIA
-from logger import getLogger
-from exception import VerifyFailure
-from utils import create_mask
+
+from .config import IxiaConf
+from .exception import VerifyFailure
+from .logger import getLogger
+from .settings import SCAPY2IXIA
+from .ssh_connection import SSHConnection
+from .utils import create_mask
class SoftwarePacketGenerator():
@@ -36,15 +36,15 @@ 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 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="") / ('\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):
@@ -36,15 +36,27 @@ import itertools
import os
import sys
import time
-from typing import List, Set, Generator, Iterable, FrozenSet, Tuple
+from typing import FrozenSet, Generator, Iterable, List, Set, Tuple
import numpy as np
-from flow.flow import Flow
-from flow.flow_pattern_items import PATTERN_ITEMS_TYPE_CLASS_MAPPING, PatternFlowItem, \
- PATTERN_OPERATION_TYPES, TUNNELING_PROTOCOL_TYPES, ALWAYS_ALLOWED_ITEMS, FlowItemEnd, FlowItemVxlan, FlowItemIpv4, \
- FlowItemEth, FlowItemGre, L3_FLOW_TYPES, FlowItemVlan, 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,
+ TUNNELING_PROTOCOL_TYPES,
+ FlowItemEnd,
+ FlowItemEth,
+ FlowItemGre,
+ FlowItemIpv4,
+ FlowItemUdp,
+ FlowItemVlan,
+ 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 dep.scapy_modules.Dot1BR import Dot1BR
+
# load extension layers
exec_file = os.path.realpath(__file__)
DTS_PATH = exec_file.replace('/framework/packet.py', '')
@@ -44,43 +48,29 @@ 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
+from .utils import convert_int2ip, convert_ip2int
scapy_modules_required = {'gtp': ['GTP_U_Header', 'GTPPDUSessionContainer'],
'lldp': ['LLDPDU', 'LLDPDUManagementAddress'],
- 'Dot1BR': ['Dot1BR'],
'pfcp': ['PFCP'],
'nsh': ['NSH'],
'igmp': ['IGMP'],
'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(f'scapy.contrib.{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 scapy.contrib.{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,26 @@
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 IXIA, 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,
+ IXIA,
+ 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):
@@ -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):
@@ -32,7 +32,7 @@
"""
Generic result container and reporters
"""
-import texttable # text format
+import framework.texttable as texttable # text format
class Result(object):
@@ -33,23 +33,32 @@
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 IXIA, USERNAME, PKTGEN, PKTGEN_GRP
-from crb import Crb
-from net_device import GetNicObj
-from etgen import IxiaPacketGenerator, SoftwarePacketGenerator
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 .etgen import IxiaPacketGenerator, SoftwarePacketGenerator
+from .exception import ParameterInvalidException
+from .packet import SCAPY_IMP_CMD
+from .pktgen import getPacketGenerator
+from .settings import (
+ IXIA,
+ 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):
@@ -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"
@@ -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
-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="00:11:22:33:44:55")/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)',
@@ -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):
@@ -35,18 +35,17 @@ DPDK Test suite.
'''
import re
-import time
import sys
-
-import utils
-from qemu_kvm import QEMUKvm
-from test_case import TestCase
-from pmd_output import PmdOutput
-from exception import VerifyFailure
+import time
from scapy.utils import rdpcap
-from packet import Packet
+import framework.utils as utils
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.pmd_output import PmdOutput
+from framework.qemu_kvm import QEMUKvm
+from framework.test_case import TestCase
VM_CORES_MASK = 'all'
@@ -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 etgen import IxiaPacketGenerator
-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.etgen import IxiaPacketGenerator
+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,IxiaPacketGenerator):
@@ -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 etgen import IxiaPacketGenerator
-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.etgen import IxiaPacketGenerator
+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,IxiaPacketGenerator):
@@ -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 etgen import IxiaPacketGenerator
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pmd_output import PmdOutput
+from scapy.utils import PcapWriter, socket, struct
-import sys
-import imp
+import framework.utils as utils
+from framework.etgen import IxiaPacketGenerator
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestFdir(TestCase, IxiaPacketGenerator):
@@ -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
MAX_VFQUEUE = 3
@@ -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": [
@@ -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
@@ -36,12 +36,13 @@ Test Load Balancer.
"""
-import dts
-from packet import Packet
-from test_case import TestCase
-import utils
import time
+import framework.dts as dts
+import framework.utils as utils
+from framework.packet import Packet
+from framework.test_case import TestCase
+
class TestLoadbalancer(TestCase):
@@ -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):
@@ -35,11 +35,13 @@ DPDK Test suite.
Test Netmap_compat.
"""
-import utils
+import re
import string
import time
-import re
-from test_case import TestCase
+
+import framework.utils as utils
+from framework.test_case import TestCase
+
class TestNetmapCompat(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):
@@ -32,17 +32,18 @@
"""
DPDK Test suite.
"""
-import utils
import json
-import rst
import os
import re
import time
-from test_case import TestCase
-from packet import Packet
-from settings import UPDATE_EXPECTED, load_global_setting
from copy import deepcopy
+import framework.rst as rst
+import framework.utils as utils
+from framework.packet import Packet
+from framework.settings import UPDATE_EXPECTED, load_global_setting
+from framework.test_case import TestCase
+
class TestVirtioSingleCorePerf(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):
@@ -33,13 +33,14 @@
DPDK Test suite.
"""
-import utils
-import time
import re
-from test_case import TestCase
-from settings import HEADER_SIZE
-from pktgen import PacketGeneratorHelper
-from pmd_output import PmdOutput
+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 TestPVPVhostUserBuiltInNetDriver(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
-
+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,19 +35,21 @@ 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 etgen import IxiaPacketGenerator
-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.etgen import IxiaPacketGenerator
+from framework.pmd_output import PmdOutput
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
+
imp.reload(sys)
@@ -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 etgen import IxiaPacketGenerator
-from settings import HEADER_SIZE
-from settings import SCAPY2IXIA
-from utils import RED
-from exception import VerifyFailure
+import re
+import time
+
+import framework.utils as utils
+from framework.etgen import IxiaPacketGenerator
+from framework.exception import VerifyFailure
+from framework.packet import Packet
+from framework.settings import HEADER_SIZE, SCAPY2IXIA
+from framework.test_case import TestCase
+from framework.utils import RED
class TestUserspaceEthtool(TestCase, IxiaPacketGenerator):
@@ -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):
@@ -34,11 +34,12 @@ DPDK Test suite.
Virtio user for container networking
"""
-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 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,11 +35,12 @@ VM power manager test suite.
"""
import re
-import utils
-from test_case import TestCase
-from etgen import IxiaPacketGenerator
-from settings import HEADER_SIZE
-from qemu_libvirt import LibvirtKvm
+
+import framework.utils as utils
+from framework.etgen import IxiaPacketGenerator
+from framework.qemu_libvirt import LibvirtKvm
+from framework.settings import HEADER_SIZE
+from framework.test_case import TestCase
class TestVmPowerManager(TestCase, IxiaPacketGenerator):
@@ -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 test_case import TestCase
-from settings import HEADER_SIZE, FOLDERS
-from etgen import IxiaPacketGenerator
-import packet
+from scapy.sendrecv import sniff
+from scapy.utils import rdpcap, wrpcap
+
+import framework.packet as packet
+import framework.utils as utils
+from framework.etgen import IxiaPacketGenerator
+from framework.packet import IncreaseIP, IncreaseIPv6
+from framework.pmd_output import PmdOutput
+from framework.settings import FOLDERS, HEADER_SIZE
+from framework.test_case import TestCase
#
#
@@ -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):
@@ -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
DTS does not use the standard project structure and has therefore add paths to python interpreter search paths. Move to a standard structure: * Move main.py to the root directory. * Add __init__.py to directories from which python modules are imported. * Adjust import paths to account for this new structure. Moving to a standard structure has a host of positives, such as: * No need to study any non-standard approaches. This removes any bewilderment the developers may feel when encountering something non-standard without proper justification (as is the case with DTS). * Better integration with IDEs which rely on the standard structure. * More accurate results from automated tools. In addition to this, not only adjust the import paths but make then explicit for modules imported from the same level, e.g. instead of using from foo import, use from .foo import (and import bar.foo as foo, where foo if on the same level as the importing module). This allows developers to separate DTS modules from third party modules at a glance. Also sort the import using the isort tool. Add config using the "black" profile for isort to facilitate interoperability with Black. Signed-off-by: Juraj Linkeš <juraj.linkes@pantheon.tech> --- v2: * Reintroduced the dts shell cript. * Tested the imports by trying to import everything and fixed what I * found. * Sorted the imports using isort with the black profile. --- dep/QMP/qemu-ga-client | 4 +- dep/QMP/qmp.py | 3 +- dep/__init__.py | 30 +++++++++ dep/scapy_modules/Dot1BR.py | 5 +- dep/scapy_modules/__init__.py | 30 +++++++++ dts | 2 +- framework/__init__.py | 30 +++++++++ framework/checkCase.py | 7 +- framework/config.py | 26 +++++-- framework/crb.py | 17 ++--- framework/crbs.py | 2 +- framework/debugger.py | 16 ++--- framework/dts.py | 67 ++++++++++--------- framework/dut.py | 18 ++--- framework/etgen.py | 13 ++-- framework/flow/flow.py | 12 ++-- framework/flow/flow_action_items.py | 6 +- framework/flow/flow_items.py | 13 ++-- framework/flow/flow_pattern_items.py | 14 ++-- framework/flow/flow_rule.py | 7 +- framework/flow/generator.py | 24 +++++-- framework/ixia_network/ixnet.py | 11 +-- framework/ixia_network/ixnet_stream.py | 4 +- framework/ixia_network/packet_parser.py | 2 +- framework/json_reporter.py | 1 + framework/logger.py | 8 +-- framework/multiple_vm.py | 17 +++-- framework/packet.py | 30 +++------ framework/pktgen.py | 27 +++++--- framework/pktgen_base.py | 11 +-- framework/pktgen_ixia.py | 19 +++--- framework/pktgen_ixia_network.py | 2 +- framework/pktgen_trex.py | 29 +++++--- framework/plotgraph.py | 5 +- framework/plotting.py | 12 ++-- framework/pmd_output.py | 5 +- framework/project_dpdk.py | 30 ++++++--- framework/qemu_kvm.py | 13 ++-- framework/qemu_libvirt.py | 26 +++---- framework/rst.py | 7 +- framework/settings.py | 2 +- framework/ssh_connection.py | 4 +- framework/ssh_pexpect.py | 8 ++- framework/test_case.py | 37 ++++++---- framework/test_result.py | 2 +- framework/tester.py | 37 ++++++---- framework/texttable.py | 4 +- framework/utils.py | 8 +-- framework/virt_base.py | 17 +++-- framework/virt_common.py | 8 +-- framework/virt_dut.py | 23 ++++--- framework/virt_resource.py | 2 +- framework/virt_scene.py | 18 ++--- framework/main.py => main.py | 12 ++-- nics/__init__.py | 30 +++++++++ nics/net_device.py | 11 ++- nics/perf_report.py | 23 ++++--- nics/system_info.py | 5 +- pyproject.toml | 3 + requirements.txt | 1 + tests/TestSuite_ABI_stable.py | 12 ++-- tests/TestSuite_acl.py | 2 +- tests/TestSuite_af_xdp_2.py | 9 +-- tests/TestSuite_blocklist.py | 9 +-- tests/TestSuite_cbdma.py | 11 +-- tests/TestSuite_checksum_offload.py | 34 ++++------ tests/TestSuite_cloud_filter_with_l4_port.py | 19 +++--- tests/TestSuite_cmdline.py | 5 +- tests/TestSuite_compressdev_isal_pmd.py | 10 +-- tests/TestSuite_compressdev_qat_pmd.py | 9 +-- tests/TestSuite_compressdev_zlib_pmd.py | 10 +-- tests/TestSuite_coremask.py | 7 +- tests/TestSuite_crypto_perf_cryptodev_perf.py | 7 +- tests/TestSuite_cvl_advanced_iavf_rss.py | 12 ++-- ...TestSuite_cvl_advanced_iavf_rss_gtpogre.py | 12 ++-- tests/TestSuite_cvl_advanced_iavf_rss_gtpu.py | 12 ++-- ...advanced_iavf_rss_vlan_esp_ah_l2tp_pfcp.py | 14 ++-- tests/TestSuite_cvl_advanced_rss.py | 12 ++-- tests/TestSuite_cvl_advanced_rss_gtpogre.py | 9 +-- tests/TestSuite_cvl_advanced_rss_gtpu.py | 9 +-- tests/TestSuite_cvl_advanced_rss_pppoe.py | 12 ++-- ..._cvl_advanced_rss_vlan_esp_ah_l2tp_pfcp.py | 14 ++-- tests/TestSuite_cvl_dcf_acl_filter.py | 17 +++-- tests/TestSuite_cvl_dcf_date_path.py | 7 +- tests/TestSuite_cvl_dcf_flow_priority.py | 17 +++-- tests/TestSuite_cvl_dcf_switch_filter.py | 17 +++-- tests/TestSuite_cvl_dcf_switch_filter_gtpu.py | 17 +++-- .../TestSuite_cvl_dcf_switch_filter_pppoe.py | 18 +++-- tests/TestSuite_cvl_ecpri.py | 13 ++-- tests/TestSuite_cvl_fdir.py | 17 +++-- ...TestSuite_cvl_iavf_ip_fragment_rte_flow.py | 12 ++-- tests/TestSuite_cvl_iavf_rss_configure.py | 15 +++-- tests/TestSuite_cvl_ip_fragment_rte_flow.py | 12 ++-- tests/TestSuite_cvl_limit_value_test.py | 18 ++--- tests/TestSuite_cvl_qinq.py | 14 ++-- tests/TestSuite_cvl_rss_configure.py | 20 +++--- tests/TestSuite_cvl_switch_filter.py | 21 +++--- tests/TestSuite_cvl_switch_filter_pppoe.py | 21 +++--- ...tSuite_cvl_vf_support_multicast_address.py | 7 +- tests/TestSuite_dcf_lifecycle.py | 15 ++--- tests/TestSuite_ddp_gtp.py | 15 +++-- tests/TestSuite_ddp_gtp_qregion.py | 14 ++-- tests/TestSuite_ddp_l2tpv3.py | 10 +-- tests/TestSuite_ddp_mpls.py | 15 +++-- tests/TestSuite_ddp_ppp_l2tp.py | 14 ++-- tests/TestSuite_distributor.py | 9 +-- tests/TestSuite_dpdk_gro_lib.py | 9 +-- tests/TestSuite_dpdk_gso_lib.py | 13 ++-- tests/TestSuite_dpdk_hugetlbfs_mount_size.py | 5 +- tests/TestSuite_dual_vlan.py | 7 +- tests/TestSuite_dynamic_config.py | 7 +- tests/TestSuite_dynamic_flowtype.py | 11 +-- tests/TestSuite_dynamic_queue.py | 15 +++-- tests/TestSuite_eeprom_dump.py | 7 +- tests/TestSuite_efd.py | 9 +-- ...e_enable_package_download_in_ice_driver.py | 10 +-- tests/TestSuite_etag.py | 15 ++--- tests/TestSuite_ethtool_stats.py | 18 ++--- tests/TestSuite_eventdev_perf.py | 21 +++--- tests/TestSuite_eventdev_pipeline.py | 10 +-- tests/TestSuite_eventdev_pipeline_perf.py | 21 +++--- tests/TestSuite_example_build.py | 6 +- tests/TestSuite_external_memory.py | 7 +- tests/TestSuite_external_mempool_handler.py | 6 +- tests/TestSuite_fdir.py | 18 ++--- tests/TestSuite_fips_cryptodev.py | 8 ++- tests/TestSuite_firmware_version.py | 5 +- tests/TestSuite_flexible_rxd.py | 9 ++- tests/TestSuite_floating_veb.py | 16 ++--- tests/TestSuite_flow_classify.py | 14 ++-- tests/TestSuite_flow_classify_softnic.py | 45 ++++++------- tests/TestSuite_flow_filtering.py | 12 ++-- ...tSuite_fortville_rss_granularity_config.py | 12 ++-- tests/TestSuite_fortville_rss_input.py | 12 ++-- tests/TestSuite_generic_filter.py | 11 ++- tests/TestSuite_generic_flow_api.py | 30 ++++----- tests/TestSuite_hello_world.py | 5 +- tests/TestSuite_hotplug.py | 11 +-- tests/TestSuite_hotplug_mp.py | 7 +- tests/TestSuite_iavf.py | 15 ++--- tests/TestSuite_iavf_fdir.py | 17 +++-- tests/TestSuite_iavf_flexible_descriptor.py | 4 +- ...tSuite_iavf_package_driver_error_handle.py | 12 ++-- tests/TestSuite_ieee1588.py | 11 +-- tests/TestSuite_inline_ipsec.py | 11 +-- tests/TestSuite_interrupt_pmd.py | 5 +- tests/TestSuite_ip_pipeline.py | 49 +++++++------- tests/TestSuite_ipfrag.py | 14 ++-- tests/TestSuite_ipgre.py | 22 +++--- tests/TestSuite_ipsec_gw_cryptodev_func.py | 9 +-- tests/TestSuite_ipv4_reassembly.py | 9 +-- ...te_ixgbe_vf_get_extra_queue_information.py | 14 ++-- tests/TestSuite_jumboframes.py | 9 +-- tests/TestSuite_keep_alive.py | 8 ++- tests/TestSuite_kernelpf_iavf.py | 17 ++--- tests/TestSuite_kni.py | 11 +-- tests/TestSuite_l2fwd.py | 9 +-- tests/TestSuite_l2fwd_cryptodev_func.py | 20 +++--- tests/TestSuite_l2fwd_jobstats.py | 7 +- tests/TestSuite_l2tp_esp_coverage.py | 9 +-- tests/TestSuite_l3fwd.py | 5 +- tests/TestSuite_l3fwd_em.py | 5 +- tests/TestSuite_l3fwd_lpm_ipv4.py | 5 +- tests/TestSuite_l3fwd_lpm_ipv4_rfc2544.py | 5 +- tests/TestSuite_l3fwd_lpm_ipv6.py | 5 +- tests/TestSuite_l3fwdacl.py | 8 ++- tests/TestSuite_large_vf.py | 9 ++- tests/TestSuite_link_flowctrl.py | 14 ++-- tests/TestSuite_link_status_interrupt.py | 9 +-- tests/TestSuite_linux_modules.py | 5 +- tests/TestSuite_loadbalancer.py | 9 +-- ...Suite_loopback_multi_paths_port_restart.py | 9 +-- tests/TestSuite_loopback_multi_queues.py | 9 +-- ...tSuite_loopback_virtio_user_server_mode.py | 9 +-- tests/TestSuite_mac_filter.py | 12 ++-- tests/TestSuite_macsec_for_ixgbe.py | 11 +-- ...Suite_malicious_driver_event_indication.py | 9 ++- tests/TestSuite_mdd.py | 9 +-- tests/TestSuite_metering_and_policing.py | 15 +++-- tests/TestSuite_metrics.py | 16 ++--- tests/TestSuite_mtu_update.py | 23 +++---- tests/TestSuite_multicast.py | 5 +- tests/TestSuite_multiple_pthread.py | 11 +-- tests/TestSuite_multiprocess.py | 9 +-- tests/TestSuite_netmap_compat.py | 8 ++- tests/TestSuite_nic_single_core_perf.py | 16 +++-- tests/TestSuite_ntb.py | 12 ++-- tests/TestSuite_nvgre.py | 26 +++---- tests/TestSuite_packet_capture.py | 19 +++--- tests/TestSuite_packet_ordering.py | 7 +- tests/TestSuite_perf_virtio_user_loopback.py | 15 +++-- tests/TestSuite_perf_virtio_user_pvp.py | 11 +-- tests/TestSuite_perf_vm2vm_virtio_net_perf.py | 19 +++--- tests/TestSuite_performance_thread.py | 9 +-- tests/TestSuite_pf_smoke.py | 19 +++--- tests/TestSuite_pipeline.py | 51 +++++++------- tests/TestSuite_pmd.py | 21 +++--- tests/TestSuite_pmd_bonded.py | 16 ++--- tests/TestSuite_pmd_bonded_8023ad.py | 14 ++-- tests/TestSuite_pmd_stacked_bonded.py | 29 ++++---- tests/TestSuite_pmdpcap.py | 9 +-- tests/TestSuite_pmdrss_hash.py | 9 ++- tests/TestSuite_pmdrssreta.py | 11 +-- tests/TestSuite_port_control.py | 13 ++-- tests/TestSuite_port_representor.py | 10 +-- tests/TestSuite_power_bidirection_channel.py | 8 +-- tests/TestSuite_power_branch_ratio.py | 19 +++--- tests/TestSuite_power_empty_poll.py | 12 ++-- tests/TestSuite_power_negative.py | 8 +-- tests/TestSuite_power_pbf.py | 16 ++--- tests/TestSuite_power_pstate.py | 13 ++-- tests/TestSuite_power_telemetry.py | 19 +++--- tests/TestSuite_ptpclient.py | 6 +- tests/TestSuite_ptype_mapping.py | 14 ++-- tests/TestSuite_pvp_diff_qemu_version.py | 12 ++-- .../TestSuite_pvp_multi_paths_performance.py | 15 +++-- ...lti_paths_vhost_single_core_performance.py | 15 +++-- ...ti_paths_virtio_single_core_performance.py | 15 +++-- ...Suite_pvp_qemu_multi_paths_port_restart.py | 13 ++-- tests/TestSuite_pvp_share_lib.py | 8 +-- ...uite_pvp_vhost_user_built_in_net_driver.py | 13 ++-- tests/TestSuite_pvp_vhost_user_reconnect.py | 11 +-- tests/TestSuite_pvp_virtio_bonding.py | 13 ++-- .../TestSuite_pvp_virtio_user_2M_hugepages.py | 9 +-- tests/TestSuite_pvp_virtio_user_4k_pages.py | 9 +-- ...p_virtio_user_multi_queues_port_restart.py | 12 ++-- tests/TestSuite_qinq_filter.py | 8 ++- tests/TestSuite_qos_api.py | 13 ++-- tests/TestSuite_qos_meter.py | 11 +-- tests/TestSuite_queue_region.py | 18 +++-- tests/TestSuite_queue_start_stop.py | 13 ++-- tests/TestSuite_rss_key_update.py | 10 +-- tests/TestSuite_rss_to_rte_flow.py | 8 +-- tests/TestSuite_rte_flow.py | 11 ++- tests/TestSuite_rteflow_priority.py | 20 +++--- tests/TestSuite_runtime_vf_queue_number.py | 11 +-- ...estSuite_runtime_vf_queue_number_kernel.py | 10 +-- ...stSuite_runtime_vf_queue_number_maxinum.py | 9 +-- tests/TestSuite_rxtx_callbacks.py | 5 +- tests/TestSuite_rxtx_offload.py | 18 +++-- tests/TestSuite_scatter.py | 8 ++- tests/TestSuite_short_live.py | 11 +-- tests/TestSuite_shutdown_api.py | 20 +++--- tests/TestSuite_skeleton.py | 4 +- tests/TestSuite_softnic.py | 15 +++-- tests/TestSuite_speed_capabilities.py | 6 +- tests/TestSuite_sriov_kvm.py | 13 ++-- tests/TestSuite_stats_checks.py | 16 ++--- tests/TestSuite_telemetry.py | 11 +-- tests/TestSuite_testpmd_perf.py | 5 +- tests/TestSuite_timer.py | 5 +- tests/TestSuite_tso.py | 14 ++-- tests/TestSuite_tx_preparation.py | 18 ++--- tests/TestSuite_uni_pkt.py | 11 +-- tests/TestSuite_unit_tests_cmdline.py | 4 +- tests/TestSuite_unit_tests_crc.py | 4 +- tests/TestSuite_unit_tests_cryptodev_func.py | 6 +- tests/TestSuite_unit_tests_dump.py | 4 +- tests/TestSuite_unit_tests_eal.py | 6 +- tests/TestSuite_unit_tests_event_timer.py | 5 +- tests/TestSuite_unit_tests_kni.py | 4 +- tests/TestSuite_unit_tests_loopback.py | 5 +- tests/TestSuite_unit_tests_lpm.py | 4 +- tests/TestSuite_unit_tests_mbuf.py | 4 +- tests/TestSuite_unit_tests_mempool.py | 4 +- tests/TestSuite_unit_tests_pmd_perf.py | 3 +- tests/TestSuite_unit_tests_power.py | 4 +- tests/TestSuite_unit_tests_qos.py | 4 +- tests/TestSuite_unit_tests_ring.py | 4 +- tests/TestSuite_unit_tests_ringpmd.py | 4 +- tests/TestSuite_unit_tests_timer.py | 4 +- tests/TestSuite_userspace_ethtool.py | 20 +++--- tests/TestSuite_vdev_primary_secondary.py | 9 +-- tests/TestSuite_veb_switch.py | 20 +++--- tests/TestSuite_vf_daemon.py | 17 ++--- tests/TestSuite_vf_interrupt_pmd.py | 14 ++-- tests/TestSuite_vf_jumboframe.py | 14 ++-- tests/TestSuite_vf_kernel.py | 18 ++--- tests/TestSuite_vf_l3fwd.py | 13 ++-- tests/TestSuite_vf_l3fwd_em_kernelpf.py | 12 +++- tests/TestSuite_vf_l3fwd_kernelpf.py | 12 +++- tests/TestSuite_vf_l3fwd_lpm_ipv4_kernelpf.py | 12 +++- ...uite_vf_l3fwd_lpm_ipv4_rfc2544_kernelpf.py | 12 +++- tests/TestSuite_vf_l3fwd_lpm_ipv6_kernelpf.py | 12 +++- tests/TestSuite_vf_macfilter.py | 6 +- tests/TestSuite_vf_offload.py | 19 +++--- tests/TestSuite_vf_packet_rxtx.py | 8 +-- tests/TestSuite_vf_port_start_stop.py | 9 +-- tests/TestSuite_vf_rss.py | 10 +-- tests/TestSuite_vf_single_core_perf.py | 13 ++-- tests/TestSuite_vf_smoke.py | 19 +++--- tests/TestSuite_vf_to_vf_nic_bridge.py | 10 +-- tests/TestSuite_vf_vlan.py | 12 ++-- tests/TestSuite_vhost_1024_ethports.py | 4 +- tests/TestSuite_vhost_cbdma.py | 15 +++-- tests/TestSuite_vhost_event_idx_interrupt.py | 9 +-- tests/TestSuite_vhost_multi_queue_qemu.py | 15 +++-- tests/TestSuite_vhost_pmd_xstats.py | 18 ++--- tests/TestSuite_vhost_user_interrupt.py | 7 +- tests/TestSuite_vhost_user_live_migration.py | 11 +-- tests/TestSuite_vhost_virtio_pmd_interrupt.py | 13 ++-- .../TestSuite_vhost_virtio_user_interrupt.py | 5 +- tests/TestSuite_virtio_event_idx_interrupt.py | 11 +-- .../TestSuite_virtio_ipsec_cryptodev_func.py | 16 +++-- tests/TestSuite_virtio_perf_cryptodev_func.py | 10 +-- tests/TestSuite_virtio_pvp_regression.py | 11 +-- tests/TestSuite_virtio_smoke.py | 6 +- tests/TestSuite_virtio_unit_cryptodev_func.py | 10 +-- ...stSuite_virtio_user_as_exceptional_path.py | 12 ++-- ...te_virtio_user_for_container_networking.py | 9 +-- tests/TestSuite_vlan.py | 9 ++- tests/TestSuite_vlan_ethertype_config.py | 20 +++--- tests/TestSuite_vm2vm_virtio_net_perf.py | 13 ++-- tests/TestSuite_vm2vm_virtio_pmd.py | 12 ++-- tests/TestSuite_vm2vm_virtio_user.py | 9 +-- tests/TestSuite_vm_hotplug.py | 7 +- tests/TestSuite_vm_power_manager.py | 11 +-- tests/TestSuite_vm_pw_mgmt_policy.py | 22 +++--- tests/TestSuite_vmdq.py | 9 +-- tests/TestSuite_vmdq_dcb.py | 11 +-- tests/TestSuite_vswitch_sample_cbdma.py | 19 +++--- tests/TestSuite_vxlan.py | 30 ++++----- tests/TestSuite_vxlan_gpe_support_in_i40e.py | 16 +++-- tests/__init__.py | 30 +++++++++ tests/bonding.py | 14 ++-- tests/compress_common.py | 5 +- tests/cryptodev_common.py | 4 +- tests/flexible_common.py | 7 +- tests/perf_test_base.py | 27 +++++--- tests/rte_flow_common.py | 7 +- tests/smoke_base.py | 3 +- tests/vhost_peer_conf.py | 2 +- tools/__init__.py | 30 +++++++++ tools/dump_case.py | 12 ++-- tools/parse_opt.py | 2 +- tools/setup.py | 16 +++-- 336 files changed, 2352 insertions(+), 1852 deletions(-) create mode 100644 dep/__init__.py create mode 100644 dep/scapy_modules/__init__.py create mode 100644 framework/__init__.py rename framework/main.py => main.py (96%) create mode 100644 nics/__init__.py create mode 100644 pyproject.toml create mode 100644 tests/__init__.py create mode 100644 tools/__init__.py