The branch, master has been updated
       via  ba40f38... s4-smbtorture: test more valid key names in RPC-WINREG.
       via  2dc50ec... s4-smbtorture: more work on test values WINREG test.
      from  740c97b... Fix to undo nasty hack for for grouptype conversion

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit ba40f3828180ba63debb4b3578c0e0faf16f6cbc
Author: Günther Deschner <g...@samba.org>
Date:   Wed Jun 23 15:00:06 2010 +0200

    s4-smbtorture: test more valid key names in RPC-WINREG.
    
    Guenther

commit 2dc50ec44c4e9af144733f028122970be83332ba
Author: Günther Deschner <g...@samba.org>
Date:   Wed Jun 23 14:59:27 2010 +0200

    s4-smbtorture: more work on test values WINREG test.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source4/torture/rpc/winreg.c |   73 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 71 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/torture/rpc/winreg.c b/source4/torture/rpc/winreg.c
index eec8de7..f0510d8 100644
--- a/source4/torture/rpc/winreg.c
+++ b/source4/torture/rpc/winreg.c
@@ -2014,7 +2014,13 @@ static bool test_SetValue_values(struct 
dcerpc_binding_handle *b,
                "torture,value",
                "torture;value",
                "torture/value",
-               "torture\\value"
+               "torture\\value",
+               "torture_value_name",
+               "torture value name",
+               "torture,value,name",
+               "torture;value;name",
+               "torture/value/name",
+               "torture\\value\\name",
        };
        int i;
 
@@ -2026,7 +2032,9 @@ static bool test_SetValue_values(struct 
dcerpc_binding_handle *b,
                uint32_t w_size, w_length;
                uint8_t *w_data;
 
-               blob = data_blob_string_const("binary_blob");
+               blob = data_blob_talloc(tctx, NULL, 32);
+
+               generate_random_buffer(blob.data, 32);
 
                torture_assert(tctx,
                        test_SetValue(b, tctx, handle, values[i], REG_BINARY, 
blob.data, blob.length),
@@ -2128,6 +2136,65 @@ static bool test_SetValue_extended(struct 
dcerpc_binding_handle *b,
        return true;
 }
 
+static bool test_create_keynames(struct dcerpc_binding_handle *b,
+                                struct torture_context *tctx,
+                                struct policy_handle *handle)
+{
+       const char *keys[] = {
+               "torture_key",
+               "torture key",
+               "torture,key",
+               "torture/key",
+               "torture\\key",
+       };
+       int i;
+
+       for (i=0; i < ARRAY_SIZE(keys); i++) {
+
+               enum winreg_CreateAction action_taken;
+               struct policy_handle new_handle;
+               char *q, *tmp;
+
+               torture_assert(tctx,
+                       test_CreateKey_opts(tctx, b, handle, keys[i], NULL,
+                                           REG_OPTION_NON_VOLATILE,
+                                           SEC_FLAG_MAXIMUM_ALLOWED,
+                                           NULL,
+                                           WERR_OK,
+                                           &action_taken,
+                                           &new_handle),
+                       talloc_asprintf(tctx, "failed to create '%s' key", 
keys[i]));
+
+               torture_assert_int_equal(tctx, action_taken, 
REG_CREATED_NEW_KEY, "unexpected action");
+
+               torture_assert(tctx,
+                       test_DeleteKey_opts(b, tctx, handle, keys[i], WERR_OK),
+                       "failed to delete key");
+
+               torture_assert(tctx,
+                       test_DeleteKey_opts(b, tctx, handle, keys[i], 
WERR_BADFILE),
+                       "failed 2nd delete key");
+
+               tmp = talloc_strdup(tctx, keys[i]);
+
+               q = strchr(tmp, '\\');
+               if (q != NULL) {
+                       *q = '\0';
+                       q++;
+
+                       torture_assert(tctx,
+                               test_DeleteKey_opts(b, tctx, handle, tmp, 
WERR_OK),
+                               "failed to delete key");
+
+                       torture_assert(tctx,
+                               test_DeleteKey_opts(b, tctx, handle, tmp, 
WERR_BADFILE),
+                               "failed 2nd delete key");
+               }
+       }
+
+       return true;
+}
+
 #define KEY_CURRENT_VERSION "SOFTWARE\\MICROSOFT\\WINDOWS NT\\CURRENTVERSION"
 #define VALUE_CURRENT_VERSION "CurrentVersion"
 
@@ -2542,6 +2609,8 @@ static bool test_key_base(struct torture_context *tctx,
                                "values SetValue test failed");
                        torture_assert(tctx, test_SetValue_extended(b, tctx, 
&newhandle),
                                "extended SetValue test failed");
+                       torture_assert(tctx, test_create_keynames(b, tctx, 
&newhandle),
+                               "keyname CreateKey test failed");
                } else {
                        torture_assert(tctx, test_CreateKey_keytypes(tctx, b, 
&newhandle, test_key1, hkey),
                                "keytype test failed");


-- 
Samba Shared Repository

Reply via email to