powerpc/selftests: Add test for papr-vpd
authorNathan Lynch <nathanl@linux.ibm.com>
Tue, 12 Dec 2023 17:01:59 +0000 (11:01 -0600)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 13 Dec 2023 10:38:21 +0000 (21:38 +1100)
commit9118c5d32bddb5f75bc4f9f31218e70317702502
tree84187e46639d4cc4cee2e2947f73dc54b2d3a87d
parent905b9e48786ec55b2c469db77fb46e20bf3e4901
powerpc/selftests: Add test for papr-vpd

Add selftests for /dev/papr-vpd, exercising the common expected use
cases:

* Retrieve all VPD by passing an empty location code.
* Retrieve the "system VPD" by passing a location code derived from DT
  root node properties, as done by the vpdupdate command.

The tests also verify that certain intended properties of the driver
hold:

* Passing an unterminated location code to PAPR_VPD_CREATE_HANDLE gets
  EINVAL.
* Passing a NULL location code pointer to PAPR_VPD_CREATE_HANDLE gets
  EFAULT.
* Closing the device node without first issuing a
  PAPR_VPD_CREATE_HANDLE command to it succeeds.
* Releasing a handle without first consuming any data from it
  succeeds.
* Re-reading the contents of a handle returns the same data as the
  first time.

Some minimal validation of the returned data is performed.

The tests are skipped on systems where the papr-vpd driver does not
initialize, making this useful only on PowerVM LPARs at this point.

Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20231212-papr-sys_rtas-vs-lockdown-v6-12-e9eafd0c8c6c@linux.ibm.com
tools/testing/selftests/powerpc/Makefile
tools/testing/selftests/powerpc/papr_vpd/.gitignore [new file with mode: 0644]
tools/testing/selftests/powerpc/papr_vpd/Makefile [new file with mode: 0644]
tools/testing/selftests/powerpc/papr_vpd/papr_vpd.c [new file with mode: 0644]