mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-04-12 17:31:09 +08:00
[svn-r1947] Changed the test files prefix to use the h5_fixname() in test/libh5test.a.
Makefile.in: Added test/ as one of the -I directories to search for header files. Needed because <h5test.h> is used. t_file.c t_mpi.c testphdf5.c testphdf5.h: Added FILENAME to meet the assumption in h5test.h. (May use CLEANUP in the future.) Moved the prefix setting to the h5_fixname().
This commit is contained in:
parent
f938b6efe3
commit
f490968edc
@ -11,7 +11,7 @@ srcdir=@srcdir@
|
||||
|
||||
## Add the include directory to the C preprocessor flags the the hdf5 library
|
||||
## to the library list.
|
||||
CPPFLAGS=-I. -I$(srcdir) -I../src -I$(top_srcdir)/src @CPPFLAGS@
|
||||
CPPFLAGS=-I. -I$(srcdir) -I../src -I$(top_srcdir)/src -I$(top_srcdir)/test @CPPFLAGS@
|
||||
LIBHDF5=../src/libhdf5.la
|
||||
LIBH5TEST=../test/libh5test.la
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
* sooner or later due to barrier mixed up.
|
||||
*/
|
||||
void
|
||||
test_split_comm_access(char *filename[])
|
||||
test_split_comm_access(char *filename)
|
||||
{
|
||||
int mpi_size, mpi_rank;
|
||||
MPI_Comm comm;
|
||||
@ -30,8 +30,8 @@ test_split_comm_access(char *filename[])
|
||||
herr_t ret; /* generic return value */
|
||||
|
||||
if (verbose)
|
||||
printf("Split Communicator access test on file %s %s\n",
|
||||
filename[0], filename[1]);
|
||||
printf("Split Communicator access test on file %s\n",
|
||||
filename);
|
||||
|
||||
/* set up MPI parameters */
|
||||
MPI_Comm_size(MPI_COMM_WORLD,&mpi_size);
|
||||
@ -60,7 +60,7 @@ test_split_comm_access(char *filename[])
|
||||
VRFY((ret >= 0), "");
|
||||
|
||||
/* create the file collectively */
|
||||
fid=H5Fcreate(filename[color],H5F_ACC_TRUNC,H5P_DEFAULT,acc_tpl);
|
||||
fid=H5Fcreate(filename,H5F_ACC_TRUNC,H5P_DEFAULT,acc_tpl);
|
||||
VRFY((fid >= 0), "H5Fcreate succeeded");
|
||||
|
||||
/* Release file-access template */
|
||||
@ -73,7 +73,7 @@ test_split_comm_access(char *filename[])
|
||||
|
||||
/* detele the test file */
|
||||
if (sub_mpi_rank == 0){
|
||||
mrc = MPI_File_delete(filename[color], info);
|
||||
mrc = MPI_File_delete(filename, info);
|
||||
VRFY((mrc==MPI_SUCCESS), "");
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@
|
||||
#define MPIO_TEST_WRITE_SIZE 1024*1024 /* 1 MB */
|
||||
|
||||
void
|
||||
test_mpio_overlap_writes(char *filename[])
|
||||
test_mpio_overlap_writes(char *filename)
|
||||
{
|
||||
int mpi_size, mpi_rank;
|
||||
MPI_Comm comm;
|
||||
@ -38,7 +38,7 @@ test_mpio_overlap_writes(char *filename[])
|
||||
|
||||
if (verbose)
|
||||
printf("MPIO independent overlapping writes test on file %s\n",
|
||||
filename[0]);
|
||||
filename);
|
||||
|
||||
/* set up MPI parameters */
|
||||
MPI_Comm_size(MPI_COMM_WORLD,&mpi_size);
|
||||
@ -59,7 +59,7 @@ test_mpio_overlap_writes(char *filename[])
|
||||
|
||||
if (color==0){
|
||||
/* First n-1 processes (color==0) open a file and write it */
|
||||
mrc = MPI_File_open(comm, filename[0], MPI_MODE_CREATE|MPI_MODE_RDWR,
|
||||
mrc = MPI_File_open(comm, filename, MPI_MODE_CREATE|MPI_MODE_RDWR,
|
||||
info, &fh);
|
||||
VRFY((mrc==MPI_SUCCESS), "");
|
||||
|
||||
@ -104,7 +104,7 @@ test_mpio_overlap_writes(char *filename[])
|
||||
mrc = MPI_Barrier(MPI_COMM_WORLD);
|
||||
VRFY((mrc==MPI_SUCCESS), "Sync after writes");
|
||||
|
||||
mrc = MPI_File_open(comm, filename[0], MPI_MODE_RDONLY,
|
||||
mrc = MPI_File_open(comm, filename, MPI_MODE_RDONLY,
|
||||
info, &fh);
|
||||
VRFY((mrc==MPI_SUCCESS), "");
|
||||
|
||||
|
@ -14,28 +14,20 @@ int chunkdim1;
|
||||
int nerrors = 0; /* errors count */
|
||||
int verbose = 0; /* verbose, default as no. */
|
||||
|
||||
/* FilePrefix defines where the temporary parallel test files should be. */
|
||||
/* In a parallel system, filesystem suitable for compiling are unlikly */
|
||||
/* the right place for parallel I/O. There is no common used pathname */
|
||||
/* for the parallel file system. So, /tmp is used as the default. */
|
||||
#ifdef __PUMAGON__
|
||||
/* For the PFS of TFLOPS */
|
||||
char *fileprefix = "pfs:/pfs_grande/multi/tmp_1/";
|
||||
#else
|
||||
char *fileprefix = "/tmp/";
|
||||
#endif
|
||||
size_t fileprefixlen; /* file prefix length */
|
||||
|
||||
herr_t (*old_func)(void*); /* previous error handler */
|
||||
void *old_client_data; /* previous error handler arg.*/
|
||||
|
||||
/* other option flags */
|
||||
int doread=1; /* read test */
|
||||
int dowrite=1; /* write test */
|
||||
char *filenames[]={ "ParaEg1.h5f",
|
||||
"ParaEg2.h5f",
|
||||
"ParaEg3.h5f",
|
||||
"ParaMdset.h5f" };
|
||||
/* FILENAME and filenames must have the same number of names */
|
||||
const char *FILENAME[5]={
|
||||
"ParaEg1",
|
||||
"ParaEg2",
|
||||
"ParaEg3",
|
||||
"ParaMdset",
|
||||
NULL};
|
||||
char filenames[5][200];
|
||||
|
||||
|
||||
|
||||
@ -143,7 +135,7 @@ parse_options(int argc, char **argv)
|
||||
nerrors++;
|
||||
return(1);
|
||||
}
|
||||
fileprefix = *argv;
|
||||
paraprefix = *argv;
|
||||
break;
|
||||
case 'd': /* dimensizes */
|
||||
if (--argc < 2){
|
||||
@ -195,23 +187,29 @@ parse_options(int argc, char **argv)
|
||||
return(1);
|
||||
}
|
||||
|
||||
/* compose the filenames if file prefix is defined */
|
||||
if (fileprefix != NULL) {
|
||||
char *tmpptr;
|
||||
int i;
|
||||
/* compose the test filenames */
|
||||
{
|
||||
int i, n;
|
||||
hid_t plist;
|
||||
|
||||
fileprefixlen = strlen(fileprefix);
|
||||
i = sizeof(filenames)/sizeof(filenames[0]);
|
||||
while (i-- > 0){
|
||||
tmpptr = filenames[i];
|
||||
filenames[i] = (char *)malloc (fileprefixlen + strlen(tmpptr) + 1);
|
||||
if (!filenames[i]) {
|
||||
printf("%s\n","memory allocation failed");
|
||||
plist = H5Pcreate (H5P_FILE_ACCESS);
|
||||
H5Pset_fapl_mpio(plist, MPI_COMM_WORLD, MPI_INFO_NULL);
|
||||
n = sizeof(FILENAME)/sizeof(FILENAME[0]) - 1; /* exclude the NULL */
|
||||
|
||||
for (i=0; i < n; i++)
|
||||
if (h5_fixname(FILENAME[i],plist,filenames[i],sizeof(filenames[i]))
|
||||
== NULL){
|
||||
printf("h5_fixname failed\n");
|
||||
nerrors++;
|
||||
H5Pclose(plist);
|
||||
return(1);
|
||||
}
|
||||
strcpy(filenames[i],fileprefix);
|
||||
strcat(filenames[i],tmpptr);
|
||||
H5Pclose(plist);
|
||||
if (verbose){
|
||||
int i;
|
||||
printf("Test filenames are:\n");
|
||||
for (i=0; i < n; i++)
|
||||
printf(" %s\n", filenames[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -241,10 +239,10 @@ main(int argc, char **argv)
|
||||
|
||||
if (dowrite){
|
||||
MPI_BANNER("testing MPIO independent overlapping writes...");
|
||||
test_mpio_overlap_writes(filenames);
|
||||
test_mpio_overlap_writes(filenames[0]);
|
||||
|
||||
MPI_BANNER("testing dataset using split communicators...");
|
||||
test_split_comm_access(filenames);
|
||||
test_split_comm_access(filenames[0]);
|
||||
|
||||
MPI_BANNER("testing dataset independent write...");
|
||||
dataset_writeInd(filenames[0]);
|
||||
@ -259,6 +257,7 @@ main(int argc, char **argv)
|
||||
multiple_dset_write(filenames[3]);
|
||||
|
||||
}
|
||||
|
||||
if (doread){
|
||||
MPI_BANNER("testing dataset independent read...");
|
||||
dataset_readInd(filenames[0]);
|
||||
|
@ -6,6 +6,7 @@
|
||||
#include <assert.h>
|
||||
#include <stdlib.h>
|
||||
#include <hdf5.h>
|
||||
#include <h5test.h>
|
||||
|
||||
/* Define some handy debugging shorthands, routines, ... */
|
||||
/* debugging tools */
|
||||
|
Loading…
x
Reference in New Issue
Block a user