summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-03-24 23:18:34 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-03-24 23:18:34 (GMT)
commite987de2c42628f94e713111c5cbb09bbd3db4a68 (patch)
tree4baf097e2a0480c9cf24e2ce28749f969afb8fd8 /test
parent2ed9aa69f74cc2002fb9a03c8893056a1daea1db (diff)
downloadhdf5-e987de2c42628f94e713111c5cbb09bbd3db4a68.zip
hdf5-e987de2c42628f94e713111c5cbb09bbd3db4a68.tar.gz
hdf5-e987de2c42628f94e713111c5cbb09bbd3db4a68.tar.bz2
[svn-r329] Changes since 19980324
---------------------- ./src/H5D.c Zero element requests for H5Dread() and H5Dwrite() succeed. ./src/H5F.c ./src/H5Fprivate.h All files will have a root group. This greatly simplifies the library at the expense of ~1k extra bytes in files that have only one object. ./src/H5D.c ./src/H5Dprivate.h ./html/Groups.html Functions that used to take a file ID and an object name can now take a group ID instead of a file ID. This doesn't change the API, only it's documentation. ./src/H5G.c ./src/H5Gprivate.h ./src/H5O.c ./src/H5Oprivate.h Removed extra file arguments from some internal functions since the file pointer can be found from the group pointer or a symbol table entry (ent->file or H5G_fileof(group)). Besides, when we eventually implement mounting one file on another, H5G_namei() might return a different file than what you gave it, and that file is part of the returned symbol table entry. ./src/H5G.c Fixed bug with `.' appearing in a name. It used to hang the library. ./src/Makefile.in ./src/h5ls.c [NEW] ./MANIFEST Added `h5ls' a simple program that takes a file name and a directory and lists the contents of that directory using H5Giterate(). ./test/istore.c Changed an argument to H5G_create(). ./test/tstab.c Removed test_1 which was testing that files with a single object don't have a root group. This no longer applies.
Diffstat (limited to 'test')
-rw-r--r--test/istore.c4
-rw-r--r--test/tstab.c173
2 files changed, 2 insertions, 175 deletions
diff --git a/test/istore.c b/test/istore.c
index e11cb04..f95c3fd 100644
--- a/test/istore.c
+++ b/test/istore.c
@@ -134,7 +134,7 @@ new_object(H5F_t *f, const char *name, intn ndims, H5G_entry_t *ent/*out*/)
return -1;
}
/* Give the object header a name */
- if (H5G_insert(name, ent) < 0) {
+ if (H5G_insert(H5G_getcwg(f), name, ent) < 0) {
printf("*FAILED*\n");
if (!isatty(1)) {
AT();
@@ -605,7 +605,7 @@ main(int argc, char *argv[])
* By creating a group we cause the library to emit it's debugging
* diagnostic messages before we begin testing...
*/
- dir = H5G_create(f, "flushing_diagnostics", 0);
+ dir = H5G_create(H5G_getcwg(f), "flushing_diagnostics", 0);
H5G_close(dir);
dir = NULL;
diff --git a/test/tstab.c b/test/tstab.c
index b4018ab..94641aa 100644
--- a/test/tstab.c
+++ b/test/tstab.c
@@ -31,178 +31,6 @@
#include <H5Gpkg.h>
/*-------------------------------------------------------------------------
- * Function: test_1
- *
- * Purpose: Tests the non-directory features of the HDF5 file. If the
- * file has just one non-directory object, then that object
- * should be the root object and there is no directory.
- *
- * Return: void
- *
- * Programmer: Robb Matzke
- * robb@maya.nuance.com
- * Aug 29 1997
- *
- * Modifications:
- *
- *-------------------------------------------------------------------------
- */
-static void
-test_1(void)
-{
- hid_t fid;
- H5F_t *f;
- H5G_entry_t ent1, ent2, obj_ent, dir_ent;
- herr_t status;
- H5O_name_t name_mesg;
- void *status_ptr;
- hbool_t b;
-
- MESSAGE(2, ("........non-directory files\n"));
-
- /*
- * Test 1A: Create an empty file and add a non-directory object
- * to the file with the name `/'. The object should become the
- * root object and should not have a name message.
- */
-
- /* create the file */
- fid = H5Fcreate("tstab1.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
- CHECK(fid, FAIL, "H5Fcreate");
- f = H5I_object(fid);
- CHECK(f, NULL, "H5I_object");
-
- /* create the object */
- status = H5O_create(f, 0, &ent1);
- CHECK_I(status, "H5O_create");
- status = H5G_insert("/", &ent1);
- CHECK_I(status, "H5G_insert");
- status = H5O_close(&ent1);
- CHECK_I(status, "H5O_close");
-
- /* look for a name message -- it shouldn't be present */
- status_ptr = H5O_read(&ent1, H5O_NAME, 0, &name_mesg);
- VERIFY(status_ptr, NULL, "H5O_read [didn't fail but should have]");
-
- /*
- * Test 1B: Attempt to read the root object using the name `/'.
- */
- memset(&dir_ent, 0xff, sizeof(H5G_entry_t));
- memset(&obj_ent, 0xff, sizeof(H5G_entry_t));
- status = H5G_find(f, "/", &dir_ent, &obj_ent);
- CHECK_I(status, "H5G_find");
-
- /* Is it really the root object? */
- b = H5F_addr_defined(&(dir_ent.header));
- VERIFY(b, FALSE, "H5G_insert");
- b = H5F_addr_eq(&(obj_ent.header), &(ent1.header));
- VERIFY(b, TRUE, "H5G_insert");
-
- /*
- * Test 1C: Add a second object to the file to see if the first object
- * gets moved into the new root directory along with the second object.
- */
-
- /* create the object */
- status = H5O_create(f, 0, &ent2);
- CHECK_I(status, "H5O_create");
- status = H5G_insert("/second", &ent2);
- CHECK_I(status, "H5G_insert");
- status = H5O_close(&ent2);
- CHECK_I(status, "H5O_close");
-
- /* try to read the first object */
- HDmemset(&obj_ent, 0xff, sizeof(H5G_entry_t));
- status = H5G_find(f, "/Root Object", NULL, &obj_ent);
- CHECK_I(status, "H5G_find");
- b = H5F_addr_defined(&(obj_ent.header));
- VERIFY(b, TRUE, "H5G_insert");
- b = H5F_addr_eq(&(obj_ent.header), &(ent1.header));
- VERIFY(b, TRUE, "H5G_create");
-
- /* close the file */
- H5Fclose(fid);
-
- /*
- * Test 1D: Create an empty file and add a non-directory object
- * to the file with the name `/foo'. The object should become the
- * root object and should have a name message with the value `foo'.
- */
-
- /* create the file */
- fid = H5Fcreate("tstab1.h5", H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
- CHECK(fid, FAIL, "H5Fcreate");
- f = H5I_object(fid);
- CHECK(f, NULL, "H5I_object");
-
- /* create the object */
- status = H5O_create(f, 0, &ent1);
- CHECK_I(status, "H5O_create");
- status = H5G_insert("/foo", &ent1);
- CHECK_I(status, "H5G_insert");
- status = H5O_close(&ent1);
- CHECK_I(status, "H5O_close");
-
- /* does it have the correct name message? */
- status_ptr = H5O_read(&ent1, H5O_NAME, 0, &name_mesg);
- CHECK_PTR(status_ptr, "H5O_read");
- CHECK_PTR(name_mesg.s, "H5O_read");
- VERIFY(strcmp(name_mesg.s, "foo"), 0, "H5G_insert");
- if (status_ptr)
- H5O_reset(H5O_NAME, &name_mesg); /*free message data */
-
- /*
- * Test 1E: Try to read the root object with the name `/' and `/foo'
- */
- HDmemset(&dir_ent, 0, sizeof(H5G_entry_t));
- HDmemset(&obj_ent, 0, sizeof(H5G_entry_t));
- status = H5G_find(f, "/", &dir_ent, &obj_ent);
- CHECK_I(status, "H5G_find");
- b = H5F_addr_defined(&(dir_ent.header));
- VERIFY(b, FALSE, "H5G_insert");
- b = H5F_addr_eq(&(obj_ent.header), &(ent1.header));
- VERIFY(b, TRUE, "H5G_insert");
-
- /* now as `/foo' */
- HDmemset(&dir_ent, 0, sizeof(H5G_entry_t));
- HDmemset(&obj_ent, 0, sizeof(H5G_entry_t));
- status = H5G_find(f, "/foo", &dir_ent, &obj_ent);
- CHECK_I(status, "H5G_find");
- b = H5F_addr_defined(&(dir_ent.header));
- VERIFY(b, FALSE, "H5G_insert");
- b = H5F_addr_eq(&(obj_ent.header), &(ent1.header));
- VERIFY(b, TRUE, "H5G_insert");
-
- /*
- * Test 1F: Create another object. This should create a root directory
- * and move the previous root object into that directory.
- */
-
- /* create the object */
- status = H5O_create(f, 0, &ent2);
- CHECK_I(status, "H5O_create");
- status = H5G_insert("/second", &ent2);
- CHECK_I(status, "H5G_insert");
- status = H5O_close(&ent2);
- CHECK_I(status, "H5O_close");
-
- /* try to read the first object */
- HDmemset(&obj_ent, 0, sizeof(H5G_entry_t));
- status = H5G_find(f, "/foo", NULL, &obj_ent);
- CHECK_I(status, "H5G_find");
- b = H5F_addr_eq(&(obj_ent.header), &(ent1.header));
- VERIFY(b, TRUE, "H5G_insert");
-
- /* the first object should not have a name message */
- status_ptr = H5O_read(&ent1, H5O_NAME, 0, &name_mesg);
- VERIFY(status_ptr, NULL, "H5O_read [didn't fail but should have]");
-
- /* close the file */
- status = H5Fclose(fid);
- CHECK_I(status, "H5Fclose");
-}
-
-/*-------------------------------------------------------------------------
* Function: test_2
*
* Purpose: Creates a really large directory.
@@ -313,6 +141,5 @@ test_2(void)
void
test_stab(void)
{
- test_1();
test_2();
}