2017-03-30 01:23:47 +08:00
|
|
|
/* This is part of the netCDF package. Copyright 2017 University
|
|
|
|
Corporation for Atmospheric Research/Unidata See COPYRIGHT file for
|
|
|
|
conditions of use. See www.unidata.ucar.edu for more info.
|
|
|
|
|
|
|
|
Test proper elatefill return when fillvalue is assigned outside of
|
|
|
|
the initial define.
|
|
|
|
|
|
|
|
Contributed by wkliao, see the following for more information:
|
|
|
|
|
|
|
|
* https://github.com/Unidata/netcdf-c/issues/384
|
|
|
|
* https://github.com/Unidata/netcdf-c/pull/387
|
|
|
|
* https://github.com/Unidata/netcdf-c/issues/390
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "config.h"
|
|
|
|
#include <nc_tests.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <netcdf.h>
|
|
|
|
|
|
|
|
#define FILE_NAME "tst_elatefill.nc"
|
|
|
|
|
2017-04-04 11:17:36 +08:00
|
|
|
#define ERR_CHK {if(err!=NC_NOERR)printf("Error at line %d: %s\n",__LINE__,nc_strerror(err));}
|
2017-03-30 01:38:59 +08:00
|
|
|
|
2017-03-30 01:23:47 +08:00
|
|
|
int
|
|
|
|
main(int argc, char **argv)
|
|
|
|
{
|
|
|
|
int ncid, dimid, varid, err;
|
2017-10-25 20:22:58 +08:00
|
|
|
int fillv;
|
2017-03-30 01:23:47 +08:00
|
|
|
|
2017-04-04 11:17:36 +08:00
|
|
|
err = nc_create(FILE_NAME, NC_NETCDF4, &ncid); ERR_CHK;
|
|
|
|
err = nc_def_dim(ncid, "dim", 10, &dimid); ERR_CHK;
|
|
|
|
err = nc_def_var(ncid, "var", NC_INT, 1, &dimid, &varid); ERR_CHK;
|
|
|
|
err = nc_enddef(ncid); ERR_CHK;
|
2017-03-30 01:23:47 +08:00
|
|
|
|
2017-04-04 11:17:36 +08:00
|
|
|
err = nc_redef(ncid); ERR_CHK;
|
2017-03-30 01:23:47 +08:00
|
|
|
|
|
|
|
/* try put attribute _FillValue and expect NC_ELATEFILL */
|
|
|
|
fillv = 9;
|
|
|
|
err = nc_put_att_int(ncid, varid, _FillValue, NC_INT, 1, &fillv);
|
|
|
|
if (err != NC_ELATEFILL)
|
|
|
|
printf("line %d expecting NC_ELATEFILL but got %d\n",__LINE__,err);
|
2017-04-04 11:17:36 +08:00
|
|
|
err = nc_close(ncid); ERR_CHK;
|
2017-03-30 01:23:47 +08:00
|
|
|
return 0;
|
|
|
|
}
|