summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/test/test-util.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/test/test-util.c b/src/test/test-util.c
index 789fc089fe..cd017ef6fc 100644
--- a/src/test/test-util.c
+++ b/src/test/test-util.c
@@ -21,6 +21,8 @@
***/
#include <string.h>
+#include <unistd.h>
+#include <fcntl.h>
#include "util.h"
@@ -43,6 +45,29 @@ static void test_first_word(void) {
assert_se(!first_word("Hellooo", "Hello"));
}
+static void test_close_many(void) {
+ int fds[3];
+ char name0[] = "/tmp/test-close-many.XXXXXX";
+ char name1[] = "/tmp/test-close-many.XXXXXX";
+ char name2[] = "/tmp/test-close-many.XXXXXX";
+
+ fds[0] = mkstemp(name0);
+ fds[1] = mkstemp(name1);
+ fds[2] = mkstemp(name2);
+
+ close_many(fds, 2);
+
+ assert_se(fcntl(fds[0], F_GETFD) == -1);
+ assert_se(fcntl(fds[1], F_GETFD) == -1);
+ assert_se(fcntl(fds[2], F_GETFD) >= 0);
+
+ close_nointr_nofail(fds[2]);
+
+ unlink(name0);
+ unlink(name1);
+ unlink(name2);
+}
+
static void test_parse_boolean(void) {
assert_se(parse_boolean("1") == 1);
assert_se(parse_boolean("y") == 1);
@@ -129,6 +154,22 @@ static void test_safe_atod(void) {
assert_se(r == -EINVAL);
}
+static void test_strappend(void) {
+ _cleanup_free_ char *t1, *t2, *t3, *t4;
+
+ t1 = strappend(NULL, NULL);
+ assert_se(streq(t1, ""));
+
+ t2 = strappend(NULL, "suf");
+ assert_se(streq(t2, "suf"));
+
+ t3 = strappend("pre", NULL);
+ assert_se(streq(t3, "pre"));
+
+ t4 = strappend("pre", "suf");
+ assert_se(streq(t4, "presuf"));
+}
+
static void test_strstrip(void) {
char *r;
char input[] = " hello, waldo. ";
@@ -287,11 +328,13 @@ static void test_bus_path_escape(void) {
int main(int argc, char *argv[]) {
test_streq_ptr();
test_first_word();
+ test_close_many();
test_parse_boolean();
test_parse_pid();
test_parse_uid();
test_safe_atolli();
test_safe_atod();
+ test_strappend();
test_strstrip();
test_delete_chars();
test_in_charset();