]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
r21729: Some more tests
authorJelmer Vernooij <jelmer@samba.org>
Tue, 6 Mar 2007 23:03:34 +0000 (23:03 +0000)
committerStefan Metzmacher <metze@samba.org>
Tue, 10 Jun 2008 09:36:38 +0000 (11:36 +0200)
(cherry picked from commit d2baa8218cf504d6631d610f9fd393ad8c61574c)

source/lib/socket_wrapper/socket_wrapper.c
source/lib/socket_wrapper/testsuite.c

index ad5c3c177c868376d6ddfe30a7e937aeb19abcd9..b6b88fbcd15ae5b690c09a55bf47bc7a90582535 100644 (file)
@@ -200,15 +200,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;
 }