1/* This is part of the netCDF package.
2   Copyright 2007 University Corporation for Atmospheric Research/Unidata
3   See COPYRIGHT file for conditions of use.
4
5   Test HDF5 compound types.
6*/
7
8#include "h5_err_macros.h"
9#include <hdf5.h>
10
11#define FILE_NAME "tst_h_wrt_cmp.h5"
12#define DIM1_LEN 3
13#define COMPOUND_NAME "cmp"
14#define VAR_NAME "var"
15
16int
17main()
18{
19   hid_t fileidaccess_plistspaceidtypeid;
20   hid_t datasetid;
21   struct s1 {
22  unsigned char c1;
23  double d;
24   } data[DIM1_LEN];
25   int i;
26
27   printf("\n*** Checking HDF5 compound types (we're almost there kids).\n");
28   printf("*** Checking packing of HDF5 compound types...");
29
30   /* Open file. */
31   if ((access_plist = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR;
32   if (H5Pset_fclose_degree(access_plistH5F_CLOSE_STRONG)) ERR;
33   if ((fileid = H5Fopen(FILE_NAMEH5F_ACC_RDONLYaccess_plist)) < 0) ERR;
34
35   /* Open dataset. */
36   if ((datasetid = H5Dopen1(fileidVAR_NAME)) < 0) ERR;
37
38   /* Check space. */
39   if ((spaceid = H5Dget_space(datasetid)) < 0) ERR;
40   if (H5Sget_simple_extent_ndims(spaceid) != 1) ERR;
41   if (H5Sget_simple_extent_npoints(spaceid) != DIM1_LENERR;
42
43   /* Get type. */
44   if ((typeid = H5Dget_type(datasetid)) < 0) ERR;
45
46/*   if ((native_type = H5Tget_native_type(typeid, H5T_DIR_DEFAULT)) < 0) ERR;*/
47
48   /* Read the data. */
49   if (H5Dread(datasetidtypeidH5S_ALLH5S_ALLH5P_DEFAULT,
50        data) < 0) ERR;
51
52   /* Check the data. */
53   for (i=0; i<DIM1_LENi++)
54      if (data[i].c1 != 126 || data[i].d != -9999999) ERR;
55
56   /* Release all resources. */
57   if (H5Fclose(fileid) < 0) ERR;
58
59   SUMMARIZE_ERR;
60
61   FINAL_RESULTS;
62}


HyperKWIC - Version 7.20DA executed at 11:37 on 27 Oct 2017 | Polyhedron Solutions - INTERNAL USE | COMMERCIAL (Any O/S) SN 4AKIed