]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Add a unit test for environment_variable_names_equal
authorNick Mathewson <nickm@torproject.org>
Tue, 26 Jun 2012 14:50:37 +0000 (10:50 -0400)
committerNick Mathewson <nickm@torproject.org>
Tue, 26 Jun 2012 14:50:37 +0000 (10:50 -0400)
I need this because I'm about to frob that function to stop using
strcspn() in order to get rid of a clang warning.

changes/envvar_test [new file with mode: 0644]
src/test/test_util.c

diff --git a/changes/envvar_test b/changes/envvar_test
new file mode 100644 (file)
index 0000000..d76a817
--- /dev/null
@@ -0,0 +1,2 @@
+  o New unit tests:
+    - Add a unit test for the environment_variable_names_equal function.
\ No newline at end of file
index fab95953bd8574bcf4570a010e08700622642e3c..d2d0a55520e808ae29543685e028122e629b1ec6 100644 (file)
@@ -2869,6 +2869,39 @@ test_util_sl_new_from_text_lines(void *ptr)
   }
 }
 
+static void
+test_util_envnames(void *ptr)
+{
+  (void) ptr;
+
+  tt_assert(environment_variable_names_equal("abc", "abc"));
+  tt_assert(environment_variable_names_equal("abc", "abc="));
+  tt_assert(environment_variable_names_equal("abc", "abc=def"));
+  tt_assert(environment_variable_names_equal("abc=def", "abc"));
+  tt_assert(environment_variable_names_equal("abc=def", "abc=ghi"));
+
+  tt_assert(environment_variable_names_equal("abc", "abc"));
+  tt_assert(environment_variable_names_equal("abc", "abc="));
+  tt_assert(environment_variable_names_equal("abc", "abc=def"));
+  tt_assert(environment_variable_names_equal("abc=def", "abc"));
+  tt_assert(environment_variable_names_equal("abc=def", "abc=ghi"));
+
+  tt_assert(!environment_variable_names_equal("abc", "abcd"));
+  tt_assert(!environment_variable_names_equal("abc=", "abcd"));
+  tt_assert(!environment_variable_names_equal("abc=", "abcd"));
+  tt_assert(!environment_variable_names_equal("abc=", "def"));
+  tt_assert(!environment_variable_names_equal("abc=", "def="));
+  tt_assert(!environment_variable_names_equal("abc=x", "def=x"));
+
+  tt_assert(!environment_variable_names_equal("", "a=def"));
+  /* A bit surprising. */
+  tt_assert(environment_variable_names_equal("", "=def"));
+  tt_assert(environment_variable_names_equal("=y", "=x"));
+
+ done:
+  ;
+}
+
 /** Test process_environment_make */
 static void
 test_util_make_environment(void *ptr)
@@ -3081,6 +3114,7 @@ struct testcase_t util_tests[] = {
   UTIL_TEST(n_bits_set, 0),
   UTIL_TEST(eat_whitespace, 0),
   UTIL_TEST(sl_new_from_text_lines, 0),
+  UTIL_TEST(envnames, 0),
   UTIL_TEST(make_environment, 0),
   UTIL_TEST(set_env_var_in_sl, 0),
   END_OF_TESTCASES