* [LTP] [PATCH 1/2] mount/mount03.c: clean up
@ 2013-07-02 6:21 DAN LI
2013-07-02 6:23 ` [LTP] [PATCH 2/2] mount/mount03.c: Test feature MS_NOATIME of mount(2) DAN LI
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: DAN LI @ 2013-07-02 6:21 UTC (permalink / raw)
To: LTP list
Clean up mount03.c:
xxx func() -> xxx func(void)
clean up setup()
Signed-off-by: DAN LI <li.dan@cn.fujitsu.com>
---
testcases/kernel/syscalls/mount/mount03.c | 47 ++++++++++---------------------
1 file changed, 15 insertions(+), 32 deletions(-)
diff --git a/testcases/kernel/syscalls/mount/mount03.c b/testcases/kernel/syscalls/mount/mount03.c
index b1aa71f..8b2d3e4 100644
--- a/testcases/kernel/syscalls/mount/mount03.c
+++ b/testcases/kernel/syscalls/mount/mount03.c
@@ -85,6 +85,7 @@ static int setup_uid(void);
char *TCID = "mount03";
int TST_TOTAL = 6;
+#define EXEC_COMMAND "cp"
#define DEFAULT_FSTYPE "ext2"
#define TEMP_FILE "temp_file"
#define FILE_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
@@ -106,7 +107,6 @@ static char read_buffer[BUFSIZ];
static char path_name[PATH_MAX];
static char testhome_path[PATH_MAX];
static char file[PATH_MAX];
-static char *cmd = "cp";
long rwflags[] = {
MS_RDONLY,
@@ -375,7 +375,7 @@ int test_rwflag(int i, int cnt)
}
/* setup_uid() - performs setup for NOUID test */
-int setup_uid()
+int setup_uid(void)
{
int pid, status;
char command[PATH_MAX];
@@ -387,7 +387,8 @@ int setup_uid()
return 1;
case 0:
/* Put command into string */
- sprintf(command, "%s %s %s", cmd, testhome_path, path_name);
+ sprintf(command, "%s %s %s",
+ EXEC_COMMAND, testhome_path, path_name);
/* Run command to cp file to right spot */
if (system(command) == 0)
@@ -410,25 +411,17 @@ int setup_uid()
}
}
-void setup()
+void setup(void)
{
- int fd;
char path[PATH_MAX];
- char *test_home;
struct stat setuid_test_stat;
tst_sig(FORK, DEF_HANDLER, cleanup);
- /* Check whether we are root */
- if (geteuid() != 0) {
- free(fs_type);
- tst_brkm(TBROK, NULL, "Test must be run as root");
- }
+ tst_require_root(NULL);
tst_tmpdir();
- test_home = get_current_dir_name();
-
sprintf(mntpoint, "mnt_%d", getpid());
if (mkdir(mntpoint, DIR_MODE))
@@ -444,38 +437,28 @@ void setup()
path_name, DIR_MODE);
snprintf(file, PATH_MAX, "%s/setuid_test", path_name);
- fd = open(file, O_CREAT | O_TRUNC, S_IRWXU);
- if (fd == -1)
+ if (open(file, O_CREAT | O_TRUNC, S_IRWXU) == -1)
tst_brkm(TBROK, cleanup, "open file failed");
- close(fd);
- if (stat(file, &setuid_test_stat) < 0) {
+ if (stat(file, &setuid_test_stat) < 0)
tst_brkm(TBROK, cleanup, "stat for setuid_test failed");
- } else {
- if ((setuid_test_stat.st_uid || setuid_test_stat.st_gid) &&
- chown(file, 0, 0) < 0)
- tst_brkm(TBROK, cleanup,
- "chown for setuid_test failed");
-
- if (setuid_test_stat.st_mode != SUID_MODE &&
- chmod(file, SUID_MODE) < 0)
- tst_brkm(TBROK, cleanup,
- "setuid for setuid_test failed");
- }
+
+ if (setuid_test_stat.st_mode != SUID_MODE && chmod(file, SUID_MODE) < 0)
+ tst_brkm(TBROK, cleanup,
+ "setuid for setuid_test failed");
/*
* under temporary directory
*/
+ strcpy(testhome_path, file);
strncpy(path, path_name, PATH_MAX);
snprintf(path_name, PATH_MAX, "%s/%s/", path, mntpoint);
- strcpy(testhome_path, test_home);
- strcat(testhome_path, "/setuid_test");
TEST_PAUSE;
}
-void cleanup()
+void cleanup(void)
{
free(fs_type);
@@ -487,7 +470,7 @@ void cleanup()
/*
* issue a help message
*/
-void help()
+void help(void)
{
printf("-T type : specifies the type of filesystem to be mounted."
" Default ext2.\n");
--
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] 6+ messages in thread
* [LTP] [PATCH 2/2] mount/mount03.c: Test feature MS_NOATIME of mount(2)
2013-07-02 6:21 [LTP] [PATCH 1/2] mount/mount03.c: clean up DAN LI
@ 2013-07-02 6:23 ` DAN LI
2013-07-02 6:35 ` [LTP] [PATCH 2/2 v2] " DAN LI
2013-07-09 14:42 ` [LTP] [PATCH 1/2] mount/mount03.c: clean up chrubis
2 siblings, 0 replies; 6+ messages in thread
From: DAN LI @ 2013-07-02 6:23 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 | 46 +++++++++++++++++++++++++++++--
1 file changed, 44 insertions(+), 2 deletions(-)
diff --git a/testcases/kernel/syscalls/mount/mount03.c b/testcases/kernel/syscalls/mount/mount03.c
index 8b2d3e4..cb99887 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 EXEC_COMMAND "cp"
#define DEFAULT_FSTYPE "ext2"
@@ -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,44 @@ 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] 6+ messages in thread
* [LTP] [PATCH 2/2 v2] mount/mount03.c: Test feature MS_NOATIME of mount(2)
2013-07-02 6:21 [LTP] [PATCH 1/2] mount/mount03.c: clean up DAN LI
2013-07-02 6:23 ` [LTP] [PATCH 2/2] mount/mount03.c: Test feature MS_NOATIME of mount(2) DAN LI
@ 2013-07-02 6:35 ` DAN LI
2013-07-09 14:57 ` chrubis
2013-07-09 14:42 ` [LTP] [PATCH 1/2] mount/mount03.c: clean up chrubis
2 siblings, 1 reply; 6+ messages in thread
From: DAN LI @ 2013-07-02 6:35 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 | 48 +++++++++++++++++++++++++++++--
1 file changed, 46 insertions(+), 2 deletions(-)
diff --git a/testcases/kernel/syscalls/mount/mount03.c b/testcases/kernel/syscalls/mount/mount03.c
index 8b2d3e4..6974107 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 EXEC_COMMAND "cp"
#define DEFAULT_FSTYPE "ext2"
@@ -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,46 @@ 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;
+
+ sleep(1);
+
+ 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] 6+ messages in thread
* [LTP] [PATCH 2/2 v2] mount/mount03.c: Test feature MS_NOATIME of mount(2)
2013-07-08 5:17 [LTP] [PATCH 1/2 v2] " DAN LI
@ 2013-07-08 5:18 ` DAN LI
0 siblings, 0 replies; 6+ messages in thread
From: DAN LI @ 2013-07-08 5:18 UTC (permalink / raw)
To: LTP list
Additional test for feature MS_NOATIME.
---
testcases/kernel/syscalls/mount/mount03.c | 51 ++++++++++++++++++++++++++++---
1 file changed, 47 insertions(+), 4 deletions(-)
diff --git a/testcases/kernel/syscalls/mount/mount03.c b/testcases/kernel/syscalls/mount/mount03.c
index a4c065a..d3f0733 100644
--- a/testcases/kernel/syscalls/mount/mount03.c
+++ b/testcases/kernel/syscalls/mount/mount03.c
@@ -27,6 +27,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.
*/
#ifndef _GNU_SOURCE
@@ -53,7 +54,7 @@ static void cleanup(void);
static int test_rwflag(int, int);
char *TCID = "mount03";
-int TST_TOTAL = 6;
+int TST_TOTAL = 7;
#define DEFAULT_FSTYPE "ext2"
#define TEMP_FILE "temp_file"
@@ -83,6 +84,7 @@ long rwflags[] = {
MS_SYNCHRONOUS,
MS_RDONLY,
MS_NOSUID,
+ MS_NOATIME,
};
static option_t options[] = {
@@ -161,8 +163,9 @@ int test_rwflag(int i, int cnt)
{
int ret, fd, pid, status;
char nobody_uid[] = "nobody";
+ time_t atime;
struct passwd *ltpuser;
- struct stat setuid_test_stat;
+ struct stat file_stat;
switch (i) {
case 0:
@@ -294,10 +297,10 @@ int test_rwflag(int i, int cnt)
snprintf(file, PATH_MAX, "%ssetuid_test", path_name);
SAFE_FILE_PRINTF(cleanup, file, "TEST FILE");
- if (stat(file, &setuid_test_stat) < 0)
+ if (stat(file, &file_stat) < 0)
tst_brkm(TBROK, cleanup, "stat for setuid_test failed");
- if (setuid_test_stat.st_mode != SUID_MODE &&
+ if (file_stat.st_mode != SUID_MODE &&
chmod(file, SUID_MODE) < 0)
tst_brkm(TBROK, cleanup,
"setuid for setuid_test failed");
@@ -326,6 +329,46 @@ 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;
+
+ sleep(1);
+
+ 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] 6+ messages in thread
* Re: [LTP] [PATCH 1/2] mount/mount03.c: clean up
2013-07-02 6:21 [LTP] [PATCH 1/2] mount/mount03.c: clean up DAN LI
2013-07-02 6:23 ` [LTP] [PATCH 2/2] mount/mount03.c: Test feature MS_NOATIME of mount(2) DAN LI
2013-07-02 6:35 ` [LTP] [PATCH 2/2 v2] " DAN LI
@ 2013-07-09 14:42 ` chrubis
2 siblings, 0 replies; 6+ messages in thread
From: chrubis @ 2013-07-09 14:42 UTC (permalink / raw)
To: DAN LI; +Cc: LTP list
Hi!
> Clean up mount03.c:
> xxx func() -> xxx func(void)
>
> clean up setup()
>
>
> Signed-off-by: DAN LI <li.dan@cn.fujitsu.com>
Sorry it took longer than usuall.
> testcases/kernel/syscalls/mount/mount03.c | 47 ++++++++++---------------------
> 1 file changed, 15 insertions(+), 32 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/mount/mount03.c b/testcases/kernel/syscalls/mount/mount03.c
> index b1aa71f..8b2d3e4 100644
> --- a/testcases/kernel/syscalls/mount/mount03.c
> +++ b/testcases/kernel/syscalls/mount/mount03.c
> @@ -85,6 +85,7 @@ static int setup_uid(void);
> char *TCID = "mount03";
> int TST_TOTAL = 6;
>
> +#define EXEC_COMMAND "cp"
> #define DEFAULT_FSTYPE "ext2"
> #define TEMP_FILE "temp_file"
> #define FILE_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)
> @@ -106,7 +107,6 @@ static char read_buffer[BUFSIZ];
> static char path_name[PATH_MAX];
> static char testhome_path[PATH_MAX];
> static char file[PATH_MAX];
> -static char *cmd = "cp";
>
> long rwflags[] = {
> MS_RDONLY,
> @@ -375,7 +375,7 @@ int test_rwflag(int i, int cnt)
> }
>
> /* setup_uid() - performs setup for NOUID test */
> -int setup_uid()
> +int setup_uid(void)
> {
> int pid, status;
> char command[PATH_MAX];
> @@ -387,7 +387,8 @@ int setup_uid()
> return 1;
> case 0:
> /* Put command into string */
> - sprintf(command, "%s %s %s", cmd, testhome_path, path_name);
> + sprintf(command, "%s %s %s",
> + EXEC_COMMAND, testhome_path, path_name);
>
> /* Run command to cp file to right spot */
> if (system(command) == 0)
What about using SAFE_CP() from safe_file_ops.h?
> @@ -410,25 +411,17 @@ int setup_uid()
> }
> }
>
> -void setup()
> +void setup(void)
> {
> - int fd;
> char path[PATH_MAX];
> - char *test_home;
> struct stat setuid_test_stat;
>
> tst_sig(FORK, DEF_HANDLER, cleanup);
>
> - /* Check whether we are root */
> - if (geteuid() != 0) {
> - free(fs_type);
> - tst_brkm(TBROK, NULL, "Test must be run as root");
> - }
> + tst_require_root(NULL);
>
> tst_tmpdir();
>
> - test_home = get_current_dir_name();
> -
> sprintf(mntpoint, "mnt_%d", getpid());
This getpid() shouldn't be needed as we are in the test tmpdir anyway.
> if (mkdir(mntpoint, DIR_MODE))
> @@ -444,38 +437,28 @@ void setup()
> path_name, DIR_MODE);
>
> snprintf(file, PATH_MAX, "%s/setuid_test", path_name);
> - fd = open(file, O_CREAT | O_TRUNC, S_IRWXU);
> - if (fd == -1)
> + if (open(file, O_CREAT | O_TRUNC, S_IRWXU) == -1)
> tst_brkm(TBROK, cleanup, "open file failed");
> - close(fd);
Why removing the close(fd)?
> - if (stat(file, &setuid_test_stat) < 0) {
> + if (stat(file, &setuid_test_stat) < 0)
> tst_brkm(TBROK, cleanup, "stat for setuid_test failed");
> - } else {
> - if ((setuid_test_stat.st_uid || setuid_test_stat.st_gid) &&
> - chown(file, 0, 0) < 0)
> - tst_brkm(TBROK, cleanup,
> - "chown for setuid_test failed");
> -
> - if (setuid_test_stat.st_mode != SUID_MODE &&
> - chmod(file, SUID_MODE) < 0)
> - tst_brkm(TBROK, cleanup,
> - "setuid for setuid_test failed");
> - }
> +
> + if (setuid_test_stat.st_mode != SUID_MODE && chmod(file, SUID_MODE) < 0)
> + tst_brkm(TBROK, cleanup,
> + "setuid for setuid_test failed");
^
This could now be one line statement if I'm
not mistaken
> /*
> * under temporary directory
> */
> + strcpy(testhome_path, file);
> strncpy(path, path_name, PATH_MAX);
> snprintf(path_name, PATH_MAX, "%s/%s/", path, mntpoint);
> - strcpy(testhome_path, test_home);
> - strcat(testhome_path, "/setuid_test");
>
> TEST_PAUSE;
>
> }
>
> -void cleanup()
> +void cleanup(void)
> {
> free(fs_type);
>
> @@ -487,7 +470,7 @@ void cleanup()
> /*
> * issue a help message
> */
> -void help()
> +void help(void)
> {
> printf("-T type : specifies the type of filesystem to be mounted."
> " Default ext2.\n");
> --
Also please make all internal functions static.
And pretty please remove the absurd fs_type flag allocation.
--
Cyril Hrubis
chrubis@suse.cz
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&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] 6+ messages in thread
* Re: [LTP] [PATCH 2/2 v2] mount/mount03.c: Test feature MS_NOATIME of mount(2)
2013-07-02 6:35 ` [LTP] [PATCH 2/2 v2] " DAN LI
@ 2013-07-09 14:57 ` chrubis
0 siblings, 0 replies; 6+ messages in thread
From: chrubis @ 2013-07-09 14:57 UTC (permalink / raw)
To: DAN LI; +Cc: LTP list
Hi!
> Additional test for features MS_NOATIME.
>
> Signed-off-by: DAN LI <li.dan@cn.fujitsu.com>
> ---
> + 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;
> +
> + sleep(1);
> +
> + 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;
> }
This version looks fine.
--
Cyril Hrubis
chrubis@suse.cz
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&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] 6+ messages in thread
end of thread, other threads:[~2013-07-09 14:56 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-02 6:21 [LTP] [PATCH 1/2] mount/mount03.c: clean up DAN LI
2013-07-02 6:23 ` [LTP] [PATCH 2/2] mount/mount03.c: Test feature MS_NOATIME of mount(2) DAN LI
2013-07-02 6:35 ` [LTP] [PATCH 2/2 v2] " DAN LI
2013-07-09 14:57 ` chrubis
2013-07-09 14:42 ` [LTP] [PATCH 1/2] mount/mount03.c: clean up chrubis
-- strict thread matches above, loose matches on Subject: below --
2013-07-08 5:17 [LTP] [PATCH 1/2 v2] " DAN LI
2013-07-08 5:18 ` [LTP] [PATCH 2/2 v2] mount/mount03.c: Test feature MS_NOATIME of mount(2) DAN LI
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.