* Re: [LTP] [PATCH 2/2 v2] quotactl/quotactl02.c: create a case to test basic flags of quotactl(2)
[not found] ` <521C46FB.7020308@cn.fujitsu.com>
@ 2013-08-27 12:51 ` chrubis
[not found] ` <521D710C.8030609@cn.fujitsu.com>
0 siblings, 1 reply; 5+ messages in thread
From: chrubis @ 2013-08-27 12:51 UTC (permalink / raw)
To: DAN LI; +Cc: LTP list
Hi!
> +/*
> + * func_qoff() - check the functionality of the Q_XQUOTAOFF flag of quotactl
> + */
These type of comments is not usefull at all. Just name the function so
that it's clear what it does, for this one something like
check_qoff(void) would do.
> +static void func_qoff(void)
> +{
> + int ret;
> +
> + ret = ltp_syscall(__NR_quotactl, USRQCMD(Q_XGETQSTAT),
> + dev, uid, &qstat);
> + if (ret != 0)
> + tst_brkm(TBROK | TERRNO, cleanup, "fail to get quota stat");
> +
> + if (qstat.qs_flags & XFS_QUOTA_UDQ_ENFD) {
> + tst_resm(TFAIL, "enforcement is not off");
> + return;
> + }
> +
> + tst_resm(TPASS, "enforcement is off");
> +}
> +
> +/*
> + * func_qon() - check the functionality of the Q_XQUOTAON flag of quotactl
> + */
> +static void func_qon(void)
> +{
> + int ret;
> + ret = ltp_syscall(__NR_quotactl, USRQCMD(Q_XGETQSTAT),
> + dev, uid, &qstat);
> + if (ret != 0)
> + tst_brkm(TBROK | TERRNO, cleanup, "fail to get quota stat");
> +
> + if (!(qstat.qs_flags & XFS_QUOTA_UDQ_ENFD)) {
> + tst_resm(TFAIL, "enforcement is off");
> + return;
> + }
> +
> + tst_resm(TPASS, "enforcement is on");
> +}
> +
> +/*
> + * func_getq() - check the functionality of the Q_XGETQUOTA flag of quotactl
> + */
> +static void func_getq(void)
> +{
> + if (!(dquota.d_flags & XFS_USER_QUOTA)) {
> + tst_resm(TFAIL, "get incorrect quota type");
> + return;
> + }
> +
> + tst_resm(TPASS, "get the right quota type");
> +}
> +
> +/*
> + * setup_setqlim() - set up for the Q_XSETQLIM flag of quotactl
> + */
> +static void setup_setqlim(void)
> +{
> + dquota.d_rtb_hardlimit = RTBLIMIT;
> + dquota.d_fieldmask = FS_DQ_LIMIT_MASK;
> +}
You don't need to have function to statically initialize a structure, I
would just initialized it statically and passed right pointer to the
testcase addr.
> +/*
> + * func_setqlim() - check the functionality of the Q_XSETQLIM flag of quotactl
> + */
> +static void func_setqlim(void)
> +{
> + int ret;
> + ret = ltp_syscall(__NR_quotactl, USRQCMD(Q_XGETQUOTA),
> + dev, uid, &dquota);
> + if (ret != 0)
> + tst_brkm(TFAIL | TERRNO, NULL,
> + "fail to get quota information");
> +
> + if (dquota.d_rtb_hardlimit != RTBLIMIT) {
> + tst_resm(TFAIL, "limit on RTB, except %lu get %lu",
> + (uint64_t)RTBLIMIT,
> + (uint64_t)dquota.d_rtb_hardlimit);
> + return;
> + }
> +
> + tst_resm(TPASS, "quotactl works fine with Q_XSETQLIM");
> +}
> +
> +/*
> + * func_getqstat() - check the functionality of
> + * the Q_XGETQSTAT flag of quotactl
> + */
> +static void func_getqstat(void)
> +{
> + if (qstat.qs_version != FS_QSTAT_VERSION) {
> + tst_resm(TFAIL, "get incorrect qstat version");
> + return;
> + }
> +
> + tst_resm(TPASS, "get correct qstat version");
> +}
> +
> +static void setup(void)
> +{
> +
> + tst_require_root(NULL);
> +
> + TEST_PAUSE;
> +
> + tst_tmpdir();
> +
> + SAFE_MKDIR(cleanup, mntpoint, 0755);
> +
> + uid = 0;
> + strncpy(dev, block_dev, PATH_MAX);
I think that copying block_dev to dev is pointless, I haven't seen a
single place where block_dev couldn't be used directly, or am I
mistaken?
> + tst_mkfs(NULL, dev, "xfs", "-f");
I still think that the '-f' should go to the library instead. Or we can
zero start of the device (where the filesystem superblock and signatures
are, which should be first few bytes) before we call the mkfs.
--
Cyril Hrubis
chrubis@suse.cz
------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and
AppDynamics. Performance Central is your source for news, insights,
analysis and resources for efficient Application Performance Management.
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [LTP] [PATCH 2/2 v2] quotactl/quotactl02.c: create a case to test basic flags of quotactl(2)
[not found] ` <521D710C.8030609@cn.fujitsu.com>
@ 2013-08-28 9:38 ` chrubis
[not found] ` <521DC969.3090103@cn.fujitsu.com>
0 siblings, 1 reply; 5+ messages in thread
From: chrubis @ 2013-08-28 9:38 UTC (permalink / raw)
To: DAN LI; +Cc: LTP list
Hi!
> > You don't need to have function to statically initialize a structure, I
> > would just initialized it statically and passed right pointer to the
> > testcase addr.
>
> I am afraid I don't catch your meaning.
>
> This function setup_setqlim set up the structure "dquota" for the setqlim test,
> and crucially, the structure "dquota" is used by other tests, so its value will
> change after statically initializing.
>
You can define as many structures as you want, one for this particular
test and one for the rest of the testcases for example, does the syscall
modify the structure?
> >
> >> + tst_mkfs(NULL, dev, "xfs", "-f");
> >
> > I still think that the '-f' should go to the library instead. Or we can
> > zero start of the device (where the filesystem superblock and signatures
> > are, which should be first few bytes) before we call the mkfs.
>
> I vote to "add the -f parameter in the tst_mkfs() if fs_type is xfs"
>
Ok, I will fix that.
--
Cyril Hrubis
chrubis@suse.cz
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [LTP] [PATCH 2/2 v2] quotactl/quotactl02.c: create a case to test basic flags of quotactl(2)
[not found] ` <521DC969.3090103@cn.fujitsu.com>
@ 2013-08-28 9:58 ` chrubis
0 siblings, 0 replies; 5+ messages in thread
From: chrubis @ 2013-08-28 9:58 UTC (permalink / raw)
To: DAN LI; +Cc: LTP list
Hi!
> > You can define as many structures as you want, one for this particular
> > test and one for the rest of the testcases for example, does the syscall
> > modify the structure?
>
> Yeah, calling quotactl() with "Q_XGETQUOTA" will modify this structure.
Ok. I did not know this.
--
Cyril Hrubis
chrubis@suse.cz
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [LTP] [PATCH 2/2 v3] quotactl/quotactl02.c: create a case to test basic flags of quotactl(2)
[not found] ` <521EB988.7000407@cn.fujitsu.com>
@ 2013-09-02 14:57 ` chrubis
0 siblings, 0 replies; 5+ messages in thread
From: chrubis @ 2013-09-02 14:57 UTC (permalink / raw)
To: DAN LI; +Cc: ltp-list
Hi!
> +static void setup(void)
> +{
> +
> + tst_require_root(NULL);
> +
> + TEST_PAUSE;
> +
> + tst_tmpdir();
> +
> + SAFE_MKDIR(cleanup, mntpoint, 0755);
> +
> + uid = 0;
One last nit. What is the point of setting uid to -1 first and then
changing it here to 0? Can't we just set it to 0 from the start?
> + tst_mkfs(NULL, block_dev, "xfs", NULL);
> +
> + if (mount(block_dev, mntpoint, "xfs", 0, "uquota") < 0)
> + tst_brkm(TFAIL | TERRNO, NULL, "mount(2) fail");
> +
> +}
--
Cyril Hrubis
chrubis@suse.cz
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [LTP] [PATCH 1/2 v2] Check if xfs quota is available
[not found] <521C4688.9020305@cn.fujitsu.com>
[not found] ` <521C46FB.7020308@cn.fujitsu.com>
[not found] ` <521EB988.7000407@cn.fujitsu.com>
@ 2013-09-04 12:03 ` chrubis
2 siblings, 0 replies; 5+ messages in thread
From: chrubis @ 2013-09-04 12:03 UTC (permalink / raw)
To: DAN LI; +Cc: LTP list
Hi!
>
> Define HAVE_XFS_QUOTA to show if xfs quota is available.
>
> +AC_DEFUN([LTP_CHECK_XFS_QUOTACTL],[dnl
> + AC_LINK_IFELSE([AC_LANG_SOURCE([
> +#include <xfs/xqm.h>
> +#include <sys/quota.h>
> +int main(void) {
> + struct fs_quota_stat qstat;
> + return quotactl(QCMD(Q_XGETQSTAT, USRQUOTA), "/dev/null", geteuid(),
> + (caddr_t) &qstat);
> +}])],[has_xfs_quota="yes"])
> +
> +if test "x$has_xfs_quota" = xyes; then
> + AC_DEFINE(HAVE_XFS_QUOTA,1,[Define to 1 if you have xfs quota])
> +else
> + AC_MSG_WARN(No xfs quota support)
> +fi
> +])
I've modified this part to print the more standard:
Checking for XFS quota (xfs/xqm.h)...{yes,no}
rather than issuing the warning and commited both patches.
Thanks.
--
Cyril Hrubis
chrubis@suse.cz
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-09-04 12:02 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <521C4688.9020305@cn.fujitsu.com>
[not found] ` <521C46FB.7020308@cn.fujitsu.com>
2013-08-27 12:51 ` [LTP] [PATCH 2/2 v2] quotactl/quotactl02.c: create a case to test basic flags of quotactl(2) chrubis
[not found] ` <521D710C.8030609@cn.fujitsu.com>
2013-08-28 9:38 ` chrubis
[not found] ` <521DC969.3090103@cn.fujitsu.com>
2013-08-28 9:58 ` chrubis
[not found] ` <521EB988.7000407@cn.fujitsu.com>
2013-09-02 14:57 ` [LTP] [PATCH 2/2 v3] " chrubis
2013-09-04 12:03 ` [LTP] [PATCH 1/2 v2] Check if xfs quota is available chrubis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox