* [LTP] [PATCH] mount/mount03.c: Test feature MS_NOATIME of mount(2)
@ 2013-07-01 10:58 DAN LI
2013-07-01 11:52 ` chrubis
0 siblings, 1 reply; 2+ messages in thread
From: DAN LI @ 2013-07-01 10:58 UTC (permalink / raw)
To: LTP list
Additional test for features MS_NOATIME.
Signed-off-by: DAN LI <li.dan@cn.fujitsu.com>
---
testcases/kernel/syscalls/mount/mount03.c | 47 +++++++++++++++++++++++++++++--
1 file changed, 45 insertions(+), 2 deletions(-)
diff --git a/testcases/kernel/syscalls/mount/mount03.c b/testcases/kernel/syscalls/mount/mount03.c
index b1aa71f..370b880 100644
--- a/testcases/kernel/syscalls/mount/mount03.c
+++ b/testcases/kernel/syscalls/mount/mount03.c
@@ -20,7 +20,7 @@
*
* TEST TITLE : Test for checking mount(2) flags
*
- * TEST CASE TOTAL : 6
+ * TEST CASE TOTAL : 7
*
* AUTHOR : Nirmala Devi Dhanasekar <nirmala.devi@wipro.com>
*
@@ -35,6 +35,7 @@
* 4) MS_SYNCHRONOUS - writes are synced at once.
* 5) MS_REMOUNT - alter flags of a mounted FS.
* 6) MS_NOSUID - ignore suid and sgid bits.
+ * 7) MS_NOATIME - do not update access times.
*
* Setup:
* Setup signal handling.
@@ -83,7 +84,7 @@ static int test_rwflag(int, int);
static int setup_uid(void);
char *TCID = "mount03";
-int TST_TOTAL = 6;
+int TST_TOTAL = 7;
#define DEFAULT_FSTYPE "ext2"
#define TEMP_FILE "temp_file"
@@ -115,6 +116,7 @@ long rwflags[] = {
MS_SYNCHRONOUS,
MS_RDONLY,
MS_NOSUID,
+ MS_NOATIME,
};
static option_t options[] = {
@@ -208,6 +210,8 @@ int test_rwflag(int i, int cnt)
{
int ret, fd, pid, status;
char nobody_uid[] = "nobody";
+ time_t atime;
+ struct stat file_stat;
struct passwd *ltpuser;
switch (i) {
@@ -370,6 +374,45 @@ int test_rwflag(int i, int cnt)
return 1;
}
}
+ case 6:
+ /* Validate MS_NOATIME flag of mount call */
+
+ snprintf(file, PATH_MAX, "%satime", path_name);
+ fd = open(file, O_CREAT | O_RDWR, S_IRWXU);
+ if (fd == -1) {
+ tst_resm(TWARN | TERRNO, "opening %s failed", file);
+ return 1;
+ }
+
+ if (write(fd, "TEST_MS_NOATIME", 15) != 15) {
+ tst_resm(TWARN | TERRNO, "write %s failed", file);
+ return 1;
+ }
+
+ if (fstat(fd, &file_stat) == -1) {
+ tst_resm(TWARN | TERRNO, "stat %s failed #1", file);
+ return 1;
+ }
+
+ atime = file_stat.st_atime;
+
+ if (read(fd, NULL, 20) == -1) {
+ tst_resm(TWARN | TERRNO, "read %s failed", file);
+ return 1;
+ }
+
+ if (fstat(fd, &file_stat) == -1) {
+ tst_resm(TWARN | TERRNO, "stat %s failed #2", file);
+ return 1;
+ }
+
+ close(fd);
+
+ if (file_stat.st_atime != atime) {
+ tst_resm(TWARN, "access time is updated");
+ return 1;
+ }
+ return 0;
}
return 0;
}
--
1.8.1
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [LTP] [PATCH] mount/mount03.c: Test feature MS_NOATIME of mount(2)
2013-07-01 10:58 [LTP] [PATCH] mount/mount03.c: Test feature MS_NOATIME of mount(2) DAN LI
@ 2013-07-01 11:52 ` chrubis
0 siblings, 0 replies; 2+ messages in thread
From: chrubis @ 2013-07-01 11:52 UTC (permalink / raw)
To: DAN LI; +Cc: LTP list
Hi!
> + case 6:
> + /* Validate MS_NOATIME flag of mount call */
> +
> + snprintf(file, PATH_MAX, "%satime", path_name);
> + fd = open(file, O_CREAT | O_RDWR, S_IRWXU);
> + if (fd == -1) {
> + tst_resm(TWARN | TERRNO, "opening %s failed", file);
> + return 1;
> + }
> +
> + if (write(fd, "TEST_MS_NOATIME", 15) != 15) {
> + tst_resm(TWARN | TERRNO, "write %s failed", file);
> + return 1;
> + }
> +
> + if (fstat(fd, &file_stat) == -1) {
> + tst_resm(TWARN | TERRNO, "stat %s failed #1", file);
> + return 1;
> + }
> +
> + atime = file_stat.st_atime;
> +
The time_t, if I'm not mistaken, has resolution in seconds, so you need
to sleep a second here before you call the read() bellow to be sure
timestamp is different at the time you try to read.
Moreover the whole testcase should better be cleaned up (it doesn't use
the tst_require_root() and does some strange/unnecessary things in the
temp dir).
--
Cyril Hrubis
chrubis@suse.cz
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-07-01 11:51 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-01 10:58 [LTP] [PATCH] mount/mount03.c: Test feature MS_NOATIME of mount(2) DAN LI
2013-07-01 11:52 ` chrubis
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox