diff options
author | Robb Matzke <matzke@llnl.gov> | 1998-03-24 23:18:34 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1998-03-24 23:18:34 (GMT) |
commit | e987de2c42628f94e713111c5cbb09bbd3db4a68 (patch) | |
tree | 4baf097e2a0480c9cf24e2ce28749f969afb8fd8 /test | |
parent | 2ed9aa69f74cc2002fb9a03c8893056a1daea1db (diff) | |
download | hdf5-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.c | 4 | ||||
-rw-r--r-- | test/tstab.c | 173 |
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(); } |