mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-11-21 03:13:42 +08:00
d85bb6fe20
disengagement of enable-netcdf4 from enable-hdf5. That is, with the advent of nczarr, it is possible to turn off hdf5 but still need netcdf-4 enabled because nczarr uses libsrc4, but not libhdf5. This change involves a bunch of things: 1. Modify configure.ac and CMakelist to make enable_hdf5 control if hdf5 support is provided. For back compatibility, disable-netcdf4 is treated as disable-hdf5. But internally, netcdf4 support is controlled only by the enabling of formats that require it. 2. In support of #1, modify .travis.yml to use enable/disable-hdf5 instead of enable/disable-netcdf4. 3. test_common.in is modified to track selected features, including enable-hdf5 and enable-s3-tests. This is used in selected tests that mix netcdf-3 and netcdf4 tests. 4. The conflation of USE_HDF5 and USE_NETCDF4 is common in code, tests, and build files, so all of those had to be weeded out. 5. It turns out that some of the NC4_dim functions really are HDF5 specific, but are not treated as such. So they are moved from nc4dim.c to hdf5dim.c or hdf5dispatch.c 6. Some generic functions in libhdf5 can be (and were) moved to libsrc4.
81 lines
1.8 KiB
C
81 lines
1.8 KiB
C
/*
|
|
Copyright 2018, UCAR/Unidata
|
|
See COPYRIGHT file for copying and redistribution conditions.
|
|
|
|
This is part of netCDF.
|
|
|
|
This program runs some extra tests.
|
|
|
|
$Id: tst_misc.c,v 1.6 2010/05/05 22:15:36 dmh Exp $
|
|
*/
|
|
|
|
#include "config.h"
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include "netcdf.h"
|
|
#include "nc_tests.h"
|
|
#include "err_macros.h"
|
|
#ifdef USE_PARALLEL
|
|
#include "netcdf_par.h"
|
|
#endif
|
|
|
|
#define FILE_NAME "tst_misc.nc"
|
|
|
|
int
|
|
main(int argc, char **argv)
|
|
{
|
|
#ifdef TEST_PNETCDF
|
|
MPI_Init(&argc, &argv);
|
|
#endif
|
|
printf("\n*** Testing some extra stuff.\n");
|
|
printf("*** Trying to open non-netCDF files of tiny length...");
|
|
{
|
|
#define DATA_LEN 32
|
|
int ncid,openstat;
|
|
char dummy_data[DATA_LEN];
|
|
FILE *file;
|
|
int i;
|
|
|
|
/* Appease valgrind by initializing our data. */
|
|
for (i = 0; i < DATA_LEN; i++)
|
|
dummy_data[i] = i;
|
|
|
|
for (i = DATA_LEN; i >= 0; i--)
|
|
{
|
|
/* Create a small file which is not a netCDF file. */
|
|
if (!(file = fopen(FILE_NAME, "w+"))) ERR;
|
|
if (fwrite(dummy_data, 1, i, file) != i) ERR;
|
|
if (fclose(file)) ERR;
|
|
|
|
/* Make sure that netCDF rejects this file politely. */
|
|
#ifdef TEST_PNETCDF
|
|
openstat = nc_open_par(FILE_NAME, 0, MPI_COMM_WORLD, MPI_INFO_NULL, &ncid);
|
|
#else
|
|
openstat = nc_open(FILE_NAME, 0, &ncid);
|
|
#endif
|
|
/* Some platforms (OSX, buddy) return stat = 2 (file not found)
|
|
for index i == 2. Not sure why, but this is a work around. */
|
|
if(openstat != NC_ENOTNC && openstat != 2) ERR;
|
|
|
|
}
|
|
}
|
|
|
|
SUMMARIZE_ERR;
|
|
#ifndef USE_HDF5
|
|
printf("*** Trying to create netCDF-4 file without netCDF-4...");
|
|
{
|
|
int ncid;
|
|
|
|
if (nc_create(FILE_NAME, NC_NETCDF4, &ncid) != NC_ENOTBUILT)
|
|
ERR;
|
|
}
|
|
SUMMARIZE_ERR;
|
|
#endif /* USE_HDF5 undefined */
|
|
|
|
#ifdef TEST_PNETCDF
|
|
MPI_Finalize();
|
|
#endif
|
|
|
|
FINAL_RESULTS;
|
|
}
|