#include #include "testframe.h" #include "params.h" static void test_write_file_attribs(H5PartFile *file, int position) { h5part_int64_t status; char name[ATTR_NAME_SIZE]; TEST("Writing file attributes"); get_attr_name(name, "str", position); status = H5PartWriteFileAttribString(file, name, ATTR_STR_VAL); RETURN(status, H5PART_SUCCESS, "H5PartWriteFileAttribString"); get_attr_name(name, "i32", position); status = H5PartWriteFileAttribInt32(file, name, ATTR_INT32_VAL); RETURN(status, H5PART_SUCCESS, "H5PartWriteFileAttribInt32"); get_attr_name(name, "i64", position); status = H5PartWriteFileAttribInt64(file, name, ATTR_INT64_VAL); RETURN(status, H5PART_SUCCESS, "H5PartWriteFileAttribInt64"); get_attr_name(name, "f32", position); status = H5PartWriteFileAttribFloat32(file, name, ATTR_FLOAT_VAL); RETURN(status, H5PART_SUCCESS, "H5PartWriteFileAttribFloat32"); get_attr_name(name, "f64", position); status = H5PartWriteFileAttribFloat64(file, name, ATTR_FLOAT_VAL); RETURN(status, H5PART_SUCCESS, "H5PartWriteFileAttribFloat64"); } static void test_write_step_attribs(H5PartFile *file, int position) { h5part_int64_t status; char name[ATTR_NAME_SIZE]; TEST("Writing step attributes"); get_attr_name(name, "str", position); status = H5PartWriteStepAttribString(file, name, ATTR_STR_VAL); RETURN(status, H5PART_SUCCESS, "H5PartWriteStepAttribString"); get_attr_name(name, "i32", position); status = H5PartWriteStepAttribInt32(file, name, ATTR_INT32_VAL); RETURN(status, H5PART_SUCCESS, "H5PartWriteStepAttribInt32"); get_attr_name(name, "i64", position); status = H5PartWriteStepAttribInt64(file, name, ATTR_INT64_VAL); RETURN(status, H5PART_SUCCESS, "H5PartWriteStepAttribInt64"); get_attr_name(name, "f32", position); status = H5PartWriteStepAttribFloat32(file, name, ATTR_FLOAT_VAL); RETURN(status, H5PART_SUCCESS, "H5PartWriteStepAttribFloat32"); get_attr_name(name, "f64", position); status = H5PartWriteStepAttribFloat64(file, name, ATTR_FLOAT_VAL); RETURN(status, H5PART_SUCCESS, "H5PartWriteStepAttribFloat64"); } static void test_write_data64(H5PartFile *file, int nparticles, int step) { int i,t; h5part_int64_t status; double *x,*y,*z; double *px,*py,*pz; h5part_int64_t *id; x=(double*)malloc(nparticles*sizeof(double)); y=(double*)malloc(nparticles*sizeof(double)); z=(double*)malloc(nparticles*sizeof(double)); px=(double*)malloc(nparticles*sizeof(double)); py=(double*)malloc(nparticles*sizeof(double)); pz=(double*)malloc(nparticles*sizeof(double)); id=(h5part_int64_t*)malloc(nparticles*sizeof(h5part_int64_t)); /* invalid stride will produce a warning */ status = H5PartSetNumParticlesStrided(file, nparticles, -1); RETURN(status, H5PART_SUCCESS, "H5PartSetNumParticlesStrided"); /* invalid nparticles will produce an error */ status = H5PartSetNumParticlesStrided(file, -1, 2); RETURN(status, H5PART_ERR_INVAL, "H5PartSetNumParticlesStrided"); #if PARALLEL_IO TEST("Setting throttle"); status = H5PartSetThrottle(file, 2); RETURN(status, H5PART_SUCCESS, "H5PartSetThrottle"); #endif TEST("Writing 64-bit data"); for (t=step; t