Hi, DTS developers/users,

 

With DPDK development rapidly, more and more test suites were developed in DTS. (150+ test suites and 3k+ test cases in DTS). Meanwhile, paralleling execution tests for NICs/crypto/other device on same DUT become important for reducing execution time for covering all test cases. So we plan to enhance the DTS, for

·        Improve test suite quality

·        Unified test capability/function into framework

·        Paralleling execution

 

So we draft a DTS development plan, and share with you.

 

Looking forward to hear your thoughts, ideas and suggestions.

 

/Zhaoyan

 

DTS framework enhancement

=========================

 

Unified packet sending for functionality test

              * Implement all packet sending features in Packet Class

              * Remove others sending functions in DTS framework

              * Sending packet from Tester only

 

Generic EAL options generator for DPDK based application

              * Generate EAL options for DPDK app, and consider the assigned hardware resource for test, instead of whole DUT

              * Test suite can overwrite the options, in restricted range

              * Define hardware resource in crb.cfg, port.cfg and pktgen.cfg

 

Global resource management

              * Global driver load or unload, vfio-pci, igb_uio, uio_pci_generic

              * Define a parameter to decside if insmod/rmmod, if the module updated. otherwise, keep this module on host.

              * External_memory setup

              * Define DUT's cores mask in crb configuration

              * Define DUT's ports mask

              * Define physical ports in crb config

 

Clean up unused APIs, unused imported libraries, and unused APIs

              * plotting.py, plotgraph.py, numpy, matplotlib

              * e.g. self.tester.run_rfc2544, has been replaced by pktgen class

              * Replace private texttable.py with public version

 

All-in-one configuration file

              * Support configure all information in one configuration file for easy using

              * yaml file is better

 

Prepare to move to Python 3, make code be compatible with py2 and py3

 

Generate auto-script for all DTS dependencies

              * Update requirements.txt

              * Generate script for binary dependencies for compilation python packages

 

Release DTS container version

 

 

Test Suites cleanness

=================

 

Move to new packet sending API

              * Update all tests, which generate packets and send packets

 

Move to generic EAL generator API

              * Update all tests which use DPDK based application with new EAL string

 

Clean up "sleep"

              * Replace "sleep" with a stable checking mechanism

 

Replace "pktgen app" with "testpmd app" for testing

              * pktgen app needs be built for special DPDK version and too heavy for a simple function test, replace it in test case with testpmd app

Clean up absolute path

              * Replace "/tmp" with "/tmp/<dts_pid_random>/", or relative path "tmp".

              * Replace specific OS path in test case

 

Clean up test case dependencies, (files, libraries or tools)

              * Check all test suites, and add dependencies into auto-script or requirements.txt