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) { \