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