1/* This is part of the netCDF package.
2   Copyright 2005 University Corporation for Atmospheric Research/Unidata
3   See COPYRIGHT file for conditions of use.
4
5   Test HDF5 file code. These are not intended to be exhaustive tests,
6   but they use HDF5 the same way that netCDF-4 does, so if these
7   tests don't work, than netCDF-4 won't work either.
8*/
9
10#include "h5_err_macros.h"
11#include <hdf5.h>
12#include <H5DSpublic.h>
13
14#define FILE_NAME "tst_h_files2.h5"
15
16int
17main()
18{
19   printf("\n*** Checking HDF5 file functions some more.\n");
20   printf("*** Checking opaque attribute creation...");
21#define OPAQUE_SIZE 20
22#define OPAQUE_NAME "type"
23#define ATT_NAME "att_name"
24#define DIM_LEN 3
25   {
26      hid_t fileidaccess_plisttypeidspaceidattid;
27      hsize_t dims[1]; /* netcdf attributes always 1-D. */
28      unsigned char data[DIM_LEN][OPAQUE_SIZE];
29      int jk;
30
31      /* Initialize some data. */
32      for (j = 0; j < DIM_LENj++)
33  for (k = 0; k < OPAQUE_SIZEk++)
34     data[j][k] = 42;
35
36      /* Set the access list so that closes will fail if something is
37       * still open in the file. */
38      if ((access_plist = H5Pcreate(H5P_FILE_ACCESS)) < 0) ERR;
39      if (H5Pset_fclose_degree(access_plistH5F_CLOSE_SEMI)) ERR;
40
41      /* Create file. */
42      if ((fileid = H5Fcreate(FILE_NAMEH5F_ACC_TRUNCH5P_DEFAULT,
43       access_plist)) < 0) ERR;
44      /* Add an opaque type. */
45      if ((typeid = H5Tcreate(H5T_OPAQUEOPAQUE_SIZE)) < 0) ERR;
46      if (H5Tcommit(fileidOPAQUE_NAMEtypeid) < 0) ERR;
47
48      /* Add attribute of this type. */
49      dims[0] = 3;
50      if ((spaceid = H5Screate_simple(1, dimsNULL)) < 0) ERR;
51      if ((attid = H5Acreate(fileidATT_NAMEtypeidspaceidH5P_DEFAULT)) < 0) ERR;
52      if (H5Awrite(attidtypeiddata) < 0) ERR;
53
54      if (H5Aclose(attid) < 0) ERR;
55      if (H5Sclose(spaceid) < 0) ERR;
56      if (H5Tclose(typeid) < 0) ERR;
57      if (H5Fclose(fileid) < 0) ERR;
58      if (H5Pclose(access_plist) < 0) ERR;
59
60   }
61   SUMMARIZE_ERR;
62
63   FINAL_RESULTS;
64}


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