summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorThomas Hindoe Paaboel Andersen <phomes@gmail.com>2013-02-25 23:41:55 +0100
committerThomas Hindoe Paaboel Andersen <phomes@gmail.com>2013-02-25 23:44:20 +0100
commit1ef04f0b14a5e48a822683a9e3a19233b42aecb2 (patch)
treeea48878c39b2b86666350d5fed2ab504770a6f8b /src/test
parent61f99b60644cbf92c35627937868cd62557898b1 (diff)
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
Diffstat (limited to 'src/test')
-rw-r--r--src/test/test-util.c71
1 files changed, 67 insertions, 4 deletions
diff --git a/src/test/test-util.c b/src/test/test-util.c
index e4dea09f85..c15f19df8e 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;