[LTP] [PATCH 2/2] syscalls/quotactl03.c: add new regression test

Cyril Hrubis chrubis@suse.cz
Tue Apr 11 16:44:15 CEST 2017


Hi!
> +#include "tst_test.h"
> +
> +#if defined(HAVE_XFS_QUOTA) && (defined(HAVE_QUOTAV2) || defined(HAVE_QUOTAV1))
> +
> +# ifdef Q_XGETNEXTQUOTA

Here as well, can we add fallback definition and handle EINVAL (and
possibly ENOSYS) from the quotaclt as TCONF?

> +static const char mntpoint[] = "mnt_point";
> +static uint32_t test_id = 4294967292;
                             ^
			     This would be a bit clealer when written in
			     hexadecimal which should be 0xfffffffc

> +static void verify_quota(void)
> +{
> +	struct fs_disk_quota res_dquota;
> +
> +	res_dquota.d_id = 1;
> +
> +	TEST(quotactl(QCMD(Q_XGETNEXTQUOTA, USRQUOTA), tst_device->dev,
> +		test_id, (void *)&res_dquota));
> +	if (TEST_RETURN != -1) {
> +		tst_res(TFAIL, "quotactl() found the next active ID: %u "
> +			"unexpectedly when asking for it past UINT_MAX.",
                                     ^
			  Maybe this is too verbose, we could have ended
			  the message after "unexpectedly"
> +			res_dquota.d_id);
> +		return;
> +	}
> +
> +	if (TEST_ERRNO != ENOENT) {
> +		tst_res(TFAIL | TTERRNO, "quotactl() couldn't find the next "
> +			"active ID expectedly when asking for it past UINT_MAX"
> +			", but returns %s instead of ENOENT.",

                        "quotaclt() failed unexpectedly with %s expected ENOENT"

			or something similar would suffice here, let's
			keep the message short and to the point

> +			tst_strerrno(TEST_ERRNO));
> +	} else {
> +		tst_res(TPASS, "quotactl() couldn't find the next active ID "
> +			"expectedly when asking for it past UINT_MAX, and "
> +			"return ENOENT.");

                         Here as well something as:

			 "quotaclt() failed with ENOENT as expected"

> +	}
> +}
> +
> +static struct tst_test test = {
> +	.tid = "quotactl03",
> +	.needs_tmpdir = 1,
> +	.needs_root = 1,
> +	.test_all = verify_quota,
> +	.mount_device = 1,
> +	.dev_fs_type = "xfs",
> +	.mntpoint = mntpoint,
> +	.mnt_data = "usrquota",
> +};
> +# else
> +	TST_TEST_TCONF("This system didn't support Q_XGETNEXTQUOTA");
> +# endif
> +
> +#else
> +	TST_TEST_TCONF("This system didn't support quota or xfs quota");
> +#endif
> -- 
> 1.8.3.1
> 
> 
> 
> 
> -- 
> Mailing list info: https://lists.linux.it/listinfo/ltp

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list