Closed Luflosi closed 2 years ago
Cool. I think your tests are enough if they are just intended for the package. Maybe you could unmount and remount the device before checking the file contents, to confirm that they are persisted. But there's probably no point in going further, there are too many edge cases and we have xfstests for dealing with those.
Thanks for your feedback and time. I'm already unmounting and remounting the device once before checking the file contents. I don't think doing that every time before checking the file contents provides any additional value. In case you're interested, here is my pull request to Nixpkgs: https://github.com/NixOS/nixpkgs/pull/141122.
The last missing piece for perfect NixOS integration is a NixOS module. This will allow awesome things like specifying
in the configuration, which is all that is required to automatically mount the filesystem during boot, no need to install anything or configure anything else. As part of writing a NixOS module, it is good practice to write a test for a basic sanity check and to gain some confidence, that at least the basic stuff all works as expected. Here is how the test looks currently:
Most of the space in the file is taken up by a Python script. The strings passed to
machine.succeed()
are shell script one-liners that all need to succeed for the test to succeed. The test builds a qemu VM with an empty 1GB disk image, loads the APFS kernel module and then executes the tests. Here is the NixOS test for ZFS. It basically tests smb file sharing, encryption and forefully importing a pool on a machine with a different host ID, for two versions of ZFS and the Linux kernel. I'd like to hear your feedback, if you think this is an adequate amount of testing or if you would test more or test less? Should I maybe reboot the VM somewhere during the test? Maybe test long filenames? Callapfsck
more often? Create a whole bunch of files and see if any disappear? Something else entirely?