summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2013-01-17 22:44:00 +0100
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2013-01-17 22:44:00 +0100
commitbcf1bfabdef4481d4748e6c4a82b579af628fd75 (patch)
tree8da8ac1bd99cc996fb3ab725405a7bb06bdca776 /test
parent1e2e4ac6193ffe0900bd392fa3c596883771eb34 (diff)
statfs: support f_frsize
closes bugzilla #5834 Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'test')
-rw-r--r--test/.gitignore3
-rw-r--r--test/misc/Makefile.in6
-rw-r--r--test/misc/tst-statfs.c33
-rw-r--r--test/misc/tst-statvfs.c28
4 files changed, 70 insertions, 0 deletions
diff --git a/test/.gitignore b/test/.gitignore
index e445ef2f5..c068f8983 100644
--- a/test/.gitignore
+++ b/test/.gitignore
@@ -159,6 +159,8 @@ misc/stdarg
misc/tst-inotify
misc/tst-scandir
misc/tst-seekdir
+misc/tst-statfs
+misc/tst-statvfs
misc/tst-utmp
mmap/mmap
mmap/mmap2
@@ -267,6 +269,7 @@ stdio/64bit
stdio/fclose-loop
stdlib/ptytest
stdlib/qsort
+stdlib/testarc4random
stdlib/testatexit
stdlib/test-canon
stdlib/test-canon2
diff --git a/test/misc/Makefile.in b/test/misc/Makefile.in
index 226321131..9b74d222a 100644
--- a/test/misc/Makefile.in
+++ b/test/misc/Makefile.in
@@ -9,6 +9,12 @@ CFLAGS_dirent64 := -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS
DODIFF_dirent := 1
DODIFF_dirent64 := 1
+DODIFF_tst-statfs := 1
+DODIFF_tst-statvfs := 1
OPTS_bug-glob1 := $(PWD)
OPTS_tst-fnmatch := < tst-fnmatch.input
+
+MNTENTS = $(shell mount | while read dev on mp rest; do echo $$mp; done)
+OPTS_tst-statfs := $(MNTENTS)
+OPTS_tst-statvfs := $(MNTENTS)
diff --git a/test/misc/tst-statfs.c b/test/misc/tst-statfs.c
new file mode 100644
index 000000000..44ab3aa77
--- /dev/null
+++ b/test/misc/tst-statfs.c
@@ -0,0 +1,33 @@
+#define _FILE_OFFSET_BITS 64
+
+#include <sys/vfs.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int
+main(int argc, char* argv[])
+{
+ struct statfs s;
+ int ret = 0, i;
+
+ for (i = 1; i < argc; i++) {
+ if (statfs(argv[i], &s) != 0) {
+ fprintf(stderr, "%s: %s: statfs failed. %s\n",
+ *argv, argv[i], strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+ ++ret;
+ printf("statfs %s:\n\tblocks=%lld\n\tblkfree=%lld\n\tbsize=%d\n",
+ argv[i], s.f_blocks, s.f_bfree, s.f_bsize);
+#ifdef _STATFS_F_FRSIZE
+ printf("\tfrsize=%lld\n", s.f_frsize);
+#elif defined __mips__
+ printf("\tfrsize=mips, unsupported?\n");
+#else
+# error no _STATFS_F_FRSIZE
+#endif
+ }
+ exit(ret ? EXIT_SUCCESS : EXIT_FAILURE);
+}
diff --git a/test/misc/tst-statvfs.c b/test/misc/tst-statvfs.c
new file mode 100644
index 000000000..c1e8fde4e
--- /dev/null
+++ b/test/misc/tst-statvfs.c
@@ -0,0 +1,28 @@
+#define _FILE_OFFSET_BITS 64
+
+#include <sys/statvfs.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+int
+main(int argc, char* argv[])
+{
+ struct statvfs s;
+ int i;
+
+ for (i = 1; i < argc; i++) {
+ if (statvfs(argv[i], &s) != 0) {
+ fprintf(stderr, "%s: %s: statvfs failed. %s\n",
+ *argv, argv[i], strerror(errno));
+ exit(EXIT_FAILURE);
+ }
+ printf("statvfs %s:\n\tblocks=%lld\n\tblkfree=%lld\n\tbsize=%d\n",
+ argv[i], s.f_blocks, s.f_bfree, s.f_bsize);
+#if 1 // def _STATFS_F_FRSIZE
+ printf("\tfrsize=%lld\n", s.f_frsize);
+#endif
+ }
+ exit(EXIT_SUCCESS);
+}