diff options
-rw-r--r-- | test/tfile.c | 4 | ||||
-rw-r--r-- | test/tstab.c | 38 |
2 files changed, 28 insertions, 14 deletions
diff --git a/test/tfile.c b/test/tfile.c index 81c8cd2..7bc8c91 100644 --- a/test/tfile.c +++ b/test/tfile.c @@ -225,8 +225,8 @@ printf("BTREE_SIZE=%u\n",parm); ****************************************************************/ static void test_file_open(void) { - hatom_t fid1,fid2,fid3; /* HDF5 File IDs */ - hatom_t tmpl1,tmpl2; /* File creation templates */ + hatom_t fid1; /* HDF5 File IDs */ + hatom_t tmpl1; /* File creation templates */ uintn parm; /* File-creation parameters */ herr_t ret; /* Generic return value */ diff --git a/test/tstab.c b/test/tstab.c index 0b4c80c..7dddc6c 100644 --- a/test/tstab.c +++ b/test/tstab.c @@ -19,6 +19,7 @@ #include "H5ACprivate.h" #include "H5Fprivate.h" #include "H5Gprivate.h" +#include "H5Oprivate.h" /*------------------------------------------------------------------------- @@ -41,11 +42,11 @@ test_stab (void) { hatom_t fid; hdf5_file_t *f; - haddr_t addr; - H5G_entry_t root, sub; + H5G_entry_t cwd, sub; int i; char name[256]; herr_t status; + int nsyms = 5000; MESSAGE (5, print_func("Testing Symbol Tables\n");); @@ -55,20 +56,33 @@ test_stab (void) f = H5Aatom_object (fid); CHECK (f, NULL, "H5Aatom_object"); - /* create a new symbol table */ - addr = H5G_stab_new (f, &root, 100); - CHECK_I (addr, "H5G_stab_new"); - MESSAGE (8, print_func ("Root address is %lu\n", (unsigned long)addr);); - - /* create some empty symbol tables as objects in the root stab */ - for (i=0; i<16384; i++) { - addr = H5G_stab_new (f, &sub, 0); - CHECK_I (addr, "H5G_stab_new"); + /* create a new root symbol table */ + status = H5G_mkroot (f, 100); + CHECK_I (status, "H5G_mkroot"); + /* + * Create a directory that has so many entries that the root + * of the B-tree ends up splitting. + */ + status = H5G_new (f, NULL, NULL, "/big", nsyms*10+2, &cwd); + CHECK_I (status, "H5G_new"); + H5G_stab_new (f, &sub, 0); + status = H5O_link (f, sub.header, &sub, nsyms-1); + CHECK_I (status, "H5O_link"); + + + for (i=0; i<5000; i++) { sprintf (name, "sub%05d", i); MESSAGE (8, print_func ("%s\n", name);); - status = H5G_stab_insert (f, &root, name, &sub); +#if 1 + status = H5G_insert (f, &cwd, NULL, name, &sub); + CHECK_I (status, "H5G_insert"); +#else + status = H5G_stab_new (f, &sub, 0); + CHECK_I (status, "H5G_stab_new"); + status = H5G_stab_insert (f, &cwd, name, &sub); CHECK_I (status, "H5G_stab_insert"); +#endif } |