svn commit: samba r24214 - in branches/4.0-regwrite: . source/lib/registry source/lib/registry/tests

jelmer at samba.org jelmer at samba.org
Sat Aug 4 18:15:41 GMT 2007


Author: jelmer
Date: 2007-08-04 18:15:37 +0000 (Sat, 04 Aug 2007)
New Revision: 24214

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

Log:
Make existing tests pass for dir hives.

Modified:
   branches/4.0-regwrite/
   branches/4.0-regwrite/source/lib/registry/dir.c
   branches/4.0-regwrite/source/lib/registry/hive.c
   branches/4.0-regwrite/source/lib/registry/hive.h
   branches/4.0-regwrite/source/lib/registry/local.c
   branches/4.0-regwrite/source/lib/registry/regf.c
   branches/4.0-regwrite/source/lib/registry/tests/hive.c


Changeset:

Property changes on: branches/4.0-regwrite
___________________________________________________________________
Name: bzr:revision-info
   - timestamp: Tue 2007-06-12 18:54:40.131000042 +0200
committer: Jelmer Vernooij <jelmer at samba.org>
properties: 
	branch-nick: 4.0-regwrite
	rebase-of: jelmer at samba.org-20070612165440-1x7k1m3nb1bzbal0

   + timestamp: Tue 2007-06-12 22:08:26.114000082 +0200
committer: Jelmer Vernooij <jelmer at samba.org>
properties: 
	branch-nick: 4.0-regwrite
	rebase-of: jelmer at samba.org-20070612200826-54acueedast7lnmr

Name: bzr:file-ids
   - source/lib/registry/tests/hive.c	hive.c-20070612151642-hsxkm8j4r69ej3px-1

   + 
Name: bzr:revision-id:v3-trunk0
   - 11140 jelmer at samba.org-20070113195019-yrx40nap220myng0-svn3-upgrade
11142 jelmer at samba.org-20070113195431-nshumfy5z00cpnaj-svn3-upgrade
11143 jelmer at samba.org-20070113195555-am0swaxzsoxp05p0-svn3-upgrade
11144 wilco at baanhofman.nl-20070114042604-b7pwqobkrbmlbp8p-svn3-upgrade
11145 wilco at baanhofman.nl-20070114042644-fa3gbnlhall7nkry-svn3-upgrade
11146 wilco at baanhofman.nl-20070114042712-7ueqyvk12ki1frc5-svn3-upgrade
11147 wilco at baanhofman.nl-20070114042737-pwu8etpcs7lmwsms-svn3-upgrade
11148 wilco at baanhofman.nl-20070114043501-7g3vsn55rrr643z6-svn3-upgrade
11149 wilco at baanhofman.nl-20070114061526-fpg1tdt07virwgdk-svn3-upgrade
11150 wilco at baanhofman.nl-20070114133602-npguwp5mbuki5qlp-svn3-upgrade
11151 wilco at baanhofman.nl-20070114134318-79ylyc0gzh43xhqi-svn3-upgrade
11152 wilco at baanhofman.nl-20070114151541-6adzkudwihn30k9j-svn3-upgrade
11153 wilco at baanhofman.nl-20070114152236-z6iel538oen6t8g5-svn3-upgrade
11154 jelmer at samba.org-20070115165838-maz3nw52ijbba8rk-svn3-upgrade
11155 jelmer at samba.org-20070115170435-ert8ib689dhntd4p-svn3-upgrade
11156 jelmer at samba.org-20070115235410-krfav3ng4in38pkx-svn3-upgrade
11157 jelmer at samba.org-20070116222757-087aafuwkwfw4267-svn3-upgrade
11158 jelmer at samba.org-20070117013853-mfuqd1o46k44pk2d-svn3-upgrade
11159 jelmer at samba.org-20070117022606-q54g08ss30u86c5c-svn3-upgrade
11160 jelmer at samba.org-20070124130019-zt6jr00m7df9ur0m-svn3-upgrade
11161 jelmer at samba.org-20070124131946-1yxj4h6b092i8fwd-svn3-upgrade
11162 jelmer at samba.org-20070207151808-znhiwyn0cbnuah7z-svn3-upgrade
11163 jelmer at samba.org-20070208155904-yfb5n63xvx2w0kzz-svn3-upgrade
11164 jelmer at samba.org-20070208161920-v3bjwnhfqy4f6j6y-svn3-upgrade
11165 jelmer at samba.org-20070208171835-589fvhzi1hilvnan-svn3-upgrade
11166 jelmer at samba.org-20070210150222-mpmii8ak5w25btqc-svn3-upgrade
11167 jelmer at samba.org-20070210150533-khwd9jnhx7sqsbo6-svn3-upgrade
11168 jelmer at samba.org-20070212210015-vfey1bupuo237gtc-svn3-upgrade
11169 jelmer at samba.org-20070212210746-y5062ss2jjup80c0-svn3-upgrade
11170 jelmer at samba.org-20070212235354-htyicol9aj4sbk5l-svn3-upgrade
11171 jelmer at samba.org-20070221113700-q1sittkxd3a14jwk-svn3-upgrade
11172 jelmer at samba.org-20070227013556-0w8d95jjxfp1dstd-svn3-upgrade
11173 jelmer at samba.org-20070304145613-pufes2hspszib9qv-svn3-upgrade
11174 jelmer at samba.org-20070304184755-bgf26jhs49nt7s2u-svn3-upgrade
11175 jelmer at samba.org-20070304184903-gwgc00z1gtbmb01b-svn3-upgrade
11176 jelmer at samba.org-20070418170502-zvjkpzrur94nevvb-svn3-upgrade
11177 jelmer at samba.org-20070423140539-m81ruspga5mhbmdm-svn3-upgrade
11178 jelmer at samba.org-20070423141635-i6jhd2syudt5vry4-svn3-upgrade
11179 jelmer at samba.org-20070601151710-8xoranh864s3h1rs-svn3-upgrade
11180 jelmer at samba.org-20070602140325-y0nwln7k17vaj14o-svn3-upgrade
11181 jelmer at samba.org-20070602152504-3bij55pqljimwz31-svn3-upgrade
11182 jelmer at samba.org-20070608215652-x6m0ejk982bzfp76-svn3-upgrade
11183 jelmer at samba.org-20070610222652-11vkd62zyiyk971l-svn3-upgrade
11184 jelmer at samba.org-20070610234755-tpxetmbupthvqfp8-svn3-upgrade
11185 jelmer at samba.org-20070611134928-pew4ydd6a0qnh3iv-svn3-upgrade
11186 jelmer at samba.org-20070612165440-1x7k1m3nb1bzbal0-svn3-upgrade

   + 11140 jelmer at samba.org-20070113195019-yrx40nap220myng0-svn3-upgrade
11142 jelmer at samba.org-20070113195431-nshumfy5z00cpnaj-svn3-upgrade
11143 jelmer at samba.org-20070113195555-am0swaxzsoxp05p0-svn3-upgrade
11144 wilco at baanhofman.nl-20070114042604-b7pwqobkrbmlbp8p-svn3-upgrade
11145 wilco at baanhofman.nl-20070114042644-fa3gbnlhall7nkry-svn3-upgrade
11146 wilco at baanhofman.nl-20070114042712-7ueqyvk12ki1frc5-svn3-upgrade
11147 wilco at baanhofman.nl-20070114042737-pwu8etpcs7lmwsms-svn3-upgrade
11148 wilco at baanhofman.nl-20070114043501-7g3vsn55rrr643z6-svn3-upgrade
11149 wilco at baanhofman.nl-20070114061526-fpg1tdt07virwgdk-svn3-upgrade
11150 wilco at baanhofman.nl-20070114133602-npguwp5mbuki5qlp-svn3-upgrade
11151 wilco at baanhofman.nl-20070114134318-79ylyc0gzh43xhqi-svn3-upgrade
11152 wilco at baanhofman.nl-20070114151541-6adzkudwihn30k9j-svn3-upgrade
11153 wilco at baanhofman.nl-20070114152236-z6iel538oen6t8g5-svn3-upgrade
11154 jelmer at samba.org-20070115165838-maz3nw52ijbba8rk-svn3-upgrade
11155 jelmer at samba.org-20070115170435-ert8ib689dhntd4p-svn3-upgrade
11156 jelmer at samba.org-20070115235410-krfav3ng4in38pkx-svn3-upgrade
11157 jelmer at samba.org-20070116222757-087aafuwkwfw4267-svn3-upgrade
11158 jelmer at samba.org-20070117013853-mfuqd1o46k44pk2d-svn3-upgrade
11159 jelmer at samba.org-20070117022606-q54g08ss30u86c5c-svn3-upgrade
11160 jelmer at samba.org-20070124130019-zt6jr00m7df9ur0m-svn3-upgrade
11161 jelmer at samba.org-20070124131946-1yxj4h6b092i8fwd-svn3-upgrade
11162 jelmer at samba.org-20070207151808-znhiwyn0cbnuah7z-svn3-upgrade
11163 jelmer at samba.org-20070208155904-yfb5n63xvx2w0kzz-svn3-upgrade
11164 jelmer at samba.org-20070208161920-v3bjwnhfqy4f6j6y-svn3-upgrade
11165 jelmer at samba.org-20070208171835-589fvhzi1hilvnan-svn3-upgrade
11166 jelmer at samba.org-20070210150222-mpmii8ak5w25btqc-svn3-upgrade
11167 jelmer at samba.org-20070210150533-khwd9jnhx7sqsbo6-svn3-upgrade
11168 jelmer at samba.org-20070212210015-vfey1bupuo237gtc-svn3-upgrade
11169 jelmer at samba.org-20070212210746-y5062ss2jjup80c0-svn3-upgrade
11170 jelmer at samba.org-20070212235354-htyicol9aj4sbk5l-svn3-upgrade
11171 jelmer at samba.org-20070221113700-q1sittkxd3a14jwk-svn3-upgrade
11172 jelmer at samba.org-20070227013556-0w8d95jjxfp1dstd-svn3-upgrade
11173 jelmer at samba.org-20070304145613-pufes2hspszib9qv-svn3-upgrade
11174 jelmer at samba.org-20070304184755-bgf26jhs49nt7s2u-svn3-upgrade
11175 jelmer at samba.org-20070304184903-gwgc00z1gtbmb01b-svn3-upgrade
11176 jelmer at samba.org-20070418170502-zvjkpzrur94nevvb-svn3-upgrade
11177 jelmer at samba.org-20070423140539-m81ruspga5mhbmdm-svn3-upgrade
11178 jelmer at samba.org-20070423141635-i6jhd2syudt5vry4-svn3-upgrade
11179 jelmer at samba.org-20070601151710-8xoranh864s3h1rs-svn3-upgrade
11180 jelmer at samba.org-20070602140325-y0nwln7k17vaj14o-svn3-upgrade
11181 jelmer at samba.org-20070602152504-3bij55pqljimwz31-svn3-upgrade
11182 jelmer at samba.org-20070608215652-x6m0ejk982bzfp76-svn3-upgrade
11183 jelmer at samba.org-20070610222652-11vkd62zyiyk971l-svn3-upgrade
11184 jelmer at samba.org-20070610234755-tpxetmbupthvqfp8-svn3-upgrade
11185 jelmer at samba.org-20070611134928-pew4ydd6a0qnh3iv-svn3-upgrade
11186 jelmer at samba.org-20070612165440-1x7k1m3nb1bzbal0-svn3-upgrade
11187 jelmer at samba.org-20070612200826-54acueedast7lnmr-svn3-upgrade


Modified: branches/4.0-regwrite/source/lib/registry/dir.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/dir.c	2007-08-04 18:15:26 UTC (rev 24213)
+++ branches/4.0-regwrite/source/lib/registry/dir.c	2007-08-04 18:15:37 UTC (rev 24214)
@@ -28,9 +28,11 @@
 	const char *path;
 };
 
+static struct hive_operations reg_backend_dir;
+
 static WERROR reg_dir_add_key(TALLOC_CTX *mem_ctx, 
-							  struct hive_key *parent, 
-							  const char *name, uint32_t access_mask, 
+							  const struct hive_key *parent, 
+							  const char *name, const char *classname,
 							  struct security_descriptor *desc, 
 							  struct hive_key **result)
 {
@@ -42,20 +44,30 @@
 	ret = mkdir(path, 0700);
 	if (ret == 0) {
 		struct dir_key *key = talloc(mem_ctx, struct dir_key);
+		key->key.ops = &reg_backend_dir;
 		key->path = talloc_steal(key, path);
 		*result = (struct hive_key *)key;
 		return WERR_OK;
 	}
-	return WERR_INVALID_PARAM;
+
+	if (errno == EEXIST)
+		return WERR_ALREADY_EXISTS;
+	printf("FAILED %s BECAUSE: %s\n", path, strerror(errno));
+	return WERR_GENERAL_FAILURE;
 }
 
-static WERROR reg_dir_del_key(struct hive_key *k, const char *name)
+static WERROR reg_dir_del_key(const struct hive_key *k, const char *name)
 {
 	struct dir_key *dk = talloc_get_type(k, struct dir_key);
 	char *child = talloc_asprintf(NULL, "%s/%s", dk->path, name);
 	WERROR ret;
 
-	if (rmdir(child) == 0) ret = WERR_OK; else ret = WERR_GENERAL_FAILURE;
+	if (rmdir(child) == 0) 
+		ret = WERR_OK; 
+	else if (errno == ENOENT)
+		ret = WERR_NOT_FOUND;
+	else
+		ret = WERR_GENERAL_FAILURE;
 
 	talloc_free(child);
 
@@ -85,6 +97,7 @@
 	}
 	closedir(d);
 	ret = talloc(mem_ctx, struct dir_key);
+	ret->key.ops = &reg_backend_dir;
 	ret->path = talloc_steal(ret, fullpath);
 	*subkey = (struct hive_key *)ret;
 	return WERR_OK;
@@ -150,6 +163,7 @@
 		return WERR_INVALID_PARAM;
 
 	dk = talloc(parent_ctx, struct dir_key);
+	dk->key.ops = &reg_backend_dir;
 	dk->path = talloc_strdup(dk, location);
 	*key = (struct hive_key *)dk;
 	return WERR_OK;
@@ -158,16 +172,39 @@
 WERROR reg_create_directory(TALLOC_CTX *parent_ctx, 
 							const char *location, struct hive_key **key)
 {
-	if (mkdir(location, 0644) != 0) {
+	if (mkdir(location, 0700) != 0) {
+		*key = NULL;
 		return WERR_GENERAL_FAILURE;
 	}
 
 	return reg_open_directory(parent_ctx, location, key);
 }
 
+static WERROR reg_dir_get_info(TALLOC_CTX *ctx, const struct hive_key *key, 
+							   const char **classname,
+							   uint32_t *num_subkeys,
+							   uint32_t *num_values,
+							   NTTIME *lastmod)
+{
+	/* FIXME */
+	if (classname != NULL)
+		*classname = NULL;
+
+	if (num_subkeys != NULL)
+		*num_subkeys = 0;
+
+	if (num_values != NULL)
+		*num_values = 0;
+
+	if (lastmod != NULL)
+		*lastmod = 0;
+	return WERR_OK;
+}
+
 static struct hive_operations reg_backend_dir = {
 	.name = "dir",
 	.get_key_by_name = reg_dir_open_key,
+	.get_key_info = reg_dir_get_info,
 	.add_key = reg_dir_add_key,
 	.del_key = reg_dir_del_key,
 	.enum_key = reg_dir_key_by_index

Modified: branches/4.0-regwrite/source/lib/registry/hive.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/hive.c	2007-08-04 18:15:26 UTC (rev 24213)
+++ branches/4.0-regwrite/source/lib/registry/hive.c	2007-08-04 18:15:37 UTC (rev 24214)
@@ -66,7 +66,7 @@
 						 uint32_t *num_values,
 						 NTTIME *last_change_time)
 {
-	return key->context->ops->get_key_info(mem_ctx, key, classname, num_subkeys, 
+	return key->ops->get_key_info(mem_ctx, key, classname, num_subkeys, 
 									num_values, last_change_time);
 }
 
@@ -74,10 +74,10 @@
 						 const char *name, const char *classname, struct security_descriptor *desc,
 						 struct hive_key **key)
 {
-	return parent_key->context->ops->add_key(ctx, parent_key, name, classname, desc, key);
+	return parent_key->ops->add_key(ctx, parent_key, name, classname, desc, key);
 }
 
 _PUBLIC_ WERROR hive_key_del(const struct hive_key *key, const char *name)
 {
-	return key->context->ops->del_key(key, name);
+	return key->ops->del_key(key, name);
 }

Modified: branches/4.0-regwrite/source/lib/registry/hive.h
===================================================================
--- branches/4.0-regwrite/source/lib/registry/hive.h	2007-08-04 18:15:26 UTC (rev 24213)
+++ branches/4.0-regwrite/source/lib/registry/hive.h	2007-08-04 18:15:37 UTC (rev 24214)
@@ -36,22 +36,13 @@
  * does it understand what predefined keys are.
  */
 
-struct hive_context {
+struct hive_key {
 	const struct hive_operations *ops;
 };
 
-struct hive_key {
-	struct hive_context *context;
-};
-
 struct hive_operations {
 	const char *name;	
 
-	/** 
-	 * Open the root key of this hive
-	 */
-	WERROR (*open_root) (struct hive_context *hive, struct hive_key **key);
-	
 	/**
 	 * Open a specific subkey
 	 */

Modified: branches/4.0-regwrite/source/lib/registry/local.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/local.c	2007-08-04 18:15:26 UTC (rev 24213)
+++ branches/4.0-regwrite/source/lib/registry/local.c	2007-08-04 18:15:37 UTC (rev 24214)
@@ -46,8 +46,8 @@
 };
 
 WERROR reg_mount_hive(struct registry_context *ctx, struct reg_key_path *path, 
-					  struct hive_context *hive);
-WERROR reg_unmount_hive(struct registry_context *ctx, struct hive_context *hive);
+					  struct hive_key *hive);
+WERROR reg_unmount_hive(struct registry_context *ctx, struct hive_key *hive);
 
 static WERROR local_open_key(TALLOC_CTX *mem_ctx,
 						   struct registry_key *parent, 

Modified: branches/4.0-regwrite/source/lib/registry/regf.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/regf.c	2007-08-04 18:15:26 UTC (rev 24213)
+++ branches/4.0-regwrite/source/lib/registry/regf.c	2007-08-04 18:15:37 UTC (rev 24214)
@@ -43,7 +43,6 @@
  */
 
 struct regf_data {
-	struct hive_context context;
 	int fd;
 	struct hbin_block **hbins;
 	struct regf_hdr *header;
@@ -53,9 +52,7 @@
 
 struct regf_key_data {
 	struct hive_key key;
-	struct regf_data *hive; /* Duplicaton, as it's already in 
-							   (struct regf_data *)key.context as well, 
-							   but that's harder to get at */
+	struct regf_data *hive; 
 	uint32_t offset;
 	struct nk_block *nk;
 };
@@ -408,7 +405,8 @@
 							 const struct hive_key *key, 
 							 const char **classname,
 							 uint32_t *num_subkeys,
-							 uint32_t *num_values)
+							 uint32_t *num_values,
+							 NTTIME *last_mod_time)
 {
 	const struct regf_key_data *private_data = 
 		(const struct regf_key_data *)key;
@@ -423,6 +421,8 @@
 						 (char*)data.data, private_data->nk->clsname_length);
 	} else 
 		*classname = NULL;
+
+	/* FIXME: Last mod time */
 	
 	return WERR_OK;
 }
@@ -435,7 +435,7 @@
 	struct regf_key_data *ret;
 
 	ret = talloc_zero(ctx, struct regf_key_data);
-	ret->key.context = talloc_reference(ret, regf);
+	ret->hive = talloc_reference(ret, regf);
 	ret->offset = offset;
 	nk = talloc(ret, struct nk_block);
 	ret->nk = nk;
@@ -460,7 +460,7 @@
 	const struct regf_key_data *private_data = 
 			(const struct regf_key_data *)key;
 	struct vk_block *vk;
-	struct regf_data *regf = (struct regf_data *)key->context;
+	struct regf_data *regf = private_data->hive;
 	uint32_t vk_offset;
 	DATA_BLOB tmp;
 
@@ -1402,7 +1402,7 @@
 }
 
 
-static WERROR regf_del_key(struct hive_key *parent, const char *name)
+static WERROR regf_del_key(const struct hive_key *parent, const char *name)
 {
 	const struct regf_key_data *private_data = 
 		(const struct regf_key_data *)parent;
@@ -1454,8 +1454,8 @@
 	return regf_save_hbin(private_data->hive);
 }
 
-static WERROR regf_add_key(TALLOC_CTX *ctx, struct hive_key *parent, 
-						   const char *name, uint32_t access_mask, 
+static WERROR regf_add_key(TALLOC_CTX *ctx, const struct hive_key *parent, 
+						   const char *name, const char *classname,
 						   struct security_descriptor *sec_desc, 
 						   struct hive_key **ret)
 {
@@ -1479,7 +1479,7 @@
 	nk.num_values = 0;
 	nk.values_offset = -1;
 	memset(nk.unk3, 0, 5);
-	nk.clsname_offset = -1;
+	nk.clsname_offset = -1; /* FIXME: fill in */
 	nk.clsname_length = 0;
 	nk.key_name = name;
 	

Modified: branches/4.0-regwrite/source/lib/registry/tests/hive.c
===================================================================
--- branches/4.0-regwrite/source/lib/registry/tests/hive.c	2007-08-04 18:15:26 UTC (rev 24213)
+++ branches/4.0-regwrite/source/lib/registry/tests/hive.c	2007-08-04 18:15:37 UTC (rev 24214)
@@ -31,7 +31,7 @@
 {
 	const struct hive_key *root = test_data;
 	WERROR error = hive_key_del(root, "bla");
-	torture_assert_werr_equal(tctx, error, WERR_BADFILE, 
+	torture_assert_werr_equal(tctx, error, WERR_NOT_FOUND, 
 							  "invalid return code");
 
 	return true;
@@ -50,11 +50,11 @@
 							  NULL);
 	torture_assert_werr_ok(tctx, error, "reg_key_num_subkeys()");
 
-	torture_assert(tctx, num_subkeys != 0, "New key has non-zero subkey count");
+	torture_assert_int_equal(tctx, num_subkeys, 0, "New key has non-zero subkey count");
 
 	torture_assert_werr_ok(tctx, error, "reg_key_num_values");
 
-	torture_assert(tctx, num_values != 0, "New key has non-zero value count");
+	torture_assert_int_equal(tctx, num_values, 0, "New key has non-zero value count");
 
 	return true;
 }
@@ -69,7 +69,7 @@
 
 	error = hive_key_add_name(mem_ctx, root, "Nested Key", NULL, 
 							 NULL, &subkey);
-	torture_assert_werr_ok(tctx, error, "reg_key_add_name");
+	torture_assert_werr_ok(tctx, error, "hive_key_add_name");
 
 	error = hive_key_del(root, "Nested Key");
 	torture_assert_werr_ok(tctx, error, "reg_key_del");
@@ -77,17 +77,8 @@
 	return true;
 }
 
-struct torture_suite *torture_registry_hive(TALLOC_CTX *mem_ctx) 
+static void tcase_add_tests(struct torture_tcase *tcase) 
 {
-	struct torture_tcase *tcase;
-	struct torture_suite *suite = torture_suite_create(mem_ctx, 
-													   "HIVE");
-
-	struct hive_key *key;
-
-	reg_create_directory(mem_ctx, "bla", &key);
-
-	tcase = torture_suite_add_tcase(suite, "dir");
 	torture_tcase_add_simple_test(tcase, "del_nonexistant_key", 
 								  test_del_nonexistant_key);
 
@@ -96,6 +87,45 @@
 
 	torture_tcase_add_simple_test(tcase, "get_info", 
 								  test_keyinfo_root);
+}
 
+static bool hive_setup_dir(struct torture_context *tctx, void **data)
+{
+
+	struct hive_key *key;
+	WERROR error;
+
+	error = reg_create_directory(tctx, "bla", &key);
+	if (!W_ERROR_IS_OK(error)) {
+		fprintf(stderr, "Unable to initialize dir hive\n");
+		return false;
+	}
+
+	*data = key;
+
+	return true;
+}
+
+static bool test_dir_refuses_null_location(struct torture_context *tctx)
+{
+	torture_assert_werr_equal(tctx, WERR_INVALID_PARAM, 
+							  reg_open_directory(NULL, NULL, NULL),
+							  "reg_open_directory accepts NULL location");
+	return true;
+}
+
+struct torture_suite *torture_registry_hive(TALLOC_CTX *mem_ctx) 
+{
+	struct torture_tcase *tcase;
+	struct torture_suite *suite = torture_suite_create(mem_ctx, 
+													   "HIVE");
+
+	torture_suite_add_simple_test(suite, "dir-refuses-null-location", 
+								  test_dir_refuses_null_location);
+
+
+	tcase = torture_suite_add_tcase(suite, "dir");
+	torture_tcase_set_fixture(tcase, hive_setup_dir, NULL);
+	tcase_add_tests(tcase);
 	return suite;
 }



More information about the samba-cvs mailing list