r26347: More tests.
authorJelmer Vernooij <jelmer@samba.org>
Sat, 8 Dec 2007 22:32:13 +0000 (23:32 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:48:53 +0000 (05:48 +0100)
(This used to be commit 5d927b5ca792c2c9da4a1c4f5c3ae880637895e3)

source4/param/loadparm.c
source4/param/tests/loadparm.c
source4/selftest/env/Samba4.pm
source4/smb_server/smb_server.c

index c3f06512dc62cb4e2caa1f92c4654b6d477b9181..32aaa13b8769d93b4592eb61faa48ea8f72cb167 100644 (file)
@@ -554,20 +554,6 @@ struct parm_struct *lp_parm_table(void)
        return parm_table;
 }
 
-static TALLOC_CTX *lp_talloc;
-
-/******************************************************************* a
- Free up temporary memory - called from the main loop.
-********************************************************************/
-
-void lp_talloc_free(void)
-{
-       if (!lp_talloc)
-               return;
-       talloc_free(lp_talloc);
-       lp_talloc = NULL;
-}
-
 /*******************************************************************
  Convenience routine to grab string parameters into temporary memory
  and run standard_sub_basic on them. The buffers can be written to by
@@ -975,7 +961,7 @@ double lp_parm_double(struct loadparm_context *lp_ctx,
 {
        const char *value = lp_get_parametric(lp_ctx, service, type, option);
        
-       if (value)
+       if (value != NULL)
                return lp_double(value);
 
        return default_v;
@@ -990,7 +976,7 @@ bool lp_parm_bool(struct loadparm_context *lp_ctx,
 {
        const char *value = lp_get_parametric(lp_ctx, service, type, option);
        
-       if (value)
+       if (value != NULL)
                return lp_bool(value);
 
        return default_v;
index d99bc0383cf948ac659831f21dce2fb36980d1bd..fa7d7fe1764727d510dba6d51ef210cb69909171 100644 (file)
@@ -53,6 +53,50 @@ static bool test_set_option_parametric(struct torture_context *tctx)
        return true;
 }
 
+static bool test_lp_parm_double(struct torture_context *tctx)
+{
+       struct loadparm_context *lp_ctx = loadparm_init(tctx);
+       torture_assert(tctx, lp_set_option(lp_ctx, "some:thing=3.4"), "lp_set_option failed");
+       torture_assert(tctx, lp_parm_double(lp_ctx, NULL, "some", "thing", 2.0) == 3.4, 
+                                "invalid parametric option");
+       torture_assert(tctx, lp_parm_double(lp_ctx, NULL, "some", "bla", 2.0) == 2.0, 
+                                "invalid parametric option");
+       return true;
+}
+
+static bool test_lp_parm_bool(struct torture_context *tctx)
+{
+       struct loadparm_context *lp_ctx = loadparm_init(tctx);
+       torture_assert(tctx, lp_set_option(lp_ctx, "some:thing=true"), "lp_set_option failed");
+       torture_assert(tctx, lp_parm_bool(lp_ctx, NULL, "some", "thing", false) == true, 
+                                "invalid parametric option");
+       torture_assert(tctx, lp_parm_bool(lp_ctx, NULL, "some", "bla", true) == true, 
+                                "invalid parametric option");
+       return true;
+}
+
+static bool test_lp_parm_int(struct torture_context *tctx)
+{
+       struct loadparm_context *lp_ctx = loadparm_init(tctx);
+       torture_assert(tctx, lp_set_option(lp_ctx, "some:thing=34"), "lp_set_option failed");
+       torture_assert_int_equal(tctx, lp_parm_int(lp_ctx, NULL, "some", "thing", 20), 34, 
+                                "invalid parametric option");
+       torture_assert_int_equal(tctx, lp_parm_int(lp_ctx, NULL, "some", "bla", 42), 42, 
+                                "invalid parametric option");
+       return true;
+}
+
+static bool test_lp_parm_bytes(struct torture_context *tctx)
+{
+       struct loadparm_context *lp_ctx = loadparm_init(tctx);
+       torture_assert(tctx, lp_set_option(lp_ctx, "some:thing=16K"), "lp_set_option failed");
+       torture_assert_int_equal(tctx, lp_parm_bytes(lp_ctx, NULL, "some", "thing", 20), 16 * 1024, 
+                                "invalid parametric option");
+       torture_assert_int_equal(tctx, lp_parm_bytes(lp_ctx, NULL, "some", "bla", 42), 42, 
+                                "invalid parametric option");
+       return true;
+}
+
 struct torture_suite *torture_local_loadparm(TALLOC_CTX *mem_ctx)
 {
        struct torture_suite *suite = torture_suite_create(mem_ctx, "LOADPARM");
@@ -61,6 +105,10 @@ struct torture_suite *torture_local_loadparm(TALLOC_CTX *mem_ctx)
        torture_suite_add_simple_test(suite, "set_option", test_set_option);
        torture_suite_add_simple_test(suite, "set_option_invalid", test_set_option_invalid);
        torture_suite_add_simple_test(suite, "set_option_parametric", test_set_option_parametric);
+       torture_suite_add_simple_test(suite, "set_lp_parm_double", test_lp_parm_double);
+       torture_suite_add_simple_test(suite, "set_lp_parm_bool", test_lp_parm_bool);
+       torture_suite_add_simple_test(suite, "set_lp_parm_int", test_lp_parm_int);
+       torture_suite_add_simple_test(suite, "set_lp_parm_bytes", test_lp_parm_bytes);
 
        return suite;
 }
index 8a6d40f3ca0dfe2686bbbfc2e04427bfe73e8ce2..9e3c29b32bed1f65c25dbf396988b2356ac7f74f 100644 (file)
@@ -619,7 +619,7 @@ nogroup:x:65534:nobody
                die("Failed to create a valid smb.conf configuration!");
        }
 
-       (system("($self->{bindir}/testparm $configuration -v --suppress-prompt --parameter-name=\"netbios name\" --section-name=global 2> /dev/null | grep -i \"^$netbiosname\" ) >/dev/null 2>&1") == 0) or die("Failed to create a valid smb.conf configuration!");
+       (system("($self->{bindir}/testparm $configuration -v --suppress-prompt --parameter-name=\"netbios name\" --section-name=global 2> /dev/null | grep -i \"^$netbiosname\" ) >/dev/null 2>&1") == 0) or die("Failed to create a valid smb.conf configuration! $self->{bindir}/testparm $configuration -v --suppress-prompt --parameter-name=\"netbios name\" --section-name=global");
 
        my @provision_options = ();
        push (@provision_options, "NSS_WRAPPER_PASSWD=\"$nsswrap_passwd\"");
index e7006a2ceed9e9dfd53c42347342addbd4a59ba3..c91566e24477cbd5ba33aa1a11fde56e580ac393 100644 (file)
@@ -94,9 +94,6 @@ static void smbsrv_recv(struct stream_connection *conn, uint16_t flags)
        DEBUG(10,("smbsrv_recv\n"));
 
        packet_recv(smb_conn->packet);
-
-       /* free up temporary memory */
-       lp_talloc_free();
 }
 
 /*