summaryrefslogtreecommitdiffstats
path: root/test/gen_cross.c
diff options
context:
space:
mode:
authorRaymond Lu <songyulu@hdfgroup.org>2006-03-24 19:36:44 (GMT)
committerRaymond Lu <songyulu@hdfgroup.org>2006-03-24 19:36:44 (GMT)
commit981fe01dd1bed17e73ae813409078bc33c6bc084 (patch)
tree3e2300c979de81b2b779e6478920c1acfeb38d2d /test/gen_cross.c
parent9f94edb32941b0efa3025c4c8f47f9b16ce2742d (diff)
downloadhdf5-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-xtest/gen_cross.c102
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;
+}