summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-08-31 13:46:47 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-08-31 13:46:47 (GMT)
commit1e38c1378582208f6f109042c37c8fff858f985d (patch)
treecbed547d5490029b2f49f31a61187d33edaa8933 /test
parente4053f38c2b2732ffa48b7401581db2516b47951 (diff)
downloadhdf5-1e38c1378582208f6f109042c37c8fff858f985d.zip
hdf5-1e38c1378582208f6f109042c37c8fff858f985d.tar.gz
hdf5-1e38c1378582208f6f109042c37c8fff858f985d.tar.bz2
[svn-r633] Changes since 19980828
---------------------- ./RELEASE Updated with important changes I made since the second beta. ./src/H5A.c ./src/H5D.c ./src/H5Dprivate.h ./src/H5G.c ./src/H5Gprivate.h ./src/H5R.c ./src/H5Rprivate.h ./src/H5T.c ./src/H5Tprivate.h Any API function that used to take an `hid_t loc_id' followed by a `const char *name' can now take any type of object for the loc_id as long as the object is somehow associated with a file. Internally, H5G_loc() was modified to return an H5G_entry_t* instead of an H5G_t* so it's more general. Among other things, this allows one to retrieve information about an object like a named type or dataset without knowing the name of the type or dataset: int get_nlinks (hid_t obj) { H5G_stat_t sb; if (H5Gstat(obj, ".", TRUE, &sb)<0) return -1; return sb.nlink; } ./test/gheap.c ./test/istore.c These files needed a couple of changes because they call some of the internal functions whose H5G_t arguments changed to H5G_entry_t. ./src/H5A.c Got rid of all the switch statements for getting symbol table entries for varous objects and replaced them with a call to H5G_loc() allowing attributes to automatically apply to any type of object that belongs to a file. ./test/Makefile.in Moved the ragged array tests from the normal list of tests to the `make timings' target. ./test/ragged.c Added rewrite tests -- rewrite the rows of a dataset changing the number of rows and the length of each row. ./test/mtime.c Added a test that checks that H5Gstat() can be called with a dataset as the first argument. ./src/H5S.c Added #ifdef HAVE_PARALLEL around code to check for the HDF5_MPI_OPT_TYPES environment variable because the global variable that gets set is #ifdef'd. ./bin/release bzip2 uses .bz2 as the file extension.
Diffstat (limited to 'test')
-rw-r--r--test/.distdep141
-rw-r--r--test/Makefile.in4
-rw-r--r--test/gheap.c7
-rw-r--r--test/istore.c4
-rw-r--r--test/mtime.c28
-rw-r--r--test/ragged.c31
6 files changed, 119 insertions, 96 deletions
diff --git a/test/.distdep b/test/.distdep
index 217d2b7..b5d511d 100644
--- a/test/.distdep
+++ b/test/.distdep
@@ -178,34 +178,6 @@ th5s.o: \
../src/H5Tpublic.h \
../src/H5Zprivate.h \
../src/H5Zpublic.h
-istore.o: \
- istore.c \
- ../src/H5private.h \
- ../src/H5public.h \
- ../src/H5config.h \
- ../src/H5Iprivate.h \
- ../src/H5Ipublic.h \
- ../src/H5Pprivate.h \
- ../src/H5Ppublic.h \
- ../src/H5Dpublic.h \
- ../src/H5Fpublic.h \
- ../src/H5Zpublic.h \
- ../src/H5Fprivate.h \
- ../src/H5Gprivate.h \
- ../src/H5Gpublic.h \
- ../src/H5Bprivate.h \
- ../src/H5Bpublic.h \
- ../src/H5MMprivate.h \
- ../src/H5MMpublic.h \
- ../src/H5Oprivate.h \
- ../src/H5Opublic.h \
- ../src/H5HGprivate.h \
- ../src/H5HGpublic.h \
- ../src/H5Tprivate.h \
- ../src/H5Tpublic.h \
- ../src/H5Sprivate.h \
- ../src/H5Spublic.h \
- ../src/H5Zprivate.h
external.o: \
external.c \
../src/hdf5.h \
@@ -228,25 +200,6 @@ external.o: \
../src/H5Zpublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h
-gheap.o: \
- gheap.c \
- ../src/H5private.h \
- ../src/H5public.h \
- ../src/H5config.h \
- ../src/H5Eprivate.h \
- ../src/H5Epublic.h \
- ../src/H5Ipublic.h \
- ../src/H5Fprivate.h \
- ../src/H5Fpublic.h \
- ../src/H5Dpublic.h \
- ../src/H5Gprivate.h \
- ../src/H5Gpublic.h \
- ../src/H5Bprivate.h \
- ../src/H5Bpublic.h \
- ../src/H5HGprivate.h \
- ../src/H5HGpublic.h \
- ../src/H5Pprivate.h \
- ../src/H5Ppublic.h
shtype.o: \
shtype.c \
../src/hdf5.h \
@@ -363,29 +316,6 @@ extend.o: \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Spublic.h
-mtime.o: \
- mtime.c \
- ../src/hdf5.h \
- ../src/H5public.h \
- ../src/H5config.h \
- ../src/H5Ipublic.h \
- ../src/H5Apublic.h \
- ../src/H5ACpublic.h \
- ../src/H5Bpublic.h \
- ../src/H5Dpublic.h \
- ../src/H5Epublic.h \
- ../src/H5Fpublic.h \
- ../src/H5Gpublic.h \
- ../src/H5HGpublic.h \
- ../src/H5HLpublic.h \
- ../src/H5MFpublic.h \
- ../src/H5MMpublic.h \
- ../src/H5Opublic.h \
- ../src/H5Ppublic.h \
- ../src/H5Zpublic.h \
- ../src/H5Spublic.h \
- ../src/H5Tpublic.h \
- ../src/H5private.h
links.o: \
links.c \
../src/hdf5.h \
@@ -496,6 +426,77 @@ bittests.o: \
../src/H5Tpublic.h \
../src/H5Gprivate.h \
../src/H5Gpublic.h
+istore.o: \
+ istore.c \
+ ../src/H5private.h \
+ ../src/H5public.h \
+ ../src/H5config.h \
+ ../src/H5Iprivate.h \
+ ../src/H5Ipublic.h \
+ ../src/H5Pprivate.h \
+ ../src/H5Ppublic.h \
+ ../src/H5Dpublic.h \
+ ../src/H5Fpublic.h \
+ ../src/H5Zpublic.h \
+ ../src/H5Fprivate.h \
+ ../src/H5Gprivate.h \
+ ../src/H5Gpublic.h \
+ ../src/H5Bprivate.h \
+ ../src/H5Bpublic.h \
+ ../src/H5MMprivate.h \
+ ../src/H5MMpublic.h \
+ ../src/H5Oprivate.h \
+ ../src/H5Opublic.h \
+ ../src/H5HGprivate.h \
+ ../src/H5HGpublic.h \
+ ../src/H5Tprivate.h \
+ ../src/H5Tpublic.h \
+ ../src/H5Sprivate.h \
+ ../src/H5Spublic.h \
+ ../src/H5Zprivate.h
+gheap.o: \
+ gheap.c \
+ ../src/H5private.h \
+ ../src/H5public.h \
+ ../src/H5config.h \
+ ../src/H5Eprivate.h \
+ ../src/H5Epublic.h \
+ ../src/H5Ipublic.h \
+ ../src/H5Fprivate.h \
+ ../src/H5Fpublic.h \
+ ../src/H5Dpublic.h \
+ ../src/H5Gprivate.h \
+ ../src/H5Gpublic.h \
+ ../src/H5Bprivate.h \
+ ../src/H5Bpublic.h \
+ ../src/H5HGprivate.h \
+ ../src/H5HGpublic.h \
+ ../src/H5Pprivate.h \
+ ../src/H5Ppublic.h
+mtime.o: \
+ mtime.c \
+ ../src/hdf5.h \
+ ../src/H5public.h \
+ ../src/H5config.h \
+ ../src/H5Ipublic.h \
+ ../src/H5Apublic.h \
+ ../src/H5ACpublic.h \
+ ../src/H5Bpublic.h \
+ ../src/H5Dpublic.h \
+ ../src/H5Epublic.h \
+ ../src/H5Fpublic.h \
+ ../src/H5Gpublic.h \
+ ../src/H5HGpublic.h \
+ ../src/H5HLpublic.h \
+ ../src/H5MFpublic.h \
+ ../src/H5MMpublic.h \
+ ../src/H5Opublic.h \
+ ../src/H5Ppublic.h \
+ ../src/H5Zpublic.h \
+ ../src/H5Rpublic.h \
+ ../src/H5Spublic.h \
+ ../src/H5Tpublic.h \
+ ../src/H5private.h
ragged.o: \
ragged.c \
../src/hdf5.h \
diff --git a/test/Makefile.in b/test/Makefile.in
index f4024b5..3fb99cd 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -12,8 +12,8 @@ CPPFLAGS=-I. -I../src @CPPFLAGS@
# These are our main targets. They should be listed in the order to be
# executed, generally most specific tests to least specific tests.
TESTS=testhdf5 gheap hyperslab istore bittests dtypes dsets cmpd_dset extend \
- external shtype links big mtime ragged
-TIMINGS=iopipe chunk
+ external shtype links big mtime
+TIMINGS=iopipe chunk ragged
# Temporary files
MOSTLYCLEAN=cmpd_dset.h5 dataset.h5 extend.h5 istore.h5 tfile1.h5 tfile2.h5 \
diff --git a/test/gheap.c b/test/gheap.c
index d6c6768..d4d4633 100644
--- a/test/gheap.c
+++ b/test/gheap.c
@@ -40,7 +40,7 @@
* Function: emit_diagnostics
*
* Purpose: If debugging is turned on then this function will cause the
- * library to emit it's diagnostic messages now instead of when
+ * library to emit its diagnostic messages now instead of when
* we're trying to make the output look nice.
*
* Return: void
@@ -55,9 +55,10 @@
static void
emit_diagnostics (void)
{
- H5F_t *f = H5F_open (TEST_FILE_NAME0, H5F_ACC_CREAT|H5F_ACC_RDWR|H5F_ACC_TRUNC,
+ H5F_t *f = H5F_open (TEST_FILE_NAME0,
+ H5F_ACC_CREAT|H5F_ACC_RDWR|H5F_ACC_TRUNC,
NULL, NULL);
- H5G_t *g = H5G_create (f->shared->root_grp, "emit", 0);
+ H5G_t *g = H5G_create (H5G_entof(f->shared->root_grp), "emit", 0);
H5G_close (g);
H5F_close (f);
}
diff --git a/test/istore.c b/test/istore.c
index 24c5cd7..5af8075 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(H5G_getcwg(f), name, ent) < 0) {
+ if (H5G_insert(H5G_entof(H5G_getcwg(f)), name, ent) < 0) {
printf("*FAILED*\n");
if (!isatty(1)) {
AT();
@@ -638,7 +638,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(H5G_getcwg(f), "flushing_diagnostics", 0);
+ dir = H5G_create(H5G_entof(H5G_getcwg(f)), "flushing_diagnostics", 0);
H5G_close(dir);
dir = NULL;
diff --git a/test/mtime.c b/test/mtime.c
index 6f5327a..91d7400 100644
--- a/test/mtime.c
+++ b/test/mtime.c
@@ -101,7 +101,7 @@ main(void)
hsize_t size[1] = {2};
time_t now;
struct tm *tm;
- H5G_stat_t sb;
+ H5G_stat_t sb1, sb2;
char buf1[32], buf2[32];
H5Eset_auto(display_error_cb, NULL);
@@ -118,21 +118,37 @@ main(void)
if (H5Sclose(space)<0) return 1;
if (H5Fclose(file)<0) return 1;
- /* Open the file and get the modification time */
+ /*
+ * Open the file and get the modification time. We'll test the new
+ * H5Gstat() arguments too: being able to stat something without knowing
+ * its name.
+ */
if ((file = H5Fopen(FILE_NAME_1, H5F_ACC_RDONLY, H5P_DEFAULT))<0) return 1;
- if (H5Gstat(file, "dset", TRUE, &sb)<0) return 1;
+ if (H5Gstat(file, "dset", TRUE, &sb1)<0) return 1;
+ if ((dset=H5Dopen(file, "dset"))<0) return 1;
+ if (H5Gstat(dset, ".", TRUE, &sb2)<0) return 1;
+ if (H5Dclose(dset)<0) return 1;
if (H5Fclose(file)<0) return 1;
+ /* Compare times from the two ways of calling H5Gstat() */
+ if (sb1.objno[0]!=sb2.objno[0] || sb1.objno[1]!=sb2.objno[1] ||
+ sb1.mtime!=sb2.mtime) {
+ puts("*FAILED*");
+ puts(" Calling H5Gstat() with the dataset ID returned different");
+ puts(" values than calling it with a file and dataset name.");
+ return 1;
+ }
+
/* Compare times -- they must be within 60 seconds of one another */
- if (0==sb.mtime) {
+ if (0==sb1.mtime) {
puts("--SKIP--");
puts(" The modification time could not be decoded on this OS.");
puts(" Modification times will be mantained in the file bug cannot");
puts(" be queried on this system. See H5O_mtime_decode().");
return 1;
- } else if (fabs(HDdifftime(now, sb.mtime))>60.0) {
+ } else if (fabs(HDdifftime(now, sb1.mtime))>60.0) {
puts("*FAILED*");
- tm = localtime(&(sb.mtime));
+ tm = localtime(&(sb1.mtime));
strftime(buf1, sizeof buf1, "%Y-%m-%d %H:%M:%S", tm);
tm = localtime(&now);
strftime(buf2, sizeof buf2, "%Y-%m-%d %H:%M:%S", tm);
diff --git a/test/ragged.c b/test/ragged.c
index f5ba2f4..1e2d6ea 100644
--- a/test/ragged.c
+++ b/test/ragged.c
@@ -138,7 +138,7 @@ rand_nelmts(int reset_counters)
{
double p = (rand() % 1000000)/1000000.0;
double total = 0.0;
- size_t size, i;
+ size_t size=0, i;
static size_t ncalls=0;
if (reset_counters) {
@@ -174,9 +174,9 @@ rand_nelmts(int reset_counters)
/*-------------------------------------------------------------------------
- * Function: ragged_append
+ * Function: ragged_write_all
*
- * Purpose: Writes rows to the end of ragged array RA.
+ * Purpose: Writes rows to the ragged array RA.
*
* Return: Success: 0
*
@@ -190,7 +190,7 @@ rand_nelmts(int reset_counters)
*-------------------------------------------------------------------------
*/
static int
-ragged_append(hid_t ra, hsize_t rows_at_once)
+ragged_write_all(hid_t ra, hsize_t rows_at_once)
{
int *dd, total_nelmts=0;
hssize_t row; /*current row number */
@@ -203,7 +203,7 @@ ragged_append(hid_t ra, hsize_t rows_at_once)
char s[64]; /*tempory string buffer */
char testname[80];
- sprintf(testname, "Testing append, units of %lu",
+ sprintf(testname, "Testing write all, units of %lu",
(unsigned long)rows_at_once);
printf("%s...\n", testname);
fflush(stdout);
@@ -276,7 +276,7 @@ ragged_append(hid_t ra, hsize_t rows_at_once)
/*-------------------------------------------------------------------------
- * Function: ragged_readall
+ * Function: ragged_read_all
*
* Purpose: Reads all rows of a ragged array in row order a few rows at a
* time.
@@ -293,7 +293,7 @@ ragged_append(hid_t ra, hsize_t rows_at_once)
*-------------------------------------------------------------------------
*/
static int
-ragged_readall(hid_t ra, hsize_t rows_at_once)
+ragged_read_all(hid_t ra, hsize_t rows_at_once)
{
int total_nelmts=0;
hsize_t i, j; /*counters */
@@ -403,7 +403,7 @@ ragged_readall(hid_t ra, hsize_t rows_at_once)
/*-------------------------------------------------------------------------
- * Function: ragged_readshort
+ * Function: ragged_read_short
*
* Purpose: Reads all the data but only the part that is in the `raw'
* dataset. We should see a nice speed increase because we
@@ -422,7 +422,7 @@ ragged_readall(hid_t ra, hsize_t rows_at_once)
*-------------------------------------------------------------------------
*/
static int
-ragged_readshort(hid_t ra, hsize_t rows_at_once, hsize_t width)
+ragged_read_short(hid_t ra, hsize_t rows_at_once, hsize_t width)
{
int total_nelmts=0;
hsize_t i, j;
@@ -545,7 +545,7 @@ ragged_readshort(hid_t ra, hsize_t rows_at_once, hsize_t width)
printf("%-70s*FAILED*\n\n", testname);
return -1;
}
-
+
/*-------------------------------------------------------------------------
* Function: main
@@ -600,9 +600,14 @@ main(int argc, char *argv[])
if (H5Pclose(dcpl)<0) goto error;
/* The tests */
- if (ragged_append(ra, rows_at_once)<0) goto error;
- if (ragged_readall(ra, rows_at_once)<0) goto error;
- if (ragged_readshort(ra, rows_at_once, ch_size[1])<0) goto error;
+ if (ragged_write_all(ra, rows_at_once)<0) goto error;
+ if (ragged_read_all(ra, rows_at_once)<0) goto error;
+ if (ragged_read_short(ra, rows_at_once, ch_size[1])<0) goto error;
+
+ /* The tests again */
+ if (ragged_write_all(ra, rows_at_once)<0) goto error;
+ if (ragged_read_all(ra, rows_at_once)<0) goto error;
+ if (ragged_read_short(ra, rows_at_once, ch_size[1])<0) goto error;
/* Conclusions */
printf("\n\nDistribution of row lengths:\n");