summaryrefslogtreecommitdiffstats
path: root/test
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 /test
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.
Diffstat (limited to 'test')
-rw-r--r--test/.distdep44
-rw-r--r--test/Makefile.in10
-rw-r--r--test/mtime.c149
3 files changed, 178 insertions, 25 deletions
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;
+}
+
+