summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-07-30 16:38:21 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-07-30 16:38:21 (GMT)
commitc7b935a9acd629929296c1ccdd05214cc5c01e5d (patch)
tree07d051649f88b4d65f98316182e6191b038fc4c7
parenta34534c9b8321f4de9fadd836be926497f7461d4 (diff)
downloadhdf5-c7b935a9acd629929296c1ccdd05214cc5c01e5d.zip
hdf5-c7b935a9acd629929296c1ccdd05214cc5c01e5d.tar.gz
hdf5-c7b935a9acd629929296c1ccdd05214cc5c01e5d.tar.bz2
[svn-r547] Changes since 19980729
---------------------- ./MANIFEST ./test/Makefile.in ./test/mtime.c [NEW] Test for the modification time message. ./src/H5AC.c ./src/H5Fistore.c Turned off printing of statistics on H5close() if H5AC_DEBUG isn't defined.
-rw-r--r--MANIFEST1
-rw-r--r--src/.distdep167
-rw-r--r--src/H5AC.c6
-rw-r--r--src/H5Distore.c41
-rw-r--r--src/H5Fistore.c41
-rw-r--r--test/.distdep44
-rw-r--r--test/Makefile.in10
-rw-r--r--test/mtime.c149
8 files changed, 340 insertions, 119 deletions
diff --git a/MANIFEST b/MANIFEST
index 44fdb5e..db50930 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -264,6 +264,7 @@
./test/iopipe.c
./test/istore.c
./test/links.c
+./test/mtime.c
./test/shtype.c
./test/testhdf5.c
./test/testhdf5.h
diff --git a/src/.distdep b/src/.distdep
index c8e7e52..516813c 100644
--- a/src/.distdep
+++ b/src/.distdep
@@ -1,13 +1,3 @@
-H5AC.o: \
- H5AC.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5ACprivate.h \
- H5ACpublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Ipublic.h
H5B.o: \
H5B.c \
H5private.h \
@@ -628,36 +618,6 @@ H5E.o: \
H5Eprivate.h \
H5Epublic.h \
H5MMprivate.h
-H5Fistore.o: \
- H5Fistore.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Dprivate.h \
- H5Dpublic.h \
- H5Ipublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Gprivate.h \
- H5Gpublic.h \
- H5Bprivate.h \
- H5Bpublic.h \
- H5Oprivate.h \
- H5Opublic.h \
- H5HGprivate.h \
- H5HGpublic.h \
- H5Tprivate.h \
- H5Tpublic.h \
- H5Sprivate.h \
- H5Spublic.h \
- H5Zprivate.h \
- H5Zpublic.h \
- H5Eprivate.h \
- H5Epublic.h \
- H5MFprivate.h \
- H5MFpublic.h \
- H5MMprivate.h \
- H5MMpublic.h
H5Oattr.o: \
H5Oattr.c \
H5private.h \
@@ -760,31 +720,6 @@ H5Ssimp.o: \
H5Tpublic.h \
H5Zprivate.h \
H5Zpublic.h
-H5T.o: \
- H5T.c \
- H5private.h \
- H5public.h \
- H5config.h \
- H5Dprivate.h \
- H5Dpublic.h \
- H5Ipublic.h \
- H5Fprivate.h \
- H5Fpublic.h \
- H5Gprivate.h \
- H5Gpublic.h \
- H5Bprivate.h \
- H5Bpublic.h \
- H5Oprivate.h \
- H5Opublic.h \
- H5HGprivate.h \
- H5HGpublic.h \
- H5Tprivate.h \
- H5Tpublic.h \
- H5Sprivate.h \
- H5Spublic.h \
- H5Zprivate.h \
- H5Zpublic.h \
- H5Iprivate.h
H5V.o: \
H5V.c \
H5private.h \
@@ -1089,3 +1024,105 @@ H5Omtime.o: \
H5HGpublic.h \
H5Tprivate.h \
H5Tpublic.h
+H5D.o: \
+ H5D.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Iprivate.h \
+ H5Ipublic.h \
+ H5ACprivate.h \
+ H5ACpublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Dpublic.h \
+ H5Dprivate.h \
+ H5Gprivate.h \
+ H5Gpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5Oprivate.h \
+ H5Opublic.h \
+ H5HGprivate.h \
+ H5HGpublic.h \
+ H5Tprivate.h \
+ H5Tpublic.h \
+ H5Sprivate.h \
+ H5Spublic.h \
+ H5Zprivate.h \
+ H5Zpublic.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5HLprivate.h \
+ H5HLpublic.h \
+ H5MFprivate.h \
+ H5MFpublic.h
+H5T.o: \
+ H5T.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Dprivate.h \
+ H5Dpublic.h \
+ H5Ipublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Gprivate.h \
+ H5Gpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5Oprivate.h \
+ H5Opublic.h \
+ H5HGprivate.h \
+ H5HGpublic.h \
+ H5Tprivate.h \
+ H5Tpublic.h \
+ H5Sprivate.h \
+ H5Spublic.h \
+ H5Zprivate.h \
+ H5Zpublic.h \
+ H5Iprivate.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5MMprivate.h
+H5AC.o: \
+ H5AC.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5ACprivate.h \
+ H5ACpublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Ipublic.h \
+ H5Dpublic.h \
+ H5Eprivate.h \
+ H5Epublic.h
+H5Fistore.o: \
+ H5Fistore.c \
+ H5private.h \
+ H5public.h \
+ H5config.h \
+ H5Dprivate.h \
+ H5Dpublic.h \
+ H5Ipublic.h \
+ H5Fprivate.h \
+ H5Fpublic.h \
+ H5Gprivate.h \
+ H5Gpublic.h \
+ H5Bprivate.h \
+ H5Bpublic.h \
+ H5Oprivate.h \
+ H5Opublic.h \
+ H5HGprivate.h \
+ H5HGpublic.h \
+ H5Tprivate.h \
+ H5Tpublic.h \
+ H5Sprivate.h \
+ H5Spublic.h \
+ H5Zprivate.h \
+ H5Zpublic.h \
+ H5Eprivate.h \
+ H5Epublic.h \
+ H5MFprivate.h \
+ H5MFpublic.h
diff --git a/src/H5AC.c b/src/H5AC.c
index c34d7c2..b932f53 100644
--- a/src/H5AC.c
+++ b/src/H5AC.c
@@ -845,15 +845,18 @@ H5AC_unprotect(H5F_t *f, const H5AC_class_t *type, const haddr_t *addr,
*-------------------------------------------------------------------------
*/
herr_t
-H5AC_debug(H5F_t *f)
+H5AC_debug(H5F_t __unused__ *f)
{
+#ifdef H5AC_DEBUG
H5AC_subid_t i;
char s[32], ascii[32];
H5AC_t *cache = f->shared->cache;
double miss_rate;
+#endif
FUNC_ENTER(H5AC_debug, FAIL);
+#ifdef H5AC_DEBUG
fprintf(stderr, "H5AC: meta data cache statistics for file %s\n", f->name);
fprintf(stderr, " %-18s %8s %8s %8s %8s+%-8s\n",
"Layer", "Hits", "Misses", "MissRate", "Inits", "Flushes");
@@ -904,6 +907,7 @@ H5AC_debug(H5F_t *f)
((long)(cache->diagnostics[i].nflushes) -
(long)(cache->diagnostics[i].ninits)));
}
+#endif
FUNC_LEAVE(SUCCEED);
}
diff --git a/src/H5Distore.c b/src/H5Distore.c
index 262a58f..a8b321b 100644
--- a/src/H5Distore.c
+++ b/src/H5Distore.c
@@ -1688,21 +1688,32 @@ H5F_istore_stats (H5F_t *f, hbool_t headers)
"-----", "----", "------", "--------", "-----", "-------");
}
- if (rdcc->nhits>0 || rdcc->nmisses>0) {
- miss_rate = 100.0 * rdcc->nmisses /
- (rdcc->nhits + rdcc->nmisses);
- } else {
- miss_rate = 0.0;
- }
- if (miss_rate > 100) {
- sprintf(ascii, "%7d%%", (int) (miss_rate + 0.5));
- } else {
- sprintf(ascii, "%7.2f%%", miss_rate);
+#ifndef H5AC_DEBUG
+ /*
+ * If we're not debugging the H5AC layer then print these statistics only
+ * if we printed the headers that go with them.
+ */
+ if (headers) {
+#endif
+ if (rdcc->nhits>0 || rdcc->nmisses>0) {
+ miss_rate = 100.0 * rdcc->nmisses /
+ (rdcc->nhits + rdcc->nmisses);
+ } else {
+ miss_rate = 0.0;
+ }
+ if (miss_rate > 100) {
+ sprintf(ascii, "%7d%%", (int) (miss_rate + 0.5));
+ } else {
+ sprintf(ascii, "%7.2f%%", miss_rate);
+ }
+
+ fprintf(stderr, " %-18s %8u %8u %7s %8d+%-9ld\n",
+ "raw data chunks", rdcc->nhits, rdcc->nmisses, ascii,
+ rdcc->ninits, (long)(rdcc->nflushes)-(long)(rdcc->ninits));
+#ifndef H5AC_DEBUG
}
-
- fprintf(stderr, " %-18s %8u %8u %7s %8d+%-9ld\n",
- "raw data chunks", rdcc->nhits, rdcc->nmisses, ascii,
- rdcc->ninits, (long)(rdcc->nflushes)-(long)(rdcc->ninits));
+#endif
+
FUNC_LEAVE (SUCCEED);
}
@@ -1823,7 +1834,9 @@ H5F_istore_allocate (H5F_t *f, const H5O_layout_t *layout,
uint8 *chunk=NULL;
intn idx_hint=0;
size_t chunk_size;
+#ifdef AKC
H5F_istore_ud1_t udata;
+#endif
FUNC_ENTER(H5F_istore_allocate, FAIL);
#ifdef AKC
diff --git a/src/H5Fistore.c b/src/H5Fistore.c
index 262a58f..a8b321b 100644
--- a/src/H5Fistore.c
+++ b/src/H5Fistore.c
@@ -1688,21 +1688,32 @@ H5F_istore_stats (H5F_t *f, hbool_t headers)
"-----", "----", "------", "--------", "-----", "-------");
}
- if (rdcc->nhits>0 || rdcc->nmisses>0) {
- miss_rate = 100.0 * rdcc->nmisses /
- (rdcc->nhits + rdcc->nmisses);
- } else {
- miss_rate = 0.0;
- }
- if (miss_rate > 100) {
- sprintf(ascii, "%7d%%", (int) (miss_rate + 0.5));
- } else {
- sprintf(ascii, "%7.2f%%", miss_rate);
+#ifndef H5AC_DEBUG
+ /*
+ * If we're not debugging the H5AC layer then print these statistics only
+ * if we printed the headers that go with them.
+ */
+ if (headers) {
+#endif
+ if (rdcc->nhits>0 || rdcc->nmisses>0) {
+ miss_rate = 100.0 * rdcc->nmisses /
+ (rdcc->nhits + rdcc->nmisses);
+ } else {
+ miss_rate = 0.0;
+ }
+ if (miss_rate > 100) {
+ sprintf(ascii, "%7d%%", (int) (miss_rate + 0.5));
+ } else {
+ sprintf(ascii, "%7.2f%%", miss_rate);
+ }
+
+ fprintf(stderr, " %-18s %8u %8u %7s %8d+%-9ld\n",
+ "raw data chunks", rdcc->nhits, rdcc->nmisses, ascii,
+ rdcc->ninits, (long)(rdcc->nflushes)-(long)(rdcc->ninits));
+#ifndef H5AC_DEBUG
}
-
- fprintf(stderr, " %-18s %8u %8u %7s %8d+%-9ld\n",
- "raw data chunks", rdcc->nhits, rdcc->nmisses, ascii,
- rdcc->ninits, (long)(rdcc->nflushes)-(long)(rdcc->ninits));
+#endif
+
FUNC_LEAVE (SUCCEED);
}
@@ -1823,7 +1834,9 @@ H5F_istore_allocate (H5F_t *f, const H5O_layout_t *layout,
uint8 *chunk=NULL;
intn idx_hint=0;
size_t chunk_size;
+#ifdef AKC
H5F_istore_ud1_t udata;
+#endif
FUNC_ENTER(H5F_istore_allocate, FAIL);
#ifdef AKC
diff --git a/test/.distdep b/test/.distdep
index a98c168..502e178 100644
--- a/test/.distdep
+++ b/test/.distdep
@@ -174,28 +174,6 @@ external.o: \
../src/H5Zpublic.h \
../src/H5Spublic.h \
../src/H5Tpublic.h
-iopipe.o: \
- iopipe.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
gheap.o: \
gheap.c \
../src/H5private.h \
@@ -469,3 +447,25 @@ cmpd_dset.o: \
../src/H5Ppublic.h \
../src/H5Zpublic.h \
../src/H5Spublic.h
+iopipe.o: \
+ iopipe.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
diff --git a/test/Makefile.in b/test/Makefile.in
index 3103f0e..899452d 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -12,7 +12,7 @@ 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
+ external shtype links big mtime
TIMINGS=iopipe chunk
# Temporary files
@@ -24,7 +24,7 @@ MOSTLYCLEAN=cmpd_dset.h5 dataset.h5 extend.h5 istore.h5 tfile1.h5 tfile2.h5 \
gheap1.h5 gheap2.h5 gheap3.h5 gheap4.h5 shtype0.h5 shtype1.h5 \
shtype2a.h5 shtype2b.h5 shtype3.h5 links.h5 chunk.h5 big.data \
big[0-9][0-9][0-9][0-9][0-9].h5 dtypes1.h5 dtypes2.h5 tattr.h5 \
- tselect.h5
+ tselect.h5 mtime.h5
# Source and object files for programs... The TEST_SRC list contains all the
# source files and is used for things like dependencies, archiving, etc. The
@@ -32,7 +32,8 @@ MOSTLYCLEAN=cmpd_dset.h5 dataset.h5 extend.h5 istore.h5 tfile1.h5 tfile2.h5 \
# overlap with other tests.
TEST_SRC=testhdf5.c tattr.c tfile.c theap.c tmeta.c tohdr.c tselect.c tstab.c \
th5s.c dtypes.c hyperslab.c istore.c dsets.c cmpd_dset.c extend.c \
- external.c iopipe.c gheap.c shtype.c big.c links.c chunk.c bittests.c
+ external.c iopipe.c gheap.c shtype.c big.c links.c chunk.c bittests.c \
+ mtime.c
TEST_OBJ=$(PROG_SRC:.c=.o)
# Private header files (not to be installed)...
@@ -98,4 +99,7 @@ links: links.o ../src/libhdf5.a
chunk: chunk.o ../src/libhdf5.a
$(CC) $(CFLAGS) -o $@ chunk.o ../src/libhdf5.a $(LIBS)
+mtime: mtime.o ../src/libhdf5.a
+ $(CC) $(CFLAGS) -o $@ mtime.o ../src/libhdf5.a $(LIBS)
+
@CONCLUDE@
diff --git a/test/mtime.c b/test/mtime.c
new file mode 100644
index 0000000..cd78cc1
--- /dev/null
+++ b/test/mtime.c
@@ -0,0 +1,149 @@
+/*
+ * Copyright © 1998 NCSA
+ * All rights reserved.
+ *
+ * Programmer: Robb Matzke <matzke@llnl.gov>
+ * Thursday, July 30, 1998
+ *
+ * Purpose: Determines if the modification time message is working
+ * properly. Specifically, the code in H5O_mtime_decode() is
+ * very OS-dependent and this test tries to figure out if it's
+ * working properly.
+ */
+#include <assert.h>
+#include <hdf5.h>
+#include <math.h>
+#include <sys/time.h>
+#include <time.h>
+
+#define FALSE 0
+#define TRUE 1
+#define FILE_NAME_1 "mtime.h5"
+
+#include <H5config.h>
+#ifndef HAVE_ATTRIBUTE
+# undef __attribute__
+# define __attribute__(X) /*void*/
+# define __unused__ /*void*/
+#else
+# define __unused__ __attribute__((unused))
+#endif
+
+
+/*-------------------------------------------------------------------------
+ * Function: display_error_cb
+ *
+ * Purpose: Displays the error stack after printing "*FAILED*".
+ *
+ * Return: Success: 0
+ *
+ * Failure: -1
+ *
+ * Programmer: Robb Matzke
+ * Wednesday, March 4, 1998
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+static herr_t
+display_error_cb (void __unused__ *client_data)
+{
+ puts ("*FAILED*");
+ H5Eprint (stdout);
+ return 0;
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: cleanup
+ *
+ * Purpose: Removes test files
+ *
+ * Return: void
+ *
+ * Programmer: Robb Matzke
+ * Thursday, June 4, 1998
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+static void
+cleanup (void)
+{
+ if (!getenv ("HDF5_NOCLEANUP")) {
+ remove (FILE_NAME_1);
+ }
+}
+
+
+/*-------------------------------------------------------------------------
+ * Function: main
+ *
+ * Purpose: H5O_mtime_decode() test.
+ *
+ * Return: Success:
+ *
+ * Failure:
+ *
+ * Programmer: Robb Matzke
+ * Thursday, July 30, 1998
+ *
+ * Modifications:
+ *
+ *-------------------------------------------------------------------------
+ */
+int
+main(void)
+{
+ hid_t file, space, dset;
+ hsize_t size[1] = {2};
+ time_t now;
+ struct tm *tm;
+ H5G_stat_t sb;
+ char buf1[32], buf2[32];
+
+ H5Eset_auto(display_error_cb, NULL);
+ printf("%-70s", "Testing modification time messages");
+
+ /* Create the file, create a dataset, then close the file */
+ file = H5Fcreate(FILE_NAME_1, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+ if (file<0) return 1;
+ if ((space = H5Screate_simple(1, size, NULL))<0) return 1;
+ dset = H5Dcreate(file, "dset", H5T_NATIVE_CHAR, space, H5P_DEFAULT);
+ if (dset<0) return 1;
+ now = time(NULL);
+ if (H5Dclose(dset)<0) return 1;
+ if (H5Sclose(space)<0) return 1;
+ if (H5Fclose(file)<0) return 1;
+
+ /* Open the file and get the modification time */
+ if ((file = H5Fopen(FILE_NAME_1, H5F_ACC_RDONLY, H5P_DEFAULT))<0) return 1;
+ if (H5Gstat(file, "dset", TRUE, &sb)<0) return 1;
+ if (H5Fclose(file)<0) return 1;
+
+ /* Compare times -- they must be within 60 seconds of one another */
+ if (0==sb.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(difftime(now, sb.mtime))>60.0) {
+ puts("*FAILED*");
+ tm = localtime(&(sb.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);
+ printf(" Got %s instead of %s\n", buf1, buf2);
+ return 1;
+ }
+
+ /* All looks good */
+ puts(" PASSED");
+ cleanup();
+ return 0;
+}
+
+