Changeset 745 for trunk/server/source4/lib/registry/tests
- Timestamp:
- Nov 27, 2012, 4:43:17 PM (13 years ago)
- Location:
- trunk/server
- Files:
-
- 1 deleted
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
- Property svn:mergeinfo changed
/vendor/current merged: 581,587,591,594,597,600,615,618,740
- Property svn:mergeinfo changed
-
trunk/server/source4/lib/registry/tests/diff.c
r414 r745 53 53 { 54 54 struct diff_tcase_data *td = tcase_data; 55 struct smb_iconv_convenience *ic;56 55 struct reg_diff_callbacks *callbacks; 57 56 void *data; 58 57 WERROR error; 59 58 60 ic = lp_iconv_convenience(tctx->lp_ctx); 61 62 error = reg_diff_load(td->filename, iconv_convenience, callbacks, data); 59 error = reg_diff_load(td->filename, callbacks, data); 63 60 torture_assert_werr_ok(tctx, error, "reg_diff_load"); 64 61 … … 72 69 WERROR error; 73 70 74 error = reg_diff_apply(td->r1_ctx, lp_iconv_convenience(tctx->lp_ctx),td->filename);71 error = reg_diff_apply(td->r1_ctx, td->filename); 75 72 torture_assert_werr_ok(tctx, error, "reg_diff_apply"); 76 73 … … 228 225 torture_assert_werr_ok(tctx, error, "Creating HKLM\\..\\Policies\\Explorer failed"); 229 226 230 231 blob.data = (void *)talloc(r2_ctx, uint32_t); 232 SIVAL(blob.data, 0, 0x03ffffff); 233 blob.length = sizeof(uint32_t); 227 blob.data = talloc_array(r2_ctx, uint8_t, 4); 228 /* set "0x03FFFFFF" in little endian format */ 229 blob.data[0] = 0xFF; blob.data[1] = 0xFF; 230 blob.data[2] = 0xFF; blob.data[3] = 0x03; 231 blob.length = 4; 234 232 235 233 r1_ctx->ops->set_value(newkey, "NoDrives", REG_DWORD, blob); … … 247 245 { 248 246 struct diff_tcase_data *td; 249 struct smb_iconv_convenience *ic;250 247 WERROR error; 251 248 … … 253 250 td = *data; 254 251 255 ic = lp_iconv_convenience(tctx->lp_ctx);256 257 252 td->filename = talloc_asprintf(tctx, "%s/test.pol", td->tempdir); 258 error = reg_preg_diff_save(tctx, td->filename, ic, &td->callbacks, &td->callback_data); 253 error = reg_preg_diff_save(tctx, td->filename, &td->callbacks, 254 &td->callback_data); 259 255 torture_assert_werr_ok(tctx, error, "reg_preg_diff_save"); 260 256 … … 265 261 { 266 262 struct diff_tcase_data *td; 267 struct smb_iconv_convenience *ic;268 263 WERROR error; 269 264 … … 271 266 td = *data; 272 267 273 ic = lp_iconv_convenience(tctx->lp_ctx);274 275 268 td->filename = talloc_asprintf(tctx, "%s/test.reg", td->tempdir); 276 error = reg_dotreg_diff_save(tctx, td->filename, ic, &td->callbacks, &td->callback_data); 269 error = reg_dotreg_diff_save(tctx, td->filename, &td->callbacks, 270 &td->callback_data); 277 271 torture_assert_werr_ok(tctx, error, "reg_dotreg_diff_save"); 278 272 … … 283 277 { 284 278 struct torture_tcase *tcase; 285 struct torture_suite *suite = torture_suite_create(mem_ctx, " DIFF");279 struct torture_suite *suite = torture_suite_create(mem_ctx, "diff"); 286 280 287 281 tcase = torture_suite_add_tcase(suite, "PReg"); -
trunk/server/source4/lib/registry/tests/generic.c
r414 r745 32 32 static bool test_str_regtype(struct torture_context *ctx) 33 33 { 34 torture_assert_str_equal(ctx, str_regtype(0), 35 "REG_NONE", "REG_NONE failed"); 34 36 torture_assert_str_equal(ctx, str_regtype(1), 35 37 "REG_SZ", "REG_SZ failed"); 38 torture_assert_str_equal(ctx, str_regtype(2), 39 "REG_EXPAND_SZ", "REG_EXPAND_SZ failed"); 40 torture_assert_str_equal(ctx, str_regtype(3), 41 "REG_BINARY", "REG_BINARY failed"); 36 42 torture_assert_str_equal(ctx, str_regtype(4), 37 43 "REG_DWORD", "REG_DWORD failed"); 44 torture_assert_str_equal(ctx, str_regtype(5), 45 "REG_DWORD_BIG_ENDIAN", "REG_DWORD_BIG_ENDIAN failed"); 46 torture_assert_str_equal(ctx, str_regtype(6), 47 "REG_LINK", "REG_LINK failed"); 48 torture_assert_str_equal(ctx, str_regtype(7), 49 "REG_MULTI_SZ", "REG_MULTI_SZ failed"); 50 torture_assert_str_equal(ctx, str_regtype(8), 51 "REG_RESOURCE_LIST", "REG_RESOURCE_LIST failed"); 52 torture_assert_str_equal(ctx, str_regtype(9), 53 "REG_FULL_RESOURCE_DESCRIPTOR", "REG_FULL_RESOURCE_DESCRIPTOR failed"); 54 torture_assert_str_equal(ctx, str_regtype(10), 55 "REG_RESOURCE_REQUIREMENTS_LIST", "REG_RESOURCE_REQUIREMENTS_LIST failed"); 56 torture_assert_str_equal(ctx, str_regtype(11), 57 "REG_QWORD", "REG_QWORD failed"); 38 58 39 59 return true; … … 43 63 static bool test_reg_val_data_string_dword(struct torture_context *ctx) 44 64 { 45 uint 32_t d = 0x20;46 DATA_BLOB db = { (uint8_t *)&d, sizeof(d)};47 torture_assert_str_equal(ctx, "0x 20",48 reg_val_data_string(ctx, lp_iconv_convenience(ctx->lp_ctx),REG_DWORD, db),65 uint8_t d[] = { 0x20, 0x00, 0x00, 0x00 }; 66 DATA_BLOB db = { d, 4 }; 67 torture_assert_str_equal(ctx, "0x00000020", 68 reg_val_data_string(ctx, REG_DWORD, db), 49 69 "dword failed"); 70 return true; 71 } 72 73 static bool test_reg_val_data_string_dword_big_endian(struct torture_context *ctx) 74 { 75 uint8_t d[] = { 0x20, 0x00, 0x00, 0x00 }; 76 DATA_BLOB db = { d, 4 }; 77 torture_assert_str_equal(ctx, "0x00000020", 78 reg_val_data_string(ctx, REG_DWORD_BIG_ENDIAN, db), 79 "dword failed"); 80 return true; 81 } 82 83 static bool test_reg_val_data_string_qword(struct torture_context *ctx) 84 { 85 uint8_t d[] = { 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; 86 DATA_BLOB db = { d, 8 }; 87 torture_assert_str_equal(ctx, "0x0000000000000020", 88 reg_val_data_string(ctx, REG_QWORD, db), 89 "qword failed"); 50 90 return true; 51 91 } … … 54 94 { 55 95 DATA_BLOB db; 56 convert_string_talloc _convenience(ctx, lp_iconv_convenience(ctx->lp_ctx), CH_UTF8, CH_UTF16,96 convert_string_talloc(ctx, CH_UTF8, CH_UTF16, 57 97 "bla", 3, (void **)&db.data, &db.length, false); 58 98 torture_assert_str_equal(ctx, "bla", 59 reg_val_data_string(ctx, lp_iconv_convenience(ctx->lp_ctx),REG_SZ, db),99 reg_val_data_string(ctx, REG_SZ, db), 60 100 "sz failed"); 61 101 db.length = 4; 62 102 torture_assert_str_equal(ctx, "bl", 63 reg_val_data_string(ctx, lp_iconv_convenience(ctx->lp_ctx),REG_SZ, db),103 reg_val_data_string(ctx, REG_SZ, db), 64 104 "sz failed"); 65 105 return true; … … 71 111 DATA_BLOB db = { x, 4 }; 72 112 torture_assert_str_equal(ctx, "01020304", 73 reg_val_data_string(ctx, lp_iconv_convenience(ctx->lp_ctx),REG_BINARY, db),113 reg_val_data_string(ctx, REG_BINARY, db), 74 114 "binary failed"); 75 115 return true; … … 81 121 DATA_BLOB db = { NULL, 0 }; 82 122 torture_assert_str_equal(ctx, "", 83 reg_val_data_string(ctx, lp_iconv_convenience(ctx->lp_ctx),REG_BINARY, db),123 reg_val_data_string(ctx, REG_BINARY, db), 84 124 "empty failed"); 85 125 return true; … … 89 129 { 90 130 DATA_BLOB data; 91 convert_string_talloc _convenience(ctx, lp_iconv_convenience(ctx->lp_ctx), CH_UTF8, CH_UTF16,131 convert_string_talloc(ctx, CH_UTF8, CH_UTF16, 92 132 "stationary traveller", 93 133 strlen("stationary traveller"), 94 134 (void **)&data.data, &data.length, false); 95 135 torture_assert_str_equal(ctx, "camel = REG_SZ : stationary traveller", 96 reg_val_description(ctx, lp_iconv_convenience(ctx->lp_ctx),"camel", REG_SZ, data),136 reg_val_description(ctx, "camel", REG_SZ, data), 97 137 "reg_val_description failed"); 98 138 return true; … … 103 143 { 104 144 DATA_BLOB data; 105 convert_string_talloc _convenience(ctx, lp_iconv_convenience(ctx->lp_ctx), CH_UTF8, CH_UTF16,145 convert_string_talloc(ctx, CH_UTF8, CH_UTF16, 106 146 "west berlin", 107 147 strlen("west berlin"), 108 148 (void **)&data.data, &data.length, false); 109 149 torture_assert_str_equal(ctx, "<No Name> = REG_SZ : west berlin", 110 reg_val_description(ctx, lp_iconv_convenience(ctx->lp_ctx),NULL, REG_SZ, data),150 reg_val_description(ctx, NULL, REG_SZ, data), 111 151 "description with null name failed"); 112 152 return true; … … 115 155 struct torture_suite *torture_registry(TALLOC_CTX *mem_ctx) 116 156 { 117 struct torture_suite *suite = torture_suite_create(mem_ctx, " REGISTRY");157 struct torture_suite *suite = torture_suite_create(mem_ctx, "registry"); 118 158 torture_suite_add_simple_test(suite, "str_regtype", 119 159 test_str_regtype); 120 160 torture_suite_add_simple_test(suite, "reg_val_data_string dword", 121 161 test_reg_val_data_string_dword); 162 torture_suite_add_simple_test(suite, "reg_val_data_string dword_big_endian", 163 test_reg_val_data_string_dword_big_endian); 164 torture_suite_add_simple_test(suite, "reg_val_data_string qword", 165 test_reg_val_data_string_qword); 122 166 torture_suite_add_simple_test(suite, "reg_val_data_string sz", 123 167 test_reg_val_data_string_sz); -
trunk/server/source4/lib/registry/tests/hive.c
r414 r745 33 33 { 34 34 const struct hive_key *root = (const struct hive_key *)test_data; 35 WERROR error = hive_key_del( root, "bla");35 WERROR error = hive_key_del(tctx, root, "bla"); 36 36 torture_assert_werr_equal(tctx, error, WERR_BADFILE, 37 37 "invalid return code"); … … 70 70 WERROR error; 71 71 struct hive_key *subkey; 72 char data[4];73 SIVAL(data, 0, 42);72 uint8_t d[] = { 0x42, 0x00, 0x00, 0x00 }; 73 DATA_BLOB db = { d, 4 }; 74 74 75 75 error = hive_key_add_name(tctx, root, "Nested Keyll", NULL, … … 77 77 torture_assert_werr_ok(tctx, error, "hive_key_add_name"); 78 78 79 error = hive_key_set_value(root, "Answer", REG_DWORD, 80 data_blob_talloc(tctx, data, sizeof(data))); 79 error = hive_key_set_value(root, "Answer", REG_DWORD, db); 81 80 torture_assert_werr_ok(tctx, error, "hive_key_set_value"); 82 81 … … 108 107 torture_assert_werr_ok(tctx, error, "hive_key_add_name"); 109 108 110 error = hive_key_del( root, "Nested Key");109 error = hive_key_del(mem_ctx, root, "Nested Key"); 111 110 torture_assert_werr_ok(tctx, error, "reg_key_del"); 112 111 … … 122 121 const struct hive_key *root = (const struct hive_key *)test_data; 123 122 TALLOC_CTX *mem_ctx = tctx; 124 char data[4];125 SIVAL(data, 0, 42);123 uint8_t d[] = { 0x42, 0x00, 0x00, 0x00 }; 124 DATA_BLOB db = { d, 4 }; 126 125 127 126 /* Create a new key under the root */ … … 136 135 137 136 /* Create a new value under "Child Key" */ 138 error = hive_key_set_value(subkey2, "Answer Recursive", REG_DWORD, 139 data_blob_talloc(mem_ctx, data, sizeof(data))); 137 error = hive_key_set_value(subkey2, "Answer Recursive", REG_DWORD, db); 140 138 torture_assert_werr_ok(tctx, error, "hive_key_set_value"); 141 139 142 140 /* Deleting "Parent Key" will also delete "Child Key" and the value. */ 143 error = hive_key_del( root, "Parent Key");141 error = hive_key_del(mem_ctx, root, "Parent Key"); 144 142 torture_assert_werr_ok(tctx, error, "hive_key_del"); 145 143 … … 167 165 torture_assert_werr_ok(tctx, error, "hive_key_add_name"); 168 166 169 error = hive_key_del( root, "Nested Key");167 error = hive_key_del(mem_ctx, root, "Nested Key"); 170 168 torture_assert_werr_ok(tctx, error, "reg_key_del"); 171 169 172 error = hive_key_del( root, "Nested Key");170 error = hive_key_del(mem_ctx, root, "Nested Key"); 173 171 torture_assert_werr_equal(tctx, error, WERR_BADFILE, "reg_key_del"); 174 172 … … 183 181 const struct hive_key *root = (const struct hive_key *)test_data; 184 182 TALLOC_CTX *mem_ctx = tctx; 185 char data[4];186 SIVAL(data, 0, 42);183 uint8_t d[] = { 0x42, 0x00, 0x00, 0x00 }; 184 DATA_BLOB db = { d, 4 }; 187 185 188 186 error = hive_key_add_name(mem_ctx, root, "YA Nested Key", NULL, … … 190 188 torture_assert_werr_ok(tctx, error, "hive_key_add_name"); 191 189 192 error = hive_key_set_value(subkey, "Answer", REG_DWORD, 193 data_blob_talloc(mem_ctx, data, sizeof(data))); 190 error = hive_key_set_value(subkey, "Answer", REG_DWORD, db); 194 191 torture_assert_werr_ok(tctx, error, "hive_key_set_value"); 195 192 … … 203 200 const struct hive_key *root = (const struct hive_key *)test_data; 204 201 TALLOC_CTX *mem_ctx = tctx; 205 char data[4];206 202 uint32_t type; 207 DATA_BLOB value; 208 209 SIVAL(data, 0, 42); 203 uint8_t d[] = { 0x42, 0x00, 0x00, 0x00 }; 204 DATA_BLOB db = { d, 4 }, data; 210 205 211 206 error = hive_key_add_name(mem_ctx, root, "EYA Nested Key", NULL, … … 213 208 torture_assert_werr_ok(tctx, error, "hive_key_add_name"); 214 209 215 error = hive_get_value(mem_ctx, subkey, "Answer", &type, & value);210 error = hive_get_value(mem_ctx, subkey, "Answer", &type, &data); 216 211 torture_assert_werr_equal(tctx, error, WERR_BADFILE, 217 212 "getting missing value"); 218 213 219 error = hive_key_set_value(subkey, "Answer", REG_DWORD, 220 data_blob_talloc(mem_ctx, data, sizeof(data))); 221 torture_assert_werr_ok(tctx, error, "hive_key_set_value"); 222 223 error = hive_get_value(mem_ctx, subkey, "Answer", &type, &value); 214 error = hive_key_set_value(subkey, "Answer", REG_DWORD, db); 215 torture_assert_werr_ok(tctx, error, "hive_key_set_value"); 216 217 error = hive_get_value(mem_ctx, subkey, "Answer", &type, &data); 224 218 torture_assert_werr_ok(tctx, error, "getting value"); 225 219 226 torture_assert_int_equal(tctx, value.length, 4, "value length");220 torture_assert_int_equal(tctx, data.length, 4, "value length"); 227 221 torture_assert_int_equal(tctx, type, REG_DWORD, "value type"); 228 222 229 torture_assert_mem_equal(tctx, &data, value.data, sizeof(uint32_t), 230 "value data"); 223 torture_assert_mem_equal(tctx, data.data, db.data, 4, "value data"); 231 224 232 225 return true; … … 239 232 const struct hive_key *root = (const struct hive_key *)test_data; 240 233 TALLOC_CTX *mem_ctx = tctx; 241 char data[4];242 234 uint32_t type; 243 DATA_BLOB value; 244 245 SIVAL(data, 0, 42); 235 uint8_t d[] = { 0x42, 0x00, 0x00, 0x00 }; 236 DATA_BLOB db = { d, 4 }; 246 237 247 238 error = hive_key_add_name(mem_ctx, root, "EEYA Nested Key", NULL, … … 249 240 torture_assert_werr_ok(tctx, error, "hive_key_add_name"); 250 241 251 error = hive_key_set_value(subkey, "Answer", REG_DWORD, 252 data_blob_talloc(mem_ctx, data, sizeof(data))); 253 torture_assert_werr_ok(tctx, error, "hive_key_set_value"); 254 255 error = hive_key_del_value(subkey, "Answer"); 242 error = hive_key_set_value(subkey, "Answer", REG_DWORD, db); 243 torture_assert_werr_ok(tctx, error, "hive_key_set_value"); 244 245 error = hive_key_del_value(mem_ctx, subkey, "Answer"); 256 246 torture_assert_werr_ok(tctx, error, "deleting value"); 257 247 258 error = hive_get_value(mem_ctx, subkey, "Answer", &type, & value);248 error = hive_get_value(mem_ctx, subkey, "Answer", &type, &db); 259 249 torture_assert_werr_equal(tctx, error, WERR_BADFILE, "getting value"); 260 250 261 error = hive_key_del_value( subkey, "Answer");251 error = hive_key_del_value(mem_ctx, subkey, "Answer"); 262 252 torture_assert_werr_equal(tctx, error, WERR_BADFILE, 263 253 "deleting value"); … … 273 263 const struct hive_key *root = (const struct hive_key *)test_data; 274 264 TALLOC_CTX *mem_ctx = tctx; 275 char data[4];276 265 uint32_t type; 277 DATA_BLOB value; 266 uint8_t d[] = { 0x42, 0x00, 0x00, 0x00 }; 267 DATA_BLOB db = { d, 4 }, data; 278 268 const char *name; 279 int data_val = 42;280 SIVAL(data, 0, data_val);281 269 282 270 error = hive_key_add_name(mem_ctx, root, "AYAYA Nested Key", NULL, … … 284 272 torture_assert_werr_ok(tctx, error, "hive_key_add_name"); 285 273 286 error = hive_key_set_value(subkey, "Answer", REG_DWORD, 287 data_blob_talloc(mem_ctx, data, sizeof(data))); 274 error = hive_key_set_value(subkey, "Answer", REG_DWORD, db); 288 275 torture_assert_werr_ok(tctx, error, "hive_key_set_value"); 289 276 290 277 error = hive_get_value_by_index(mem_ctx, subkey, 0, &name, 291 &type, & value);278 &type, &data); 292 279 torture_assert_werr_ok(tctx, error, "getting value"); 293 280 294 281 torture_assert_str_equal(tctx, name, "Answer", "value name"); 295 282 296 torture_assert_int_equal(tctx, value.length, 4, "value length");283 torture_assert_int_equal(tctx, data.length, 4, "value length"); 297 284 torture_assert_int_equal(tctx, type, REG_DWORD, "value type"); 298 285 286 torture_assert_mem_equal(tctx, data.data, db.data, 4, "value data"); 299 287 300 torture_assert_int_equal(tctx, data_val, IVAL(value.data, 0), "value data");301 302 288 error = hive_get_value_by_index(mem_ctx, subkey, 1, &name, 303 &type, & value);289 &type, &data); 304 290 torture_assert_werr_equal(tctx, error, WERR_NO_MORE_ITEMS, 305 291 "getting missing value"); … … 450 436 rmdir(dirname); 451 437 452 error = reg_create_regf_file(tctx, lp_iconv_convenience(tctx->lp_ctx), 453 dirname, 5, &key); 438 error = reg_create_regf_file(tctx, dirname, 5, &key); 454 439 if (!W_ERROR_IS_OK(error)) { 455 440 fprintf(stderr, "Unable to create new regf file\n"); … … 473 458 { 474 459 struct torture_tcase *tcase; 475 struct torture_suite *suite = torture_suite_create(mem_ctx, " HIVE");460 struct torture_suite *suite = torture_suite_create(mem_ctx, "hive"); 476 461 477 462 torture_suite_add_simple_test(suite, "dir-refuses-null-location", -
trunk/server/source4/lib/registry/tests/registry.c
r414 r745 118 118 { 119 119 struct registry_context *rctx = (struct registry_context *)_data; 120 struct registry_key *root, *newkey 1, *newkey2;120 struct registry_key *root, *newkey; 121 121 WERROR error; 122 122 … … 125 125 "getting predefined key failed"); 126 126 127 error = reg_key_add_name(rctx, root, "Hamburg ", NULL, NULL,128 &newkey 1);127 error = reg_key_add_name(rctx, root, "Hamburg\\Hamburg", NULL, NULL, 128 &newkey); 129 129 torture_assert_werr_ok(tctx, error, "Creating key return code"); 130 torture_assert(tctx, newkey1 != NULL, "Creating new key"); 131 132 error = reg_key_add_name(rctx, root, "Hamburg\\Hamburg", NULL, NULL, 133 &newkey2); 134 torture_assert_werr_ok(tctx, error, "Creating key return code"); 135 torture_assert(tctx, newkey2 != NULL, "Creating new key"); 130 torture_assert(tctx, newkey != NULL, "Creating new key"); 136 131 137 132 return true; … … 201 196 torture_assert(tctx, newkey != NULL, "Creating new key"); 202 197 203 error = reg_key_del( root, "Polen");198 error = reg_key_del(tctx, root, "Polen"); 204 199 torture_assert_werr_ok(tctx, error, "Delete key"); 205 200 206 error = reg_key_del( root, "Polen");201 error = reg_key_del(tctx, root, "Polen"); 207 202 torture_assert_werr_equal(tctx, error, WERR_BADFILE, 208 203 "Delete missing key"); … … 465 460 torture_assert_werr_ok (tctx, error, "setting value"); 466 461 467 error = reg_del_value( subkey, __FUNCTION__);462 error = reg_del_value(tctx, subkey, __FUNCTION__); 468 463 torture_assert_werr_ok (tctx, error, "unsetting value"); 469 464 … … 585 580 { 586 581 struct torture_tcase *tcase; 587 struct torture_suite *suite = torture_suite_create(mem_ctx, " REGISTRY");582 struct torture_suite *suite = torture_suite_create(mem_ctx, "registry"); 588 583 589 584 tcase = torture_suite_add_tcase(suite, "local");
Note:
See TracChangeset
for help on using the changeset viewer.