r21729: Some more tests
authorJelmer Vernooij <jelmer@samba.org>
Tue, 6 Mar 2007 23:03:34 +0000 (23:03 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:49:19 +0000 (14:49 -0500)
(This used to be commit d2baa8218cf504d6631d610f9fd393ad8c61574c)

source4/lib/socket_wrapper/socket_wrapper.c
source4/lib/socket_wrapper/testsuite.c

index 8eff6a49ac8da8ba634d00135e09cb9c9c931e18..3e3d384f85397bb8e6085f3b7faf491275248785 100644 (file)
@@ -199,15 +199,14 @@ const char *socket_wrapper_dir(void)
        return s;
 }
 
-static unsigned int socket_wrapper_default_iface(void)
+unsigned int socket_wrapper_default_iface(void)
 {
        const char *s = getenv("SOCKET_WRAPPER_DEFAULT_IFACE");
        if (s) {
                unsigned int iface;
-               if (sscanf(s, "%u", &iface) == 1) {
-                       if (iface >= 1 && iface <= MAX_WRAPPED_INTERFACES) {
-                               return iface;
-                       }
+               iface = atoi(s);
+               if (iface >= 1 && iface <= MAX_WRAPPED_INTERFACES) {
+                       return iface;
                }
        }
 
index a3e65804092fec6602a0cbf45ca597cdbb812554..65ae9a0584f2b2cfd7a6ed529138848f2f8ca2fe 100644 (file)
 #include "torture/torture.h"
 
 static char *old_dir = NULL;
+static char *old_iface = NULL;
 
 static void backup_env(void)
 {
        old_dir = getenv("SOCKET_WRAPPER_DIR");
+       old_iface = getenv("SOCKET_WRAPPER_DEFAULT_IFACE");
 }
 
 static void restore_env(void)
 {
-       setenv("SOCKET_WRAPPER_DIR", old_dir, 1);
+       if (old_dir == NULL)
+               unsetenv("SOCKET_WRAPPER_DIR");
+       else
+               setenv("SOCKET_WRAPPER_DIR", old_dir, 1);
+       if (old_iface == NULL)
+               unsetenv("SOCKET_WRAPPER_DEFAULT_IFACE");
+       else
+               setenv("SOCKET_WRAPPER_DEFAULT_IFACE", old_iface, 1);
 }
 
 static bool test_socket_wrapper_dir(struct torture_context *tctx)
@@ -70,6 +79,20 @@ static bool test_swrap_socket(struct torture_context *tctx)
        return true;
 }
 
+unsigned int socket_wrapper_default_iface(void);
+static bool test_socket_wrapper_default_iface(struct torture_context *tctx)
+{
+       backup_env();
+       unsetenv("SOCKET_WRAPPER_DEFAULT_IFACE");
+       torture_assert_int_equal(tctx, socket_wrapper_default_iface(), 1, "unset");
+       setenv("SOCKET_WRAPPER_DEFAULT_IFACE", "2", 1);
+       torture_assert_int_equal(tctx, socket_wrapper_default_iface(), 2, "unset");
+       setenv("SOCKET_WRAPPER_DEFAULT_IFACE", "bla", 1);
+       torture_assert_int_equal(tctx, socket_wrapper_default_iface(), 1, "unset");
+       restore_env();
+       return true;
+}
+
 struct torture_suite *torture_local_socket_wrapper(TALLOC_CTX *mem_ctx)
 {
        struct torture_suite *suite = torture_suite_create(mem_ctx, 
@@ -77,6 +100,7 @@ struct torture_suite *torture_local_socket_wrapper(TALLOC_CTX *mem_ctx)
 
        torture_suite_add_simple_test(suite, "socket_wrapper_dir", test_socket_wrapper_dir);
        torture_suite_add_simple_test(suite, "socket", test_swrap_socket);
+       torture_suite_add_simple_test(suite, "socket_wrapper_default_iface", test_socket_wrapper_default_iface);
 
        return suite;
 }