Revert "Temporarily disable the reguid test."
[zfs.git] / cmd / ztest / ztest.c
index 7e941b5..0dace49 100644 (file)
 #include <sys/dsl_scan.h>
 #include <sys/zio_checksum.h>
 #include <sys/refcount.h>
+#include <sys/zfeature.h>
 #include <stdio.h>
 #include <stdio_ext.h>
 #include <stdlib.h>
@@ -360,13 +361,7 @@ ztest_info_t ztest_info[] = {
        { ztest_fault_inject,                   1,      &zopt_sometimes },
        { ztest_ddt_repair,                     1,      &zopt_sometimes },
        { ztest_dmu_snapshot_hold,              1,      &zopt_sometimes },
-       /*
-        * The reguid test is currently broken. Disable it until
-        * we get around to fixing it.
-        */
-#if 0
        { ztest_reguid,                         1,      &zopt_sometimes },
-#endif
        { ztest_spa_rename,                     1,      &zopt_rarely    },
        { ztest_scrub,                          1,      &zopt_rarely    },
        { ztest_dsl_dataset_promote_busy,       1,      &zopt_rarely    },
@@ -5771,10 +5766,9 @@ make_random_props(void)
 {
        nvlist_t *props;
 
-       if (ztest_random(2) == 0)
-               return (NULL);
-
        VERIFY(nvlist_alloc(&props, NV_UNIQUE_NAME, 0) == 0);
+       if (ztest_random(2) == 0)
+               return (props);
        VERIFY(nvlist_add_uint64(props, "autoreplace", 1) == 0);
 
        return (props);
@@ -5789,6 +5783,7 @@ ztest_init(ztest_shared_t *zs)
 {
        spa_t *spa;
        nvlist_t *nvroot, *props;
+       int i;
 
        mutex_init(&ztest_vdev_lock, NULL, MUTEX_DEFAULT, NULL);
        rw_init(&ztest_name_lock, NULL, RW_DEFAULT, NULL);
@@ -5805,6 +5800,13 @@ ztest_init(ztest_shared_t *zs)
        nvroot = make_vdev_root(NULL, NULL, ztest_opts.zo_vdev_size, 0,
            0, ztest_opts.zo_raidz, zs->zs_mirrors, 1);
        props = make_random_props();
+       for (i = 0; i < SPA_FEATURES; i++) {
+               char *buf;
+               VERIFY3S(-1, !=, asprintf(&buf, "feature@%s",
+                   spa_feature_table[i].fi_uname));
+               VERIFY3U(0, ==, nvlist_add_uint64(props, buf, 0));
+               free(buf);
+       }
        VERIFY3U(0, ==, spa_create(ztest_opts.zo_pool, nvroot, props,
            NULL, NULL));
        nvlist_free(nvroot);