mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-04-12 17:31:09 +08:00
[svn-r914] Changes since 19981113
---------------------- ./config/conclude.in ./test/Makefile.in ./tools/Makefile.in The Makefile $TESTS variable has finally been split into $TEST_PROGS and $TEST_SCRIPTS with the latter being the names of shell scripts that need to be run with `/bin/sh'. Now we don't have to copy each shell script before we run it. NOTE: THIS CHANGE DOES NOT AFFECT THE PABLO MAKEFILE SINCE THAT FILE IS A COPY OF A PREVIOUSLY GENERATED MAKEFILE. ./src/Makefile.in Added H5Snone.c to the source list. ./src/H5G.c Plugged a memory leak by emptying the object type "isa" table when the library is closed. ./src/H5Tconv.c ./src/H5Tpkg.h Added 48 new type functions to take advantage of hardware for integer type conversions. These functions are not registered in the conversion table yet because I haven't fully tested them. ./src/H5Tpkg.h Removed __unused__ qualifiers from prototypes.
This commit is contained in:
parent
c3570e984a
commit
841e168a04
19
bin/iostats
19
bin/iostats
@ -3,8 +3,9 @@
|
||||
# Usage: pipe the output of Linux's `strace' program into the stdin of
|
||||
# this command, and the output of this command into gnuplot.
|
||||
|
||||
$filename = shift || "tstab2.h5";
|
||||
$total = 0;
|
||||
my $filename = shift || "tstab2.h5";
|
||||
my $total = 0;
|
||||
my %What; # What{pos}{nbytes}{r|w} = naccesses
|
||||
|
||||
while (<>) {
|
||||
if (!defined $fd) {
|
||||
@ -22,6 +23,7 @@ while (<>) {
|
||||
} elsif (/^write\((\d+), ".*?"(\.\.\.)?, \d+\)\s*= (\d+)/ &&
|
||||
$1==$fd && $3>=0) {
|
||||
my $nbytes = $3;
|
||||
$What{$pos}{$nbytes}{w}++;
|
||||
printf "%d %d\n", $total, $pos;
|
||||
$pos += $nbytes;
|
||||
$total += $nbytes;
|
||||
@ -30,6 +32,7 @@ while (<>) {
|
||||
} elsif (/^read\((\d+), ".*?"(\.\.\.)?, \d+\)\s*= (\d+)/ &&
|
||||
$1==$fd && $3>=0) {
|
||||
my $nbytes = $3;
|
||||
$What{$pos}{$nbytes}{r}++;
|
||||
printf "%d %d\n", $total, $pos;
|
||||
$pos += $nbytes;
|
||||
$total += $nbytes;
|
||||
@ -37,4 +40,14 @@ while (<>) {
|
||||
die $_;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
print "="x36, "\n";
|
||||
printf "%8s %8s %8s %8s\n","Position","NBytes","NReads","NWrites";
|
||||
for $pos (sort {$a<=>$b} keys %What) {
|
||||
for $nbytes (sort {$a<=>$b} keys %{$What{$pos}}) {
|
||||
printf "%8d %8d %8d %8d\n", $pos, $nbytes,
|
||||
$What{$pos}{$nbytes}{r},
|
||||
$What{$pos}{$nbytes}{w};
|
||||
}
|
||||
}
|
||||
|
@ -20,9 +20,9 @@ TAGS: $(LIB_SRC)
|
||||
-etags $(LIB_SRC)
|
||||
|
||||
# Runs each test in order, passing $(TEST_FLAGS) to the program.
|
||||
tests: $(LIB) $(TESTS)
|
||||
tests: $(TEST_PROGS)
|
||||
test _test: tests
|
||||
@for test in $(TESTS) dummy; do \
|
||||
@for test in $(TEST_PROGS) dummy; do \
|
||||
if test $$test != dummy; then \
|
||||
echo "============================"; \
|
||||
echo "Testing $$test $(TEST_FLAGS)"; \
|
||||
@ -31,6 +31,15 @@ test _test: tests
|
||||
echo ""; \
|
||||
fi; \
|
||||
done;
|
||||
@for test in $(TEST_SCRIPTS) dummy; do \
|
||||
if test $$test != dummy; then \
|
||||
echo "============================"; \
|
||||
echo "Testing $$test $(TEST_FLAGS)"; \
|
||||
echo "============================"; \
|
||||
$(RUNTEST) /bin/sh ./$$test $(TEST_FLAGS) || exit 1; \
|
||||
echo ""; \
|
||||
fi; \
|
||||
done;
|
||||
|
||||
# Install the library, the public header files, and programs.
|
||||
install: $(LIB) $(PUB_HDR) $(PROGS)
|
||||
@ -76,7 +85,7 @@ mostlyclean:
|
||||
# is part of the HDF5 distribution.
|
||||
#
|
||||
clean: mostlyclean
|
||||
$(RM) $(LIB) $(TESTS) $(PROGS) $(CLEAN)
|
||||
$(RM) $(LIB) $(TEST_PROGS) $(PROGS) $(CLEAN)
|
||||
|
||||
# Like `clean' except it also removes files that were created by running
|
||||
# configure. If you've unpacked the source and built HDF5 without creating
|
||||
|
10
src/H5G.c
10
src/H5G.c
@ -720,6 +720,16 @@ H5G_init_interface(void)
|
||||
static void
|
||||
H5G_term_interface(void)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
/* Empty the object type table */
|
||||
for (i=0; i<H5G_ntypes_g; i++) {
|
||||
H5MM_xfree(H5G_type_g[i].desc);
|
||||
}
|
||||
H5G_ntypes_g = H5G_atypes_g = 0;
|
||||
H5G_type_g = H5MM_xfree(H5G_type_g);
|
||||
|
||||
/* Destroy the group object id group */
|
||||
H5I_destroy_group(H5I_GROUP);
|
||||
}
|
||||
|
||||
|
1652
src/H5Tconv.c
1652
src/H5Tconv.c
File diff suppressed because it is too large
Load Diff
121
src/H5Tpkg.h
121
src/H5Tpkg.h
@ -135,17 +135,126 @@ herr_t H5T_conv_order (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
herr_t H5T_conv_struct (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *_buf, void *bkg);
|
||||
herr_t H5T_conv_i_i (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *_buf, void __unused__ *bkg);
|
||||
size_t nelmts, void *_buf, void *bkg);
|
||||
herr_t H5T_conv_f_f (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *_buf, void __unused__ *bkg);
|
||||
size_t nelmts, void *_buf, void *bkg);
|
||||
herr_t H5T_conv_s_s (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *_buf, void __unused__ *bkg);
|
||||
size_t nelmts, void *_buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_char_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_char_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_uchar_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_uchar_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_char_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_char_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_uchar_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_uchar_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_char_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_char_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_uchar_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_uchar_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_short_char(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_short_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_ushort_char(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_ushort_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_short_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_short_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_ushort_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_ushort_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_short_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_short_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_ushort_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_ushort_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_int_char(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_int_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_uint_char(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_uint_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_int_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_int_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_uint_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_uint_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_int_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_int_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_uint_long(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_uint_ulong(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_long_char(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_long_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_ulong_char(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_ulong_uchar(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_long_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_long_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_ulong_short(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_ulong_ushort(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_long_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_long_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_ulong_int(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_ulong_uint(hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
|
||||
herr_t H5T_conv_float_double (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void __unused__ *bkg);
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_double_float (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *buf, void __unused__ *bkg);
|
||||
size_t nelmts, void *buf, void *bkg);
|
||||
herr_t H5T_conv_i32le_f64le (hid_t src_id, hid_t dst_id, H5T_cdata_t *cdata,
|
||||
size_t nelmts, void *_buf, void __unused__ *bkg);
|
||||
size_t nelmts, void *_buf, void *bkg);
|
||||
|
||||
/* Bit twiddling functions */
|
||||
void H5T_bit_copy (uint8 *dst, size_t dst_offset, const uint8 *src,
|
||||
|
@ -19,9 +19,9 @@ LIB_SRC=H5.c H5A.c H5AC.c H5B.c H5D.c H5E.c H5F.c H5Farray.c H5Fcore.c \
|
||||
H5Fstdio.c H5G.c H5Gent.c H5Gnode.c H5Gstab.c H5HG.c H5HL.c H5I.c H5MF.c \
|
||||
H5MM.c H5O.c H5Oattr.c H5Ocomp.c H5Ocont.c H5Odtype.c H5Oefl.c H5Ofill.c \
|
||||
H5Olayout.c H5Omtime.c H5Oname.c H5Onull.c H5Osdspace.c H5Oshared.c \
|
||||
H5Ostab.c H5P.c H5R.c H5RA.c H5S.c H5Sall.c H5Shyper.c H5Smpio.c H5Snone.c \
|
||||
H5Spoint.c H5Sselect.c H5T.c H5Tbit.c H5Tconv.c H5Tinit.c H5TB.c H5V.c \
|
||||
H5Z.c
|
||||
H5Ostab.c H5P.c H5R.c H5RA.c H5S.c H5Sall.c H5Shyper.c H5Smpio.c \
|
||||
H5Snone.c H5Spoint.c H5Sselect.c H5T.c H5Tbit.c H5Tconv.c H5Tinit.c \
|
||||
H5TB.c H5V.c H5Z.c
|
||||
|
||||
LIB_OBJ=$(LIB_SRC:.c=.o)
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# HDF5 Library Test Makefile(.in) -*- makefile -*-
|
||||
# HDF5 Library Test Makefile(.in)
|
||||
#
|
||||
# Copyright (C) 1997 National Center for Supercomputing Applications.
|
||||
# All rights reserved.
|
||||
@ -13,8 +13,9 @@ LIBS=../src/libhdf5.a @LIBS@
|
||||
|
||||
# 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 unlink big mtime fillval mount flush1 flush2
|
||||
TEST_PROGS=testhdf5 gheap hyperslab istore bittests dtypes dsets cmpd_dset \
|
||||
extend external shtype links unlink big mtime fillval mount flush1 \
|
||||
flush2
|
||||
TIMINGS=iopipe chunk ragged overhead
|
||||
|
||||
# Temporary files
|
||||
@ -55,7 +56,7 @@ timings _timings: $(TIMINGS)
|
||||
done;
|
||||
|
||||
# How to build the tests... They all depend on the hdf5 library.
|
||||
$(TESTS): ../src/libhdf5.a
|
||||
$(TEST_PROGS): ../src/libhdf5.a
|
||||
TESTHDF5_OBJ=testhdf5.o tattr.o tfile.o theap.o tmeta.o tohdr.o trefer.o tselect.o tstab.o th5s.o
|
||||
testhdf5: $(TESTHDF5_OBJ)
|
||||
$(CC) $(CFLAGS) -o $@ $(TESTHDF5_OBJ) $(LDFLAGS) $(LIBS)
|
||||
|
@ -11,15 +11,13 @@
|
||||
CPPFLAGS=-I../src -I. @CPPFLAGS@
|
||||
LIBS=../src/libhdf5.a libh5tools.a @LIBS@
|
||||
|
||||
# Tools test targets.
|
||||
# Use /bin/sh to use because the test is actually a shell script file.
|
||||
TESTS=testh5dump
|
||||
RUNTEST=/bin/sh
|
||||
# Test programs and scripts.
|
||||
TEST_PROGS=
|
||||
TEST_SCRIPTS=testh5dump.sh @TESTH5TOH4@
|
||||
|
||||
# These are our main targets: library, programs, and tests
|
||||
# These are our main targets: library and tools.
|
||||
LIB=libh5tools.a
|
||||
PROGS=h5debug h5import h5ls h5repart h5dump @H5TOH4@
|
||||
TESTS=@TESTH5TOH4@
|
||||
|
||||
# Source and object files for the library.
|
||||
LIB_SRC=h5tools.c
|
||||
@ -31,7 +29,7 @@ PROG_OBJ=$(PROG_SRC:.c=.o)
|
||||
PRIVATE_HDR=h5tools.h
|
||||
|
||||
# Source and object files for the tests
|
||||
TEST_SRC=testh5toh4.c
|
||||
TEST_SRC=
|
||||
TEST_OBJ=$(TEST_SRC:.c=.o)
|
||||
|
||||
# Programs have to be built before they can be tested!
|
||||
@ -56,13 +54,4 @@ h5repart: h5repart.o
|
||||
h5dump: h5dump.o h5dumputil.o
|
||||
$(CC) $(CFLAGS) -o $@ h5dump.o h5dumputil.o $(LDFLAGS) $(LIBS)
|
||||
|
||||
# How to build the tests. The testh5dump is a shell script that we
|
||||
# copy from its permanent home to a temporary name because `make
|
||||
# clean' will remove the temporary name.
|
||||
testh5dump: testh5dump.sh
|
||||
cp testh5dump.sh $@
|
||||
|
||||
testh5toh4: testh5toh4.o
|
||||
$(CC) $(CFLAGS) -o $@ testh5toh4 $(LDFLAGS) $(LIBS)
|
||||
|
||||
@CONCLUDE@
|
||||
|
Loading…
x
Reference in New Issue
Block a user