diff options
author | Raymond Lu <songyulu@hdfgroup.org> | 2006-03-24 19:36:44 (GMT) |
---|---|---|
committer | Raymond Lu <songyulu@hdfgroup.org> | 2006-03-24 19:36:44 (GMT) |
commit | 981fe01dd1bed17e73ae813409078bc33c6bc084 (patch) | |
tree | 3e2300c979de81b2b779e6478920c1acfeb38d2d /test/gen_cross.c | |
parent | 9f94edb32941b0efa3025c4c8f47f9b16ce2742d (diff) | |
download | hdf5-981fe01dd1bed17e73ae813409078bc33c6bc084.zip hdf5-981fe01dd1bed17e73ae813409078bc33c6bc084.tar.gz hdf5-981fe01dd1bed17e73ae813409078bc33c6bc084.tar.bz2 |
[svn-r12151] Purpose: New test
Description: cross_read.c is a new program to test reading data created
on an OpenVMS, a little-endian, and a big-endian machine. The three
data files are vms_data.h5, be_data.h5, and le_data.h5. To generate
these data files, run gen_cross.c on these machines and change the file
names.
Platforms tested: fuss and h5committest
Misc. update: MANIFEST
Diffstat (limited to 'test/gen_cross.c')
-rwxr-xr-x | test/gen_cross.c | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/test/gen_cross.c b/test/gen_cross.c new file mode 100755 index 0000000..4159dc2 --- /dev/null +++ b/test/gen_cross.c @@ -0,0 +1,102 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * Copyright by the Board of Trustees of the University of Illinois. * + * All rights reserved. * + * * + * This file is part of HDF5. The full HDF5 copyright notice, including * + * terms governing use, modification, and redistribution, is contained in * + * the files COPYING and Copyright.html. COPYING can be found at the root * + * of the source code distribution tree; Copyright.html can be found at the * + * root level of an installed copy of the electronic HDF5 document set and * + * is linked from the top-level documents page. It can also be found at * + * http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have * + * access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +/* + * Programmer: Raymond Lu <slu@ncsa.uiuc.edu> + * Thursday, March 23, 2006 + * + * This program writes floating-point data to the HDF5 file. It generates + * the file to be read by cross_read.c, to test reading data from cross-systems. + * Run it on an OpenVMS, a little-endian, and a big-endian machine. Change the + * output file names to vms_data.h5, le_data.h5, and be_data.h5, and put them + * under hdf5/test/ directory. + */ + +#include "h5test.h" + +#define H5FILE_NAME "data.h5" +#define DATASETNAME "IntArray" +#define NX 5 /* dataset dimensions */ +#define NY 6 +#define RANK 2 + +int +main (void) +{ + hid_t file, dataset; /* file and dataset handles */ + hid_t datatype, dataspace; /* handles */ + hsize_t dimsf[2]; /* dataset dimensions */ + herr_t status; + float data[NX][NY]; /* data to write */ + int i, j; + + /* + * Data and output buffer initialization. + */ + for (j = 0; j < NX; j++) { + for (i = 0; i < NY; i++) + data[j][i] = i + j; + } + /* + * 0 1 2 3 4 5 + * 1 2 3 4 5 6 + * 2 3 4 5 6 7 + * 3 4 5 6 7 8 + * 4 5 6 7 8 9 + */ + + /* + * Create a new file using H5F_ACC_TRUNC access, + * default file creation properties, and default file + * access properties. + */ + file = H5Fcreate(H5FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + /* + * Describe the size of the array and create the data space for fixed + * size dataset. + */ + dimsf[0] = NX; + dimsf[1] = NY; + dataspace = H5Screate_simple(RANK, dimsf, NULL); + + /* + * Define datatype for the data in the file. + * We will store little endian INT numbers. + */ + datatype = H5Tcopy(H5T_NATIVE_DOUBLE); + + /* + * Create a new dataset within the file using defined dataspace and + * datatype and default dataset creation properties. + */ + dataset = H5Dcreate(file, DATASETNAME, datatype, dataspace, + H5P_DEFAULT); + + /* + * Write the data to the dataset using default transfer properties. + */ + status = H5Dwrite(dataset, H5T_NATIVE_FLOAT, H5S_ALL, H5S_ALL, + H5P_DEFAULT, data); + + /* + * Close/release resources. + */ + H5Sclose(dataspace); + H5Tclose(datatype); + H5Dclose(dataset); + H5Fclose(file); + + return 0; +} |