NVMe/tnvme
< NVMe
NVMe Compliance
nvmecompliance · GitHub - https://github.com/nvmecompliance
- tnvme - NVMe Compliance Test
- dnvme - Linux driver for NVMe Compliance Suite
- manage - NVMe Compliance Suite Management
Setting up tnvme
Here are some general instructions for setting up and executing dnvme/tnvme:
# One-time setup: Follow instructions in: https://github.com/nvmecompliance/tnvme/wiki/Compiling sudo apt-get install gcc make pkg-config libboost-thread-dev libboost-chrono-dev libboost-filesystem-dev libxml++2.6-dev libxml2-dev subversion # build and install dnvme driver git clone https://github.com/nvmecompliance/dnvme cd dnvme make clean make sudo make install modprobe -r nvme modprobe dnvme cd .. # build tnvme test framework and tests git clone https://github.com/nvmecompliance/tnvme cd tnvme make clean make # create log folder sudo mkdir Logs # load driver and run a test modprobe -r nvme modprobe dnvme sudo ./tnvme -d /dev/nvme0 -v 1.1 sudo ./tnvme --test=20:0.1.0 -d /dev/nvme0 -v 1.1
List Tests
cd tnvme ./tnvme --summary
0: Group:Informative 0.0.0: Test:Dump all registers 1.0.0: Test:Create an ACQ & ASQ 1.1.0: Test:Issue the identify cmd 1.2.0: Test:Issue the get features cmd 1: Group:PCI registers syntactic 0.0.0: Test:Validate all PCI registers syntactically etc...
Test Details
cd tnvme ./tnvme --detail=0:0.0.0
0: GrpPciRegisters: PCI registers syntactic 0.0.0: Test: Validate all PCI registers syntactically Compliance: revision 1.0b, section 2 Validates the following; the RO fields which are not implementation specific contain default values; The RO fields cannot be written; All ASCII fields only contain chars 0x20 to 0x7e.
Run Test
cd tnvme ./tnvme --test=0:1.1.0
Run Test Group
cd tnvme ./tnvme --test=3