diff options
author | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2011-04-12 12:25:32 +0300 |
---|---|---|
committer | Artem Bityutskiy <Artem.Bityutskiy@nokia.com> | 2011-04-18 17:44:45 +0300 |
commit | 9128c82161b4d9b91c2ce5548e9e00a49f2cb081 (patch) | |
tree | f62ec650b5ca5ffbfc257f810e23623d78d8856f | |
parent | d4e41965c16338e12bf085133705afbcea20bb3b (diff) |
fs-tests: integck: add own get_free_space function
Do not use the shared 'tests_get_free_space' function but use own
implementation instead. This is another step to make integck independent
on the common infrastructure.
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
-rw-r--r-- | tests/fs-tests/integrity/integck.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c index e29db49..bfedeb2 100644 --- a/tests/fs-tests/integrity/integck.c +++ b/tests/fs-tests/integrity/integck.c @@ -35,6 +35,7 @@ #include <sys/mman.h> #include <sys/vfs.h> #include <sys/mount.h> +#include <sys/statvfs.h> #include "tests.h" #define PROGRAM_VERSION "1.1" @@ -258,6 +259,17 @@ static char *cat_paths(const char *a, const char *b) return str; } +/* + * Get the free space for the tested file system. + */ +static uint64_t get_free_space(void) +{ + struct statvfs st; + + CHECK(statvfs(args.mount_point, &st) != -1); + return (uint64_t)st.f_bavail * (uint64_t)st.f_frsize; +} + static char *dir_path(struct dir_info *parent, const char *name) { char *parent_path; @@ -834,7 +846,7 @@ static void file_mmap_write(struct file_info *file) if (!file->links) return; - free_space = tests_get_free_space(); + free_space = get_free_space(); if (!free_space) return; /* Randomly pick a written area of the file */ @@ -1911,7 +1923,7 @@ static void create_test_data(void) uint64_t total; for (i = 0; i < 10; ++i) do_an_operation(); - free = tests_get_free_space(); + free = get_free_space(); total = tests_get_total_space(); if ((free * 100) / total >= 10) break; @@ -1942,7 +1954,7 @@ static void update_test_data(void) uint64_t total; for (i = 0; i < 10; ++i) do_an_operation(); - free = tests_get_free_space(); + free = get_free_space(); total = tests_get_total_space(); if ((free * 100) / total >= 50) break; @@ -1972,7 +1984,7 @@ static int integck(void) CHECK(chdir("..") != -1); CHECK(rmdir(dir_name) != -1); } - initial_free_space = tests_get_free_space(); + initial_free_space = get_free_space(); log10_initial_free_space = 0; for (z = initial_free_space; z >= 10; z /= 10) ++log10_initial_free_space; |