2 * Simple test for validating mtime on a file create and set via utime.
15 void usage(char *prog)
17 fprintf(stderr, "usage: %s <filename>\n", prog);
21 int main(int argc, char *argv[])
23 long before_mknod, after_mknod;
24 long before_utime, after_utime;
25 const char *prog = argv[0];
26 const char *filename = argv[1];
33 before_mknod = time(0);
34 rc = mknod(filename, 0700, S_IFREG);
35 after_mknod = time(0);
36 if (rc && errno != EEXIST) {
37 fprintf(stderr, "%s: mknod(%s) failed: rc %d: %s\n",
38 prog, filename, errno, strerror(errno));
41 rc = stat(filename, &st);
43 fprintf(stderr, "%s: stat(%s) failed: rc %d: %s\n",
44 prog, filename, errno, strerror(errno));
48 if (st.st_mtime < before_mknod || st.st_mtime > after_mknod) {
50 "%s: bad mknod times %lu <= %lu <= %lu false\n",
51 prog, before_mknod, st.st_mtime, after_mknod);
55 printf("%s: good mknod times %lu <= %lu <= %lu\n",
56 prog, before_mknod, st.st_mtime, after_mknod);
61 before_utime = time(0);
62 rc = utime(filename, NULL);
63 after_utime = time(0);
65 fprintf(stderr, "%s: utime(%s) failed: rc %d: %s\n",
66 prog, filename, errno, strerror(errno));
70 rc = stat(filename, &st);
72 fprintf(stderr, "%s: second stat(%s) failed: rc %d: %s\n",
73 prog, filename, errno, strerror(errno));
77 if (st.st_mtime < before_utime || st.st_mtime > after_utime) {
78 fprintf(stderr, "%s: bad utime times %lu <= %lu <= %lu false\n",
79 prog, before_utime, st.st_mtime, after_utime);
83 printf("%s: good utime times %lu <= %lu <= %lu\n",
84 prog, before_utime, st.st_mtime, after_utime);