aboutsummaryrefslogtreecommitdiff
path: root/tests/fs-tests
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-04-18 12:48:50 +0300
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-04-22 14:29:51 +0300
commitf17494d93bb8b4d95ead5fa18b8893a645820d8c (patch)
treee0a6f673856421cbb743d31fd926392c3e64139b /tests/fs-tests
parent30f39fa07e630349a7e360f3f6e88352fa82b947 (diff)
fs-tests: integck: make file_new return error on create failure
Teach 'file_new()' to return -1 if it fails to create a file. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Diffstat (limited to 'tests/fs-tests')
-rw-r--r--tests/fs-tests/integrity/integck.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c
index f2223d4..471fcf4 100644
--- a/tests/fs-tests/integrity/integck.c
+++ b/tests/fs-tests/integrity/integck.c
@@ -509,23 +509,27 @@ static void dir_remove(struct dir_info *dir)
free(dir);
}
-static struct file_info *file_new(struct dir_info *parent, const char *name)
+static int file_new(struct dir_info *parent, const char *name)
{
- struct file_info *file = NULL;
+ struct file_info *file;
char *path;
mode_t mode;
int fd;
- CHECK(parent != NULL);
+ assert(parent != NULL);
path = dir_path(parent, name);
mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH;
fd = open(path, O_CREAT | O_EXCL | O_RDWR, mode);
if (fd == -1) {
- CHECK(errno == ENOSPC);
+ if (errno == ENOSPC) {
+ full = 1;
+ free(path);
+ return 0;
+ }
+ pcv("cannot create file %s", path);
free(path);
- full = 1;
- return NULL;
+ return -1;
}
free(path);
@@ -533,10 +537,8 @@ static struct file_info *file_new(struct dir_info *parent, const char *name)
file->name = dup_string(name);
add_dir_entry(parent, 'f', name, file);
-
add_fd(file, fd);
-
- return file;
+ return 0;
}
static void link_new(struct dir_info *parent, const char *name,
@@ -1932,7 +1934,7 @@ static int operate_on_dir(struct dir_info *dir)
r = random_no(14);
if (r == 0 && grow)
/* When growing, 1 time in 14 create a file */
- file_new(dir, make_name(dir));
+ return file_new(dir, make_name(dir));
else if (r == 1 && grow)
/* When growing, 1 time in 14 create a directory */
dir_new(dir, make_name(dir));