summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-04-11 18:30:57 +0300
committerArtem Bityutskiy <Artem.Bityutskiy@nokia.com>2011-04-18 17:44:45 +0300
commite777b6032364e6fa9b5ff90c1ba2bdb6167bf24f (patch)
tree13a8b57aa7a638fb91f2d722235565c78e2f1cbe
parent8b625290dc38d0b9af7dbe896861f11ef75eea1e (diff)
fs-tests: integck: clean-up copy_string
This is a clean-up patch which: 1. Simplifies copy_string by useng strdup instead of malloc 2. Adds an assertion which checks the input parameter agains NULL, instead of checking it. 3. Re-names it to dup_string which looks more readable to me. Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
-rw-r--r--tests/fs-tests/integrity/integck.c46
1 files changed, 24 insertions, 22 deletions
diff --git a/tests/fs-tests/integrity/integck.c b/tests/fs-tests/integrity/integck.c
index 281de81..a225042 100644
--- a/tests/fs-tests/integrity/integck.c
+++ b/tests/fs-tests/integrity/integck.c
@@ -30,6 +30,7 @@
#include <limits.h>
#include <dirent.h>
#include <getopt.h>
+#include <assert.h>
#include <sys/mman.h>
#include "tests.h"
@@ -172,15 +173,16 @@ static void *zalloc(size_t size)
return buf;
}
-static char *copy_string(const char *s)
+/*
+ * Duplicate a string.
+ */
+static char *dup_string(const char *s)
{
char *str;
- if (!s)
- return NULL;
- str = malloc(strlen(s) + 1);
+ assert(s != NULL);
+ str = strdup(s);
CHECK(str != NULL);
- strcpy(str, s);
return str;
}
@@ -190,9 +192,9 @@ static char *cat_strings(const char *a, const char *b)
size_t sz;
if (a && !b)
- return copy_string(a);
+ return dup_string(a);
if (b && !a)
- return copy_string(b);
+ return dup_string(b);
if (!a && !b)
return NULL;
sz = strlen(a) + strlen(b) + 1;
@@ -211,9 +213,9 @@ static char *cat_paths(const char *a, const char *b)
size_t na, nb;
if (a && !b)
- return copy_string(a);
+ return dup_string(a);
if (b && !a)
- return copy_string(b);
+ return dup_string(b);
if (!a && !b)
return NULL;
@@ -301,7 +303,7 @@ static void add_dir_entry(struct dir_info *parent, char type, const char *name,
entry = zalloc(sizeof(struct dir_entry_info));
entry->type = type;
- entry->name = copy_string(name);
+ entry->name = dup_string(name);
entry->parent = parent;
entry->next = parent->first;
@@ -324,7 +326,7 @@ static void add_dir_entry(struct dir_info *parent, char type, const char *name,
entry->dir = dir;
dir->entry = entry;
- dir->name = copy_string(name);
+ dir->name = dup_string(name);
dir->parent = parent;
} else if (entry->type == 's') {
struct symlink_info *symlink = target;
@@ -377,7 +379,7 @@ static struct dir_info *dir_new(struct dir_info *parent, const char *name)
free(path);
dir = zalloc(sizeof(struct dir_info));
- dir->name = copy_string(name);
+ dir->name = dup_string(name);
dir->parent = parent;
if (parent)
add_dir_entry(parent, 'd', name, dir);
@@ -435,7 +437,7 @@ static struct file_info *file_new(struct dir_info *parent, const char *name)
free(path);
file = zalloc(sizeof(struct file_info));
- file->name = copy_string(name);
+ file->name = dup_string(name);
add_dir_entry(parent, 'f', name, file);
@@ -1210,7 +1212,7 @@ static char *symlink_path(const char *path, const char *target_pathname)
size_t len, totlen, tarlen;
if (target_pathname[0] == '/')
- return copy_string(target_pathname);
+ return dup_string(target_pathname);
p = strrchr(path, '/');
len = p - path;
len += 1;
@@ -1479,7 +1481,7 @@ static char *pick_rename_name(struct dir_info **parent,
*rename_entry = NULL;
if (grow || tests_random_no(20) < 10)
- return copy_string(make_name(dir));
+ return dup_string(make_name(dir));
r = tests_random_no(dir->number_of_entries);
entry = dir->first;
@@ -1491,14 +1493,14 @@ static char *pick_rename_name(struct dir_info **parent,
entry = dir->first;
if (!entry ||
(entry->type == 'd' && entry->dir->number_of_entries != 0))
- return copy_string(make_name(dir));
+ return dup_string(make_name(dir));
if ((isdir && entry->type != 'd') ||
(!isdir && entry->type == 'd'))
- return copy_string(make_name(dir));
+ return dup_string(make_name(dir));
*rename_entry = entry;
- return copy_string(entry->name);
+ return dup_string(entry->name);
}
static void rename_entry(struct dir_entry_info *entry)
@@ -1593,13 +1595,13 @@ static char *relative_path(const char *path1, const char *path2)
len2 = strlen(p2);
up = str_count(p1, '/');
if (up == 0 && len2 != 0)
- return copy_string(p2);
+ return dup_string(p2);
if (up == 0 && len2 == 0) {
p2 = strrchr(path2, '/');
- return copy_string(p2);
+ return dup_string(p2);
}
if (up == 1 && len2 == 0)
- return copy_string(".");
+ return dup_string(".");
if (len2 == 0)
up -= 1;
len = up * 3 + len2 + 1;
@@ -1651,7 +1653,7 @@ static char *pick_symlink_target(const char *symlink_path)
static void symlink_new(struct dir_info *dir, const char *name_)
{
struct symlink_info *s;
- char *path, *target, *name = copy_string(name_);
+ char *path, *target, *name = dup_string(name_);
path = dir_path(dir, name);
target = pick_symlink_target(path);