mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-18 15:15:56 +08:00
[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.
This commit is contained in:
parent
a34534c9b8
commit
c7b935a9ac
1
MANIFEST
1
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
|
||||
|
167
src/.distdep
167
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
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
#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
|
||||
}
|
||||
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));
|
||||
#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
|
||||
|
@ -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;
|
||||
#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
|
||||
}
|
||||
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));
|
||||
#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
|
||||
|
@ -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
|
||||
|
@ -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@
|
||||
|
149
test/mtime.c
Normal file
149
test/mtime.c
Normal file
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user