## qemu nvdimm is pmem_compat (dax-class instead of dax-mode)
daxctl-devices.sh
## Expected output:
~/ndctl/test$ ./regression.sh
test ./blk-exhaust.sh: succeeded
test ./btt-check.sh: succeeded
test ./btt-pad-compat.sh: succeeded
test ./label-compat.sh: succeeded
test ./multi-dax.sh: succeeded
test ./rescan-partitions.sh: succeeded
test ./sector-mode.sh: succeeded
test ./dax-ext4.sh: succeeded
test ./dax-xfs.sh: succeeded
## Expected return code:
0 = All tests have succeeded
1 = A test has failed (check /tmp/regression.log)
Signed-off-by: Rafael David Tinoco <email address hidden>
----
# security team
Please note that, security wise, you're probably interested in the security.sh test. It uses keys to lock/unlock nvdimm devices (an interesting feature for 20.04 I suppose). I'm not entirely sure the emulated nvdimms will be enough for this test to run BUT I can help you after all this has been placed somewhere and is up and running.
# other todos:
i might be able to fix the TODOs here but I'm trying to be careful on how much time Im spending on this (balancing with other things for 20.04).
@Christian:
Do you think this patch could be put as a delta for ndctl/test directory ? I'm thinking in supportability in the next years to come. Keeping it out of the source package might make it hard to either extend it and/or fix changes.
Note: ndctl/test is not used for anything in binary packages, it would just be in the source packages. I could even add those as debian/tests for autopkgtest, and skip tests if being ran in a machine that doesn't support nvdimms (even suggesting to Debian).
Thoughts ?
PS: I'm pretty sure with those tests we're able to maintain this and catch regressions regarding PMEM-based block devices being accessed with DAX and/or through MMAPs (having the mmap tests fixed would be also beneficial).
For now I'm considering this done, missing only a place to merge this.
A few comments on the test (explained in the git commit log):
----
[PATCH] canonical: convert ndctl/test into qa-regression-ndctl tests
## good tests (bad results mean something)
blk-exhaust.sh pad-compat. sh partitions. sh
btt-check.sh
btt-
label-compat.sh
multi-dax.sh
rescan-
sector-mode.sh
dax-ext4.sh
dax-xfs.sh
## TODO: needs more work. locking/unlocking nvdimms using keyutils
security.sh
## TODO: do a merge proposal to debian fio pkg enabling pmem engines
device- dax-fio. sh
## TODO: enable this tests by compiling "test/" directory (next phase)
mmap.sh
monitor.sh
## alignment issues (full ns boundaries not aligned, TODO: smaller ns might work)
create.sh
## needs injection (error or smart) and qemu nvdimm emulation does not support it
btt-errors.sh errors. sh meta-errors. sh
clear.sh
daxdev-
inject-error.sh
inject-smart.sh
pfn-
pmem-errors.sh
## qemu nvdimm is pmem_compat (dax-class instead of dax-mode)
daxctl- devices. sh
## Expected output:
~/ndctl/test$ ./regression.sh compat. sh: succeeded partitions. sh: succeeded
test ./blk-exhaust.sh: succeeded
test ./btt-check.sh: succeeded
test ./btt-pad-
test ./label-compat.sh: succeeded
test ./multi-dax.sh: succeeded
test ./rescan-
test ./sector-mode.sh: succeeded
test ./dax-ext4.sh: succeeded
test ./dax-xfs.sh: succeeded
## Expected return code:
0 = All tests have succeeded .log)
1 = A test has failed (check /tmp/regression
Signed-off-by: Rafael David Tinoco <email address hidden>
----
# security team
Please note that, security wise, you're probably interested in the security.sh test. It uses keys to lock/unlock nvdimm devices (an interesting feature for 20.04 I suppose). I'm not entirely sure the emulated nvdimms will be enough for this test to run BUT I can help you after all this has been placed somewhere and is up and running.
# other todos:
i might be able to fix the TODOs here but I'm trying to be careful on how much time Im spending on this (balancing with other things for 20.04).
@Christian:
Do you think this patch could be put as a delta for ndctl/test directory ? I'm thinking in supportability in the next years to come. Keeping it out of the source package might make it hard to either extend it and/or fix changes.
Note: ndctl/test is not used for anything in binary packages, it would just be in the source packages. I could even add those as debian/tests for autopkgtest, and skip tests if being ran in a machine that doesn't support nvdimms (even suggesting to Debian).
Thoughts ?
PS: I'm pretty sure with those tests we're able to maintain this and catch regressions regarding PMEM-based block devices being accessed with DAX and/or through MMAPs (having the mmap tests fixed would be also beneficial).
For now I'm considering this done, missing only a place to merge this.
Thank you!