_fail "exclusive values don't match after rescan"
 }
 
-#basic limit testing
-_limit_test()
+#basic exceed limit testing
+_limit_test_exceed()
 {
        run_check $BTRFS_UTIL_PROG subvol create $SCRATCH_MNT/a
        run_check $BTRFS_UTIL_PROG quota enable $SCRATCH_MNT
        dd if=/dev/urandom of=$SCRATCH_MNT/a/file bs=10M count=1 >> \
                $seqres.full 2>&1
        [ $? -ne 0 ] || _fail "quota should have limited us"
+}
+
+#basic noexceed limit testing
+_limit_test_noexceed()
+{
+       run_check $BTRFS_UTIL_PROG subvol create $SCRATCH_MNT/a
+       run_check $BTRFS_UTIL_PROG quota enable $SCRATCH_MNT
+       subvolid=$(_btrfs_get_subvolid $SCRATCH_MNT a)
+       run_check $BTRFS_UTIL_PROG qgroup limit 5M 0/$subvolid $SCRATCH_MNT
        dd if=/dev/urandom of=$SCRATCH_MNT/a/file bs=4M count=1 >> \
                $seqres.full 2>&1
        [ $? -eq 0 ] || _fail "should have been allowed to write"
 
 _scratch_mkfs > /dev/null 2>&1
 _scratch_mount
-_limit_test
+_limit_test_exceed
+_scratch_unmount
+
+_scratch_mkfs > /dev/null 2>&1
+_scratch_mount
+_limit_test_noexceed
 
 # success, all done
 echo "Silence is golden"