aboutsummaryrefslogtreecommitdiff
path: root/tests/stat
diff options
context:
space:
mode:
authormax99x <max99x@gmail.com>2011-07-23 05:47:08 +0300
committermax99x <max99x@gmail.com>2011-07-23 05:47:08 +0300
commit586d229ec311daa5e89781eb6da822989e677789 (patch)
tree54997eeeae644838f1318b37eb8c354db83b5354 /tests/stat
parent5f9646ca267736036e87afc965e665539eed3578 (diff)
Resolved some old filesystem TODOs.
Diffstat (limited to 'tests/stat')
-rw-r--r--tests/stat/output.txt28
-rw-r--r--tests/stat/src.c32
2 files changed, 60 insertions, 0 deletions
diff --git a/tests/stat/output.txt b/tests/stat/output.txt
index 5253a834..1e6ae74e 100644
--- a/tests/stat/output.txt
+++ b/tests/stat/output.txt
@@ -108,12 +108,40 @@ S_ISREG: 0
S_ISLNK: 1
S_ISSOCK: 0
+--fstat FILE--
+ret: 0
+errno: 0
+st_dev: 1
+st_ino: 3
+st_mode: 0100777
+st_nlink: 1
+st_rdev: 0
+st_size: 6
+st_atime: 1200000000
+st_mtime: 1200000000
+st_ctime: 1200000000
+st_blksize: 4096
+st_blocks: 1
+S_ISBLK: 0
+S_ISCHR: 0
+S_ISDIR: 0
+S_ISFIFO: 0
+S_ISREG: 1
+S_ISLNK: 0
+S_ISSOCK: 0
+
--chmod FILE--
ret: 0
errno: 0
st_mode: 0100222
st_mtime changed: 1
+--fchmod FILE--
+ret: 0
+errno: 0
+st_mode: 0100777
+st_mtime changed: 1
+
--chmod FOLDER--
ret: 0
errno: 0
diff --git a/tests/stat/src.c b/tests/stat/src.c
index 4dc78805..3b3b8421 100644
--- a/tests/stat/src.c
+++ b/tests/stat/src.c
@@ -1,6 +1,7 @@
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#include <fcntl.h>
#include <sys/stat.h>
int main() {
@@ -121,6 +122,29 @@ int main() {
printf("S_ISSOCK: %d\n", S_ISSOCK(s.st_mode));
memset(&s, 0, sizeof s);
+ printf("\n--fstat FILE--\n");
+ printf("ret: %d\n", fstat(open("/test/file", O_RDONLY, 0777), &s));
+ printf("errno: %d\n", errno);
+ printf("st_dev: %llu\n", s.st_dev);
+ printf("st_ino: %lu\n", s.st_ino);
+ printf("st_mode: 0%o\n", s.st_mode);
+ printf("st_nlink: %d\n", s.st_nlink);
+ printf("st_rdev: %llu\n", s.st_rdev);
+ printf("st_size: %ld\n", s.st_size);
+ printf("st_atime: %ld\n", s.st_atime);
+ printf("st_mtime: %ld\n", s.st_mtime);
+ printf("st_ctime: %ld\n", s.st_ctime);
+ printf("st_blksize: %ld\n", s.st_blksize);
+ printf("st_blocks: %ld\n", s.st_blocks);
+ printf("S_ISBLK: %d\n", S_ISBLK(s.st_mode));
+ printf("S_ISCHR: %d\n", S_ISCHR(s.st_mode));
+ printf("S_ISDIR: %d\n", S_ISDIR(s.st_mode));
+ printf("S_ISFIFO: %d\n", S_ISFIFO(s.st_mode));
+ printf("S_ISREG: %d\n", S_ISREG(s.st_mode));
+ printf("S_ISLNK: %d\n", S_ISLNK(s.st_mode));
+ printf("S_ISSOCK: %d\n", S_ISSOCK(s.st_mode));
+ memset(&s, 0, sizeof s);
+
printf("\n--chmod FILE--\n");
printf("ret: %d\n", chmod("/test/file", 0200));
printf("errno: %d\n", errno);
@@ -129,6 +153,14 @@ int main() {
printf("st_mtime changed: %d\n", s.st_mtime != 1200000000l);
memset(&s, 0, sizeof s);
+ printf("\n--fchmod FILE--\n");
+ printf("ret: %d\n", fchmod(open("/test/file", O_WRONLY, 0777), 0777));
+ printf("errno: %d\n", errno);
+ stat("/test/file", &s);
+ printf("st_mode: 0%o\n", s.st_mode);
+ printf("st_mtime changed: %d\n", s.st_mtime != 1200000000l);
+ memset(&s, 0, sizeof s);
+
printf("\n--chmod FOLDER--\n");
printf("ret: %d\n", chmod("/test", 0400));
printf("errno: %d\n", errno);