chiark / gitweb /
tests: more tests
authorThomas Hindoe Paaboel Andersen <phomes@gmail.com>
Mon, 11 Feb 2013 20:40:59 +0000 (21:40 +0100)
committerThomas Hindoe Paaboel Andersen <phomes@gmail.com>
Mon, 11 Feb 2013 21:22:40 +0000 (22:22 +0100)
tests for:
 parse_boolean
 env_name_is_valid

Also convert assert to assert_se to make sure they are run even with
optimization. (see commit 9b5d6bd909855543cba75a4469bff6f82845cf0d)

src/test/test-env-replace.c
src/test/test-util.c

index d6cb2892e709bb9ae1c9e54bc7857ef4c6371fa9..0274e97618a71dd9d4064a7b51a1e4aa4a7cf954 100644 (file)
@@ -195,6 +195,15 @@ static void test_env_clean(void) {
         assert_se(e[5] == NULL);
 }
 
+static void test_env_name_is_valid(void) {
+        assert_se(env_name_is_valid("test"));
+
+        assert_se(!env_name_is_valid(NULL));
+        assert_se(!env_name_is_valid(""));
+        assert_se(!env_name_is_valid("5_starting_with_a_number_is_wrong"));
+        assert_se(!env_name_is_valid("#ยค%&?_only_numbers_letters_and_underscore_allowed"));
+}
+
 int main(int argc, char *argv[]) {
         test_strv_env_delete();
         test_strv_env_unset();
@@ -203,6 +212,7 @@ int main(int argc, char *argv[]) {
         test_replace_env_arg();
         test_normalize_env_assignment();
         test_env_clean();
+        test_env_name_is_valid();
 
         return 0;
 }
index ebbdcfc6de454e22c99577ee53a35e1f09c5b957..476fa09dbf6f90bc950d80ed1850570877100736 100644 (file)
 #include "util.h"
 
 static void test_streq_ptr(void) {
-        assert(streq_ptr(NULL, NULL));
-        assert(!streq_ptr("abc", "cdef"));
+        assert_se(streq_ptr(NULL, NULL));
+        assert_se(!streq_ptr("abc", "cdef"));
 }
 
 static void test_first_word(void) {
-        assert(first_word("Hello", ""));
-        assert(first_word("Hello", "Hello"));
-        assert(first_word("Hello world", "Hello"));
-        assert(first_word("Hello\tworld", "Hello"));
-        assert(first_word("Hello\nworld", "Hello"));
-        assert(first_word("Hello\rworld", "Hello"));
-        assert(first_word("Hello ", "Hello"));
-
-        assert(!first_word("Hello", "Hellooo"));
-        assert(!first_word("Hello", "xxxxx"));
-        assert(!first_word("Hellooo", "Hello"));
+        assert_se(first_word("Hello", ""));
+        assert_se(first_word("Hello", "Hello"));
+        assert_se(first_word("Hello world", "Hello"));
+        assert_se(first_word("Hello\tworld", "Hello"));
+        assert_se(first_word("Hello\nworld", "Hello"));
+        assert_se(first_word("Hello\rworld", "Hello"));
+        assert_se(first_word("Hello ", "Hello"));
+
+        assert_se(!first_word("Hello", "Hellooo"));
+        assert_se(!first_word("Hello", "xxxxx"));
+        assert_se(!first_word("Hellooo", "Hello"));
+}
+
+static void test_parse_boolean(void) {
+        assert_se(parse_boolean("1") == 1);
+        assert_se(parse_boolean("y") == 1);
+        assert_se(parse_boolean("Y") == 1);
+        assert_se(parse_boolean("yes") == 1);
+        assert_se(parse_boolean("YES") == 1);
+        assert_se(parse_boolean("true") == 1);
+        assert_se(parse_boolean("TRUE") == 1);
+        assert_se(parse_boolean("on") == 1);
+        assert_se(parse_boolean("ON") == 1);
+
+        assert_se(parse_boolean("0") == 0);
+        assert_se(parse_boolean("n") == 0);
+        assert_se(parse_boolean("N") == 0);
+        assert_se(parse_boolean("no") == 0);
+        assert_se(parse_boolean("NO") == 0);
+        assert_se(parse_boolean("false") == 0);
+        assert_se(parse_boolean("FALSE") == 0);
+        assert_se(parse_boolean("off") == 0);
+        assert_se(parse_boolean("OFF") == 0);
+
+        assert_se(parse_boolean("garbage") < 0);
+        assert_se(parse_boolean("") < 0);
 }
 
 static void test_foreach_word_quoted(void) {
@@ -75,6 +100,7 @@ static void test_default_term_for_tty(void) {
 int main(int argc, char *argv[]) {
         test_streq_ptr();
         test_first_word();
+        test_parse_boolean();
         test_default_term_for_tty();
         test_foreach_word_quoted();