dts--tests(四)

本文介绍了一个针对DPDK的单元测试套件,该套件专注于测试Random Early Detection(RED)、Metering和Scheduling等QoS特性。通过运行不同的自动化测试,如RED测试、计费测试和调度测试,确保DPDK的QoS组件按预期工作。

unit_tests.py

"""
DPDK Test suite.

This TestSuite runs the unit tests included in DPDK for Random Early
Detection, Metering and Scheduling QoS features.
"""

from test_case import TestCase

#
#
# Test class.
#


class TestUnitTestsQos(TestCase):

    #
    #
    #
    # Test cases.
    #

    def set_up_all(self):
        """
        Run at the start of each test suite.

        Qos Prerequisites
        """
        pass
    def set_up(self):
        """
        Run before each test case.
        """
        pass

    def test_red(self):
        """
        Run RED autotest.
        """

        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 30)
        out = self.dut.send_expect("red_autotest", "RTE>>", 180)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")

    def test_meter(self):
        """
        Run meter autotest.
        """

        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 30)
        out = self.dut.send_expect("meter_autotest", "RTE>>", 5)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")

    def test_sched(self):
        """
        Run sched autotest.
        """

        [arch, machine, env, toolchain] = self.target.split('-')
        self.verify(arch in ["x86_64" ,"arm64"], "Sched auto_test only support in x86_64 or arm64")

        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 30)
        out = self.dut.send_expect("sched_autotest", "RTE>>", 5)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")
        
    #unit_tests_cmdline
    def test_cmdline(self):
        """
        Run cmdline autotests in RTE comand line.
        """

        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("cmdline_autotest", "RTE>>", 60)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")
    
    #unit_tests_ring
    def test_ring(self):
        """
        Run ring autotest.
        """

        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("ring_autotest", "RTE>>", 36000)
        self.verify("Test OK" in out, "Test failed")
    
    def test_ring_performance(self):
        """
        Run ring performance autotest.
        """

        self.dut.send_expect("./%s/app/test -n 1 -c e" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("ring_perf_autotest", "RTE>>", 210)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")

    #unit_tests_rimgpmd
    def test_ring_pmd(self):
        """
        Run Inter-VM share memory test.
        """
        dev_str = "--vdev=net_ring0 --vdev=net_ring1"

        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 10)
        out = self.dut.send_expect("ring_pmd_autotest", "RTE>>", 120)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Default no eth_ring devices Test failed")

        self.dut.send_expect("./%s/app/test -n 1 -c f %s" % (self.target, dev_str), "R.*T.*E.*>.*>", 10)
        out = self.dut.send_expect("ring_pmd_autotest", "RTE>>", 120)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Two eth_ring devices test failed")
    
    #unit_tests_timer
    def test_timer(self):
        """
        Run timer autotest.
        """
        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("timer_autotest", "RTE>>", 60)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")

    def test_timer_perf(self):
    
        """
        Run timer autotest.
        """
        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("timer_perf_autotest", "RTE>>", 60)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")
                
    #unit_test_power
    def test_power(self):
        """
        Run power autotest.
        """
        self.dut.send_expect("./%s/app/test -n 1 -c ffff" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("power_autotest", "RTE>>", 60)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")

    def test_power_acpi(self):
        """
        Run power acpi cpu frequency autotest.
        """
        self.dut.send_expect("./%s/app/test -n 1 -c ffff" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("power_acpi_cpufreq_autotest", "RTE>>", 60)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")
        
    #unit_tests_mempool
    def test_mempool(self):
        """
        Run memory pool autotest.
        """

        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("mempool_autotest", "RTE>>", 120)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")

    def test_mempool_perf(self):
        """
        Run memory pool performance autotest.
        """
        self.dut.send_expect("./%s/app/test -n 1 -c e" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("mempool_perf_autotest", "RTE>>", 1200)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")
        
    #unit_tests_mbuf
    def test_mbuf(self):
        """
        Run mbuf autotest.
        """

        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("mbuf_autotest", "RTE>>", 180)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")
        
    #unit_tests_lpm
    def test_lpm(self):
        """
        Run lpm for IPv6 autotest.
        """
        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("lpm_autotest", "RTE>>", 120)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")

    def test_lpm_ipv6(self):
        """
        Run lpm for IPv6 autotest.
        """
        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("lpm6_autotest", "RTE>>", 120)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")

    #unit_tests_crc
    def test_cmdline(self):
        """
        Run cmdline autotests in RTE comand line.
        """

        self.dut.send_expect("./%s/app/test -n 1 -c f" % self.target, "R.*T.*E.*>.*>", 60)
        out = self.dut.send_expect("crc_autotest", "RTE>>", 60)
        self.dut.send_expect("quit", "# ")
        self.verify("Test OK" in out, "Test failed")

    def tear_down(self):
        """
        Run after each test case.
        """
        pass

    def tear_down_all(self):
        """
        Run after each test suite.
        """
        pass

转载于:https://www.cnblogs.com/eilinge/p/9802505.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值