]> git.proxmox.com Git - mirror_zfs.git/blobdiff - tests/zfs-tests/cmd/libzfs_input_check/libzfs_input_check.c
OpenZFS 9102 - zfs should be able to initialize storage devices
[mirror_zfs.git] / tests / zfs-tests / cmd / libzfs_input_check / libzfs_input_check.c
index 88a18d8f0f6a288db756d6a4b03e3b0286b14562..61ac2feccac36d7bbd9e2a17d751f8c49d55636e 100644 (file)
@@ -642,6 +642,22 @@ test_unload_key(const char *dataset)
        IOC_INPUT_TEST(ZFS_IOC_UNLOAD_KEY, dataset, NULL, NULL, EACCES);
 }
 
+static void
+test_vdev_initialize(const char *pool)
+{
+       nvlist_t *required = fnvlist_alloc();
+       nvlist_t *vdev_guids = fnvlist_alloc();
+
+       fnvlist_add_uint64(vdev_guids, "path", 0xdeadbeefdeadbeef);
+       fnvlist_add_uint64(required, ZPOOL_INITIALIZE_COMMAND,
+           POOL_INITIALIZE_DO);
+       fnvlist_add_nvlist(required, ZPOOL_INITIALIZE_VDEVS, vdev_guids);
+
+       IOC_INPUT_TEST(ZFS_IOC_POOL_INITIALIZE, pool, required, NULL, EINVAL);
+       nvlist_free(vdev_guids);
+       nvlist_free(required);
+}
+
 static int
 zfs_destroy(const char *dataset)
 {
@@ -732,6 +748,8 @@ zfs_ioc_input_tests(const char *pool)
        test_change_key(dataset);
        test_unload_key(dataset);
 
+       test_vdev_initialize(pool);
+
        /*
         * cleanup
         */
@@ -869,6 +887,7 @@ validate_ioc_values(void)
            ZFS_IOC_BASE + 76 == ZFS_IOC_REMAP &&
            ZFS_IOC_BASE + 77 == ZFS_IOC_POOL_CHECKPOINT &&
            ZFS_IOC_BASE + 78 == ZFS_IOC_POOL_DISCARD_CHECKPOINT &&
+           ZFS_IOC_BASE + 79 == ZFS_IOC_POOL_INITIALIZE &&
            LINUX_IOC_BASE + 1 == ZFS_IOC_EVENTS_NEXT &&
            LINUX_IOC_BASE + 2 == ZFS_IOC_EVENTS_CLEAR &&
            LINUX_IOC_BASE + 3 == ZFS_IOC_EVENTS_SEEK);