1/* This is part of the netCDF package. Copyright 2005 University
2   Corporation for Atmospheric Research/Unidata See COPYRIGHT file for
3   conditions of use. See www.unidata.ucar.edu for more info.
4
5   Test netcdf-4 string types.
6
7   $Id$
8*/
9
10#include <config.h>
11#include <nc_tests.h>
12#include "err_macros.h"
13
14#define FILE_NAME "tst_strings2.nc"
15#define ATT_NAME "WC"
16
17int
18main(int argc, char **argv)
19{
20   printf("\n*** Testing netcdf-4 string type.\n");
21   printf("*** testing very simple string attribute...");
22   {
23#define ATT_LEN 1
24      size_t att_len;
25      int ndimsnvarsnattsunlimdimid;
26      nc_type att_type;
27      int ncidi;
28      char *data_in[ATT_LEN];
29      char *data[ATT_LEN] = {"An appeaser is one who feeds a crocodile — "
30      "hoping it will eat him last."};
31
32
33      if (nc_create(FILE_NAMENC_NETCDF4, &ncid)) ERR;
34      if (nc_put_att(ncidNC_GLOBALATT_NAMENC_STRINGATT_LENdata)) ERR;
35      if (nc_inq(ncid, &ndims, &nvars, &natts, &unlimdimid)) ERR;
36      if (ndims != 0 || nvars != 0 || natts != 1 || unlimdimid != -1) ERR;
37      if (nc_inq_att(ncidNC_GLOBALATT_NAME, &att_type, &att_len)) ERR;
38      if (att_type != NC_STRING || att_len != ATT_LENERR;
39      if (nc_close(ncid)) ERR;
40
41      /* Check it out. */
42      if (nc_open(FILE_NAMENC_NOWRITE, &ncid)) ERR;
43      if (nc_inq(ncid, &ndims, &nvars, &natts, &unlimdimid)) ERR;
44      if (ndims != 0 || nvars != 0 || natts != 1 || unlimdimid != -1) ERR;
45      if (nc_inq_att(ncidNC_GLOBALATT_NAME, &att_type, &att_len)) ERR;
46      if (att_type != NC_STRING || att_len != ATT_LENERR;
47      if (nc_get_att(ncidNC_GLOBALATT_NAMEdata_in)) ERR;
48      for (i = 0; i < att_leni++)
49        if (strcmp(data_in[i], data[i])) ERR;
50      if (nc_free_string(att_len, (char **)data_in)) ERR;
51      if (nc_close(ncid)) ERR;
52   }
53   SUMMARIZE_ERR;
54   FINAL_RESULTS;
55}


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