[PATCH v1 2/2] tests/quotactl-xfs.c: fix typos and unify code
Zhibin Li
08826794brmt at gmail.com
Fri Jun 15 08:05:24 UTC 2018
I haven't checked decoding of successful quotaclt-xfs(,-v) because for now
I don't know how to solve or workaround the alignment problems described in
my status report #4. I'm doing research but I' m not sure what I can find
eventually (considering there is already a structure fs_quota_statv with
appropriate layout). Any suggestions or guidance?
On Fri, Jun 15, 2018 at 3:58 PM Zhibin Li <08826794brmt at gmail.com> wrote:
> * quotactl-xfs.c: Fix disorder of PRINT_FIELD_U and check_quota function
> invocations; use check_quota function for invalid commands; remove unused
> variable rc.
> (invalid_cmd): New variable.
> ---
> tests/quotactl-xfs.c | 39 ++++++++++++++++++++++++---------------
> 1 file changed, 24 insertions(+), 15 deletions(-)
>
> diff --git a/tests/quotactl-xfs.c b/tests/quotactl-xfs.c
> index fab451e2..c08b1584 100644
> --- a/tests/quotactl-xfs.c
> +++ b/tests/quotactl-xfs.c
> @@ -142,14 +142,14 @@ print_xquota_stat(int rc, void *ptr, void *arg)
> # if VERBOSE
> printf(", qs_flags=");
> printflags(xfs_quota_flags, qs->qs_flags, "XFS_QUOTA_???");
> + PRINT_FIELD_U(", ", *qs, qs_incoredqs);
> PRINT_FIELD_U(", qs_uquota={", qs->qs_uquota, qfs_ino);
> PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nblks);
> PRINT_FIELD_U(", ", qs->qs_uquota, qfs_nextents);
> PRINT_FIELD_U("}, qs_gquota={", qs->qs_gquota, qfs_ino);
> PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nblks);
> PRINT_FIELD_U(", ", qs->qs_gquota, qfs_nextents);
> - PRINT_FIELD_U("}, ", *qs, qs_incoredqs);
> - PRINT_FIELD_D(", ", *qs, qs_btimelimit);
> + PRINT_FIELD_D("}, ", *qs, qs_btimelimit);
> PRINT_FIELD_D(", ", *qs, qs_itimelimit);
> PRINT_FIELD_D(", ", *qs, qs_rtbtimelimit);
> PRINT_FIELD_U(", ", *qs, qs_bwarnlimit);
> @@ -207,7 +207,7 @@ main(void)
> char bogus_addr_str[sizeof(void *) * 2 + sizeof("0x")];
> char unterminated_str[sizeof(void *) * 2 + sizeof("0x")];
>
> - long rc;
> + static char invalid_cmd[1024];
> TAIL_ALLOC_OBJECT_CONST_PTR(struct fs_disk_quota, xdq);
> TAIL_ALLOC_OBJECT_CONST_PTR(struct fs_quota_stat, xqstat);
> TAIL_ALLOC_OBJECT_CONST_PTR(struct fs_quota_statv, xqstatv);
> @@ -234,12 +234,12 @@ main(void)
> "|XFS_QUOTA_GDQ_ACCT|XFS_QUOTA_GDQ_ENFD"
> "|XFS_QUOTA_PDQ_ENFD|0xdeadbec0]");
>
> - rc = syscall(__NR_quotactl, QCMD(Q_XQUOTAON, 0xfacefeed),
> bogus_dev,
> - bogus_id, bogus_addr);
> - printf("quotactl(QCMD(Q_XQUOTAON, %#x /* ???QUOTA */)"
> - ", %s, %p) = %s\n",
> - QCMD_TYPE(QCMD(Q_XQUOTAON, 0xfacefeed)),
> - bogus_dev_str, bogus_addr, sprintrc(rc));
> + snprintf(invalid_cmd, sizeof(invalid_cmd),
> + "QCMD(Q_XQUOTAON, %#x /* ???QUOTA */)",
> + QCMD_TYPE(QCMD(Q_XQUOTAON, 0xfacefeed)));
> + check_quota(CQF_ID_SKIP,
> + QCMD(Q_XQUOTAON, 0xfacefeed), invalid_cmd,
> + bogus_dev, bogus_dev_str, bogus_addr);
>
>
> /* Q_XQUOTAOFF */
> @@ -264,11 +264,11 @@ main(void)
> /* Q_XGETQUOTA */
>
> /* Trying our best to get successful result */
> - check_quota(CQF_ADDR_CB, ARG_STR(QCMD(Q_GETQUOTA, USRQUOTA)),
> + check_quota(CQF_ADDR_CB, ARG_STR(QCMD(Q_XGETQUOTA, USRQUOTA)),
> ARG_STR("/dev/sda1"), getuid(), xdq, print_xdisk_quota,
> (intptr_t) 1);
>
> - check_quota(CQF_ADDR_CB, ARG_STR(QCMD(Q_GETQUOTA, GRPQUOTA)),
> + check_quota(CQF_ADDR_CB, ARG_STR(QCMD(Q_XGETQUOTA, GRPQUOTA)),
> ARG_STR(NULL), -1, xdq, print_xdisk_quota, (intptr_t)
> 2);
>
>
> @@ -298,21 +298,30 @@ main(void)
> ARG_STR("/dev/sda1"), xqstat, print_xquota_stat,
> (intptr_t) 1);
>
> check_quota(CQF_ID_SKIP | CQF_ADDR_CB,
> - ARG_STR(QCMD(Q_XGETQSTATV, PRJQUOTA)),
> + ARG_STR(QCMD(Q_XGETQSTAT, USRQUOTA)),
> + ARG_STR("NULL"), xqstat, print_xquota_stat, (intptr_t)
> 2);
> +
> + check_quota(CQF_ID_SKIP,
> + ARG_STR(QCMD(Q_XGETQSTAT, PRJQUOTA)),
> unterminated, unterminated_str,
> - xqstat + 1, print_xquota_stat, (intptr_t) 2);
> + xqstat + 1);
>
>
> /* Q_XGETQSTATV */
>
> check_quota(CQF_ID_SKIP | CQF_ADDR_CB,
> - ARG_STR(QCMD(Q_XGETQSTAT, USRQUOTA)),
> - ARG_STR("/dev/sda1"), xqstatv, print_xquota_statv, 1);
> + ARG_STR(QCMD(Q_XGETQSTATV, USRQUOTA)),
> + ARG_STR("/dev/sda1"), xqstatv, print_xquota_statv,
> (intptr_t) 1);
>
> check_quota(CQF_ID_SKIP | CQF_ADDR_CB,
> ARG_STR(QCMD(Q_XGETQSTATV, GRPQUOTA)),
> ARG_STR(NULL), xqstatv, print_xquota_statv, (intptr_t)
> 2);
>
> + check_quota(CQF_ID_SKIP,
> + ARG_STR(QCMD(Q_XGETQSTATV, PRJQUOTA)),
> + unterminated, unterminated_str,
> + xqstatv + 1);
> +
>
> /* Q_XQUOTARM */
>
> --
> 2.14.4
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20180615/299584ea/attachment.html>
More information about the Strace-devel
mailing list