Author: jelmer
Date: 2007-08-26 11:35:41 +0000 (Sun, 26 Aug 2007)
New Revision: 24662

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=24662

Log:
Some initial work on testing registry diffs.
Modified:
   branches/4.0-regwrite/
   branches/4.0-regwrite/source/lib/registry/tests/diff.c
   branches/4.0-regwrite/source/lib/registry/tests/generic.c
   branches/4.0-regwrite/source/lib/registry/tests/hive.c
   branches/4.0-regwrite/source/lib/registry/tests/registry.c
   branches/4.0-regwrite/source/lib/registry/util.c
   branches/4.0-regwrite/source/torture/local/config.mk
   branches/4.0-regwrite/source/torture/ui.h


Changeset:

Property changes on: branches/4.0-regwrite
___________________________________________________________________
Name: bzr:revision-info
...skipped...
Name: bzr:file-ids
...skipped...
Name: bzr:revision-id:v3-trunk0
...skipped...

Modified: branches/4.0-regwrite/source/lib/registry/tests/diff.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/tests/diff.c      2007-08-26 
10:50:39 UTC (rev 24661)
+++ branches/4.0-regwrite/source/lib/registry/tests/diff.c      2007-08-26 
11:35:41 UTC (rev 24662)
@@ -25,26 +25,81 @@
 #include "torture/torture.h"
 #include "librpc/gen_ndr/winreg.h"
 
+static bool test_generate_diff(struct torture_context *test)
+{
+       /* WERROR reg_generate_diff(struct registry_context *ctx1, 
+                                 struct registry_context *ctx2, 
+                                 const struct reg_diff_callbacks *callbacks,
+                                 void *callback_data)
+                                 */
+       return true;
+}
+
+
+static bool test_diff_load(struct torture_context *test)
+{
+       /* WERROR reg_diff_load(const char *filename, const struct 
reg_diff_callbacks *callbacks, void *callback_data) */
+
+       return true;
+}
+
+static bool test_diff_apply(struct torture_context *test)
+{
+       /*
+_PUBLIC_ WERROR reg_diff_apply (const char *filename, struct registry_context 
*ctx)
+       */
+
+       return true;
+}
+
+static const char *added_key = NULL;
+
+static WERROR test_add_key (void *callback_data, const char *key_name)
+{
+       added_key = talloc_strdup(callback_data, key_name);
+
+       return WERR_OK;
+}
+
+static bool test_generate_diff_key_add(struct torture_context *test)
+{
+       struct reg_diff_callbacks cb;
+       struct registry_key rk;
+
+       return true;
+
+       ZERO_STRUCT(cb);
+
+       cb.add_key = test_add_key;
+
+       if (W_ERROR_IS_OK(reg_generate_diff_key(&rk, NULL, "bla", &cb, test)))
+               return false;
+
+       torture_assert_str_equal(test, added_key, "bla", "key added");
+
+       return true;
+}
+
+static bool test_generate_diff_key_null(struct torture_context *test)
+{
+       struct reg_diff_callbacks cb;
+
+       ZERO_STRUCT(cb);
+
+       if (!W_ERROR_IS_OK(reg_generate_diff_key(NULL, NULL, "", &cb, NULL)))
+               return false;
+
+       return true;
+}
+
 struct torture_suite *torture_registry_diff(TALLOC_CTX *mem_ctx) 
 {
        struct torture_suite *suite = torture_suite_create(mem_ctx, 
                                                                                
                           "DIFF");
-       torture_suite_add_simple_test(suite, "str_regtype", test_str_regtype);
-       torture_suite_add_simple_test(suite, "reg_val_data_string dword", 
-                                                                 
test_reg_val_data_string_dword);
-       torture_suite_add_simple_test(suite, "reg_val_data_string sz", 
-                                                                 
test_reg_val_data_string_sz);
-       torture_suite_add_simple_test(suite, "reg_val_data_string binary", 
-                                                                 
test_reg_val_data_string_binary);
-       torture_suite_add_simple_test(suite, "reg_val_data_string empty", 
-                                                                 
test_reg_val_data_string_empty);
-       torture_suite_add_simple_test(suite, "reg_val_description", 
-                                                                 
test_reg_val_description);
-       torture_suite_add_simple_test(suite, "reg_val_description null", 
-                                                                 
test_reg_val_description_nullname);
-
-       torture_suite_add_suite(suite, torture_registry_hive(mem_ctx));
-       torture_suite_add_suite(suite, torture_registry_registry(mem_ctx));
-
+       torture_suite_add_simple_test(suite, "test_generate_diff_key_add", 
test_generate_diff_key_add);
+       torture_suite_add_simple_test(suite, "test_generate_diff_key_null", 
test_generate_diff_key_null);
+       torture_suite_add_simple_test(suite, "test_diff_apply", 
test_diff_apply);
+       torture_suite_add_simple_test(suite, "test_generate_diff", 
test_generate_diff);
+       torture_suite_add_simple_test(suite, "test_diff_load", test_diff_load);
        return suite;
 }

Modified: branches/4.0-regwrite/source/lib/registry/tests/generic.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/tests/generic.c   2007-08-26 
10:50:39 UTC (rev 24661)
+++ branches/4.0-regwrite/source/lib/registry/tests/generic.c   2007-08-26 
11:35:41 UTC (rev 24662)
@@ -27,6 +27,7 @@
 
 struct torture_suite *torture_registry_hive(TALLOC_CTX *mem_ctx);
 struct torture_suite *torture_registry_registry(TALLOC_CTX *mem_ctx);
+struct torture_suite *torture_registry_diff(TALLOC_CTX *mem_ctx);
 
 static bool test_str_regtype(struct torture_context *ctx)
 {
@@ -120,6 +121,7 @@
 
        torture_suite_add_suite(suite, torture_registry_hive(mem_ctx));
        torture_suite_add_suite(suite, torture_registry_registry(mem_ctx));
+       torture_suite_add_suite(suite, torture_registry_diff(mem_ctx));
 
        return suite;
 }

Modified: branches/4.0-regwrite/source/lib/registry/tests/hive.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/tests/hive.c      2007-08-26 
10:50:39 UTC (rev 24661)
+++ branches/4.0-regwrite/source/lib/registry/tests/hive.c      2007-08-26 
11:35:41 UTC (rev 24662)
@@ -27,7 +27,7 @@
 #include "librpc/gen_ndr/winreg.h"
 #include "system/filesys.h"
 
-NTSTATUS torture_temp_dir(TALLOC_CTX *mem_ctx, const char *prefix, 
+NTSTATUS torture_temp_dir(struct torture_context *tctx, const char *prefix, 
                                                                   const char 
**tempdir);
 
 static bool test_del_nonexistant_key(struct torture_context *tctx,

Modified: branches/4.0-regwrite/source/lib/registry/tests/registry.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/tests/registry.c  2007-08-26 
10:50:39 UTC (rev 24661)
+++ branches/4.0-regwrite/source/lib/registry/tests/registry.c  2007-08-26 
11:35:41 UTC (rev 24662)
@@ -27,7 +27,7 @@
 #include "librpc/gen_ndr/winreg.h"
 #include "system/filesys.h"
 
-NTSTATUS torture_temp_dir(TALLOC_CTX *mem_ctx, const char *prefix, 
+NTSTATUS torture_temp_dir(struct torture_context *tctx, const char *prefix, 
                                                                   const char 
**tempdir);
 
 /**

Modified: branches/4.0-regwrite/source/lib/registry/util.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/util.c    2007-08-26 10:50:39 UTC 
(rev 24661)
+++ branches/4.0-regwrite/source/lib/registry/util.c    2007-08-26 11:35:41 UTC 
(rev 24662)
@@ -170,7 +170,9 @@
        }
 }
 
-static WERROR get_abs_parent(TALLOC_CTX *mem_ctx, struct registry_context 
*ctx, const char *path, struct registry_key **parent, const char **name)
+static WERROR get_abs_parent(TALLOC_CTX *mem_ctx, struct registry_context 
*ctx, 
+                                                        const char *path, 
struct registry_key **parent, 
+                                                        const char **name)
 {
        char *parent_name;
        WERROR error;

Modified: branches/4.0-regwrite/source/torture/local/config.mk
===================================================================
--- branches/4.0-regwrite/source/torture/local/config.mk        2007-08-26 
10:50:39 UTC (rev 24661)
+++ branches/4.0-regwrite/source/torture/local/config.mk        2007-08-26 
11:35:41 UTC (rev 24662)
@@ -24,6 +24,7 @@
                irpc.o \
                ../../lib/registry/tests/generic.o \
                ../../lib/registry/tests/hive.o \
+               ../../lib/registry/tests/diff.o \
                ../../lib/registry/tests/registry.o \
                resolve.o \
                ../../lib/util/tests/strlist.o \

Modified: branches/4.0-regwrite/source/torture/ui.h
===================================================================
--- branches/4.0-regwrite/source/torture/ui.h   2007-08-26 10:50:39 UTC (rev 
24661)
+++ branches/4.0-regwrite/source/torture/ui.h   2007-08-26 11:35:41 UTC (rev 
24662)
@@ -265,6 +265,20 @@
        talloc_free(__got); \
        } while(0)
 
+#define torture_assert_file_contains(torture_ctx,filename,expected,cmt)\
+       do { const char *__got, *__expected = (expected); \
+       size_t __size; \
+       __got = file_load(filename, *size, torture_ctx); \
+       if (strcmp_safe(__got, __expected) != 0) { \
+               torture_result(torture_ctx, TORTURE_FAIL, \
+                                          __location__": %s 
contained:\n%sExpected: %s%s\n", \
+                                          __got, __expected, cmt); \
+               talloc_free(__got); \
+               return false; \
+       } \
+       talloc_free(__got); \
+       } while(0)
+
 #define torture_assert_int_equal(torture_ctx,got,expected,cmt)\
        do { int __got = (got), __expected = (expected); \
        if (__got != __expected) { \

Reply via email to