From 8f85847d93b9713d101f6e0a77d4564c03af156f Mon Sep 17 00:00:00 2001 From: pschwan Date: Thu, 3 Jul 2003 19:55:17 +0000 Subject: [PATCH] Merge b_devel into b_orphan (20030703 update tag) --- lustre/tests/utime.c | 56 ++++++++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/lustre/tests/utime.c b/lustre/tests/utime.c index b59cc6c..c6a5d7d 100644 --- a/lustre/tests/utime.c +++ b/lustre/tests/utime.c @@ -10,6 +10,7 @@ #include #include #include +#include void usage(char *prog) { @@ -21,6 +22,8 @@ int main(int argc, char *argv[]) { long before_mknod, after_mknod; long before_utime, after_utime; + const char *prog = argv[0]; + const char *filename = argv[1]; struct stat st; int rc; @@ -28,56 +31,57 @@ int main(int argc, char *argv[]) usage(argv[0]); before_mknod = time(0); - rc = mknod(argv[1], 0700, S_IFREG); + rc = mknod(filename, 0700, S_IFREG); after_mknod = time(0); - if (rc) { + if (rc && errno != EEXIST) { fprintf(stderr, "%s: mknod(%s) failed: rc %d: %s\n", - argv[0], argv[1], rc, strerror(rc)); + prog, filename, errno, strerror(errno)); return 2; - } + } else if (!rc) { + rc = stat(filename, &st); + if (rc) { + fprintf(stderr, "%s: stat(%s) failed: rc %d: %s\n", + prog, filename, errno, strerror(errno)); + return 3; + } - rc = stat(argv[1], &st); - if (rc) { - fprintf(stderr, "%s: stat(%s) failed: rc %d: %s\n", - argv[0], argv[1], rc, strerror(rc)); - return 3; - } + if (st.st_mtime < before_mknod || st.st_mtime > after_mknod) { + fprintf(stderr, + "%s: bad mknod times %lu <= %lu <= %lu false\n", + prog, before_mknod, st.st_mtime, after_mknod); + return 4; + } - if (st.st_mtime < before_mknod || st.st_mtime > after_mknod) { - fprintf(stderr, "%s: bad mknod times %lu <= %lu <= %lu false\n", - argv[0], before_mknod, st.st_mtime, after_mknod); - return 4; - } - - printf("%s: good mknod times %lu <= %lu <= %lu\n", - argv[0], before_mknod, st.st_mtime, after_mknod); + printf("%s: good mknod times %lu <= %lu <= %lu\n", + prog, before_mknod, st.st_mtime, after_mknod); - sleep(5); + sleep(5); + } before_utime = time(0); - rc = utime(argv[0], NULL); + rc = utime(filename, NULL); after_utime = time(0); if (rc) { - fprintf(stderr, "%s: stat(%s) failed: rc %d: %s\n", - argv[0], argv[1], rc, strerror(rc)); + fprintf(stderr, "%s: utime(%s) failed: rc %d: %s\n", + prog, filename, errno, strerror(errno)); return 5; } - rc = stat(argv[1], &st); + rc = stat(filename, &st); if (rc) { fprintf(stderr, "%s: second stat(%s) failed: rc %d: %s\n", - argv[0], argv[1], rc, strerror(rc)); + prog, filename, errno, strerror(errno)); return 6; } if (st.st_mtime < before_utime || st.st_mtime > after_utime) { fprintf(stderr, "%s: bad utime times %lu <= %lu <= %lu false\n", - argv[0], before_utime, st.st_mtime, after_utime); + prog, before_utime, st.st_mtime, after_utime); return 7; } printf("%s: good utime times %lu <= %lu <= %lu\n", - argv[0], before_mknod, st.st_mtime, after_mknod); + prog, before_utime, st.st_mtime, after_utime); return 0; } -- 1.8.3.1