[systemd-commits] src/test
Thomas H.P. Andersen
phomes at kemper.freedesktop.org
Mon Feb 25 14:44:38 PST 2013
src/test/test-util.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 67 insertions(+), 4 deletions(-)
New commits:
commit 1ef04f0b14a5e48a822683a9e3a19233b42aecb2
Author: Thomas Hindoe Paaboel Andersen <phomes at gmail.com>
Date: Mon Feb 25 23:41:55 2013 +0100
tests: add a few more tests to test-util.c
Add asserts on the resutls in FOREACH_WORD_QUOTED
Added tests for:
FOREACH_WORD
strstrip
delete_chars
in_charset
diff --git a/src/test/test-util.c b/src/test/test-util.c
index e4dea09..c15f19d 100644
--- a/src/test/test-util.c
+++ b/src/test/test-util.c
@@ -129,17 +129,76 @@ static void test_safe_atod(void) {
assert_se(r == -EINVAL);
}
+static void test_strstrip(void) {
+ char *r;
+ char input[] = " hello, waldo. ";
+
+ r = strstrip(input);
+ assert_se(streq(r, "hello, waldo."));
+
+}
+
+static void test_delete_chars(void) {
+ char *r;
+ char input[] = " hello, waldo. abc";
+
+ r = delete_chars(input, WHITESPACE);
+ assert_se(streq(r, "hello,waldo.abc"));
+}
+
+static void test_in_charset(void) {
+ assert_se(in_charset("dddaaabbbcccc", "abcd"));
+ assert_se(!in_charset("dddaaabbbcccc", "abc f"));
+}
+
+static void test_foreach_word(void) {
+ char *w, *state;
+ size_t l;
+ int i = 0;
+ const char test[] = "test abc d\te f ";
+ const char * const expected[] = {
+ "test",
+ "abc",
+ "d",
+ "e",
+ "f",
+ "",
+ NULL
+ };
+
+ FOREACH_WORD(w, l, test, state) {
+ assert_se(strneq(expected[i++], w, l));
+ }
+}
+
static void test_foreach_word_quoted(void) {
char *w, *state;
size_t l;
- const char test[] = "test a b c 'd' e '' '' hhh '' ''";
+ int i = 0;
+ const char test[] = "test a b c 'd' e '' '' hhh '' '' \"a b c\"";
+ const char * const expected[] = {
+ "test",
+ "a",
+ "b",
+ "c",
+ "d",
+ "e",
+ "",
+ "",
+ "hhh",
+ "",
+ "",
+ "a b c",
+ NULL
+ };
+
printf("<%s>\n", test);
FOREACH_WORD_QUOTED(w, l, test, state) {
- char *t;
+ _cleanup_free_ char *t = NULL;
assert_se(t = strndup(w, l));
+ assert_se(strneq(expected[i++], w, l));
printf("<%s>\n", t);
- free(t);
}
}
@@ -175,12 +234,16 @@ int main(int argc, char *argv[]) {
test_streq_ptr();
test_first_word();
test_parse_boolean();
- test_default_term_for_tty();
test_parse_pid();
test_parse_uid();
test_safe_atolli();
test_safe_atod();
+ test_strstrip();
+ test_delete_chars();
+ test_in_charset();
+ test_foreach_word();
test_foreach_word_quoted();
+ test_default_term_for_tty();
test_memdup_multiply();
return 0;
More information about the systemd-commits
mailing list