Rune - Content-locking work 1/2
[rune.git] / tests / stat.d
1 #!/usr/local/bin/rune -x
2 #
3
4 limport "sys";
5 import "stdio";
6
7 int
8 main(int ac, char **av)
9 {
10         FStat st;
11         Fs fs;
12
13         if (ac == 1) {
14                 stdio.stderr->format("One file to test stat, "
15                                      "two to test utimes\n");
16                 return;
17         }
18
19         st.stat(av[1]);
20         stdio.stdout->format("STAT\terror=%d, size=%d\n", st.error, st.size);
21         st.size = -1;
22         st.lstat(av[1]);
23         stdio.stdout->format("LSTAT\terror=%d, size=%d\n", st.error, st.size);
24         fs.open(av[1], O_RDONLY);
25         if (fs.error == 0) {
26                 st.size = -1;
27                 st.fstat(fs.fd);
28                 stdio.stdout->format("FSTAT\terror=%d, size=%d\n",
29                                      st.error, st.size);
30         }
31         if (ac == 3) {
32                 if (st.stat(av[2]) == 0) {
33                         stdio.stdout->format("before: %d %d\n",
34                                              st.atime, st.mtime);
35                 }
36
37                 if (st.stat(av[1]) == 0) {
38                         stdio.stdout->format("set-to: %d %d\n",
39                                              st.atime, st.mtime);
40                         st.utimes(av[2]);
41                         if (st.stat(av[2]) == 0) {
42                                 stdio.stdout->format("after:  %d %d\n",
43                                                      st.atime, st.mtime);
44                         }
45                 }
46         }
47 }