tests/quota: consistently clear quota property between tests

When run in isolation, quota_005_pos would fail in cleanup because it
would attempt restore the previous quota, which was 0, and so get an
error (because you can't set quota to '0', you have to use 'none').

It worked as part of the quota tag set because the previous tests did
not clean up their quota, so there was always a non-zero quota to return
to.

This adds a simple quota reset function, and has all quota tests run it
at cleanup. For the ones that weren't cleaning up, they now do, and for
quota_005_pos, which was trying to do the right thing, it now just
resets it.

Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Rob Norris <rob.norris@klarasystems.com>
Closes #16097
This commit is contained in:
Rob Norris 2024-04-16 14:56:35 +10:00 committed by Brian Behlendorf
parent f75574cbaa
commit 26d49fec5f
7 changed files with 17 additions and 2 deletions

View File

@ -95,3 +95,10 @@ function exceed_quota
log_fail "Returned error code: $zret. Expected: $EDQUOT." log_fail "Returned error code: $zret. Expected: $EDQUOT."
return 0 return 0
} }
function reset_quota
{
typeset FILESYSTEM="$1"
log_must zfs set quota=none $FILESYSTEM
}

View File

@ -64,6 +64,8 @@ function cleanup
# #
wait_freeing $TESTPOOL wait_freeing $TESTPOOL
sync_pool $TESTPOOL sync_pool $TESTPOOL
reset_quota $TESTPOOL/$TESTFS
} }
log_onexit cleanup log_onexit cleanup

View File

@ -64,6 +64,8 @@ function cleanup
wait_freeing $TESTPOOL wait_freeing $TESTPOOL
sync_pool $TESTPOOL sync_pool $TESTPOOL
reset_quota $TESTPOOL/$TESTFS
} }
log_onexit cleanup log_onexit cleanup

View File

@ -67,6 +67,8 @@ function cleanup
# #
wait_freeing $TESTPOOL wait_freeing $TESTPOOL
sync_pool $TESTPOOL sync_pool $TESTPOOL
reset_quota $TESTPOOL/$TESTCTR/$TESTFS1
} }
log_onexit cleanup log_onexit cleanup

View File

@ -65,6 +65,8 @@ function cleanup
wait_freeing $TESTPOOL wait_freeing $TESTPOOL
sync_pool $TESTPOOL sync_pool $TESTPOOL
reset_quota $TESTPOOL/$TESTCTR/$TESTFS1
} }
log_onexit cleanup log_onexit cleanup

View File

@ -50,7 +50,7 @@ function cleanup
{ {
datasetexists $fs_child && destroy_dataset $fs_child datasetexists $fs_child && destroy_dataset $fs_child
log_must zfs set quota=$quota_val $fs reset_quota $fs
} }
log_onexit cleanup log_onexit cleanup

View File

@ -50,7 +50,7 @@ log_assert "Verify cannot set quota lower than the space currently in use"
function cleanup function cleanup
{ {
log_must zfs set quota=none $TESTPOOL/$TESTFS reset_quota $TESTPOOL/$TESTFS
} }
log_onexit cleanup log_onexit cleanup