2 * Simple test for validating mtime on a file create and set via utime.
14 void usage(char *prog)
16 fprintf(stderr, "usage: %s <filename>\n", prog);
20 int main(int argc, char *argv[])
22 long before_mknod, after_mknod;
23 long before_utime, after_utime;
30 before_mknod = time(0);
31 rc = mknod(argv[1], 0700, S_IFREG);
32 after_mknod = time(0);
34 fprintf(stderr, "%s: mknod(%s) failed: rc %d: %s\n",
35 argv[0], argv[1], rc, strerror(rc));
39 rc = stat(argv[1], &st);
41 fprintf(stderr, "%s: stat(%s) failed: rc %d: %s\n",
42 argv[0], argv[1], rc, strerror(rc));
46 if (st.st_mtime < before_mknod || st.st_mtime > after_mknod) {
47 fprintf(stderr, "%s: bad mknod times %lu <= %lu <= %lu false\n",
48 argv[0], before_mknod, st.st_mtime, after_mknod);
52 printf("%s: good mknod times %lu <= %lu <= %lu\n",
53 argv[0], before_mknod, st.st_mtime, after_mknod);
57 before_utime = time(0);
58 rc = utime(argv[0], NULL);
59 after_utime = time(0);
61 fprintf(stderr, "%s: stat(%s) failed: rc %d: %s\n",
62 argv[0], argv[1], rc, strerror(rc));
66 rc = stat(argv[1], &st);
68 fprintf(stderr, "%s: second stat(%s) failed: rc %d: %s\n",
69 argv[0], argv[1], rc, strerror(rc));
73 if (st.st_mtime < before_utime || st.st_mtime > after_utime) {
74 fprintf(stderr, "%s: bad utime times %lu <= %lu <= %lu false\n",
75 argv[0], before_utime, st.st_mtime, after_utime);
79 printf("%s: good utime times %lu <= %lu <= %lu\n",
80 argv[0], before_mknod, st.st_mtime, after_mknod);