NVMe/tnvme

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:

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
 * 1) One-time setup:

git clone https://github.com/nvmecompliance/dnvme cd dnvme make clean make sudo make install modprobe -r nvme modprobe dnvme
 * 1) build and install dnvme driver

cd ..

git clone https://github.com/nvmecompliance/tnvme cd tnvme make clean make
 * 1) build tnvme test framework and tests

sudo mkdir Logs
 * 1) create log folder

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
 * 1) load driver and run a test

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