summaryrefslogtreecommitdiff
path: root/test/common.c
diff options
context:
space:
mode:
authorRan Benita <ran@unusedvar.com>2019-12-28 13:32:02 +0200
committerRan Benita <ran@unusedvar.com>2019-12-28 13:39:33 +0200
commiteb23982cab4d7a39bf59d24e5aefd712a0da640a (patch)
treedaeb23e60d01a1299d070dfbf72fdc804f8d9838 /test/common.c
parent521bb498ed23692c270b9486843de053e2cf9a9e (diff)
downloadxorg-lib-libxkbcommon-eb23982cab4d7a39bf59d24e5aefd712a0da640a.tar.gz
test/common: simplify test_get_path()
Signed-off-by: Ran Benita <ran@unusedvar.com>
Diffstat (limited to 'test/common.c')
-rw-r--r--test/common.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/test/common.c b/test/common.c
index 40565e5..e397e12 100644
--- a/test/common.c
+++ b/test/common.c
@@ -40,6 +40,7 @@
#include <termios.h>
#include "test.h"
+#include "utils.h"
/*
* Test a sequence of keysyms, resulting from a sequence of key presses,
@@ -159,25 +160,22 @@ test_key_seq(struct xkb_keymap *keymap, ...)
char *
test_get_path(const char *path_rel)
{
+ int ret;
char *path;
- size_t path_len;
- const char *srcdir = getenv("top_srcdir");
+ const char *srcdir;
+
+ srcdir = getenv("top_srcdir");
+ if (!srcdir)
+ srcdir = ".";
if (path_rel[0] == '/')
return strdup(path_rel);
- path_len = strlen(srcdir ? srcdir : ".") +
- strlen(path_rel) + 12;
- path = malloc(path_len);
- if (!path) {
- fprintf(stderr, "Failed to allocate path (%d chars) for %s\n",
- (int) path_len, path_rel);
+ ret = asprintf(&path, "%s/test/data/%s", srcdir, path_rel);
+ if (ret < 0) {
+ fprintf(stderr, "Failed to allocate path for %s\n", path_rel);
return NULL;
}
- snprintf(path, path_len,
- "%s/test/data/%s", srcdir ? srcdir : ".",
- path_rel ? path_rel : "");
-
return path;
}