On 01/18/2013 05:19 PM, Jeremy Kerr wrote:
> This change adds a few initial efivarfs tests to the
> tools/testing/selftests directory.
>
Nice idea. I might add a few look test cases or try some fs testsuites
on efivarfs.
> + # the open-unlink test relies on deleting the Lang variable at
> + # present; we don't want to do this on an actual machine.
It seems open-unlink already goes to delete a custom variable.
> + if ! grep -q 'model name.* QEMU' /proc/cpuinfo; then
> + echo $msg efivarfs tests should only be run on a VM >&2
> + exit 0
> + fi
This won't allow me to test. I use qemu-kvm -cpu host, /proc/cpuinfo
doesn't have the string "QEMU".
How about grep -q OVMF /sys/firmware/acpi/tables/DSDT? Or add a prompt
if it can't be determined?
> +# test that we can remove a variable by issuing a write with only
> +# attributes specified
> +test_zero_size_delete()
> +{
> + local attrs='\x07\x00\x00\x00'
> + local file=$efivarfs_mount/test.3-$test_guid
> +
> + printf "$attrs\x00" > $file
> +
> + if [ ! -e $file ]; then
> + echo "$file does not exist" >&2
> + exit 1
> + fi
> +
test_zero_size_delete can't reproduce the file lingering bug on unpatched
3.8-rc4.
A remount is required to reproduce the bug for newly created variable, here:
umount $efivarfs_mount
mount -t efivarfs - $efivarfs_mount
If a variable exists at boot time, then no remount is required. This is why
I choosed RTC-$GUID. With this remount, I can verify the bug is fixed by
efivarfs: Delete dentry from dcache in efivarfs_file_write().
> + /* create a test variable */
> + fd = open(path, O_WRONLY | O_CREAT);
> + if (fd < 0) {
> + perror("open(O_WRONLY)");
> + return EXIT_FAILURE;
> + }
> +
> + rc = write(fd, buf, sizeof(buf));
> + if (rc != sizeof(buf)) {
> + perror("write");
> + return EXIT_FAILURE;
> + }
> +
> + close(fd);
> +
Likewise, we might want to test this with remount after file creation.
> + fd = open(path, O_RDONLY);
> + if (fd < 0) {
> + perror("open");
> + return EXIT_FAILURE;
> + }
--
Lingzhu Xiang
--
To unsubscribe from this list: send the line "unsubscribe linux-efi" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html