netcdf-c/nc_test/tst_misc.c

91 lines
2.1 KiB
C
Raw Normal View History

2010-06-03 21:24:43 +08:00
/*
Copyright 2007, UCAR/Unidata
See COPYRIGHT file for copying and redistribution conditions.
This is part of netCDF.
2010-06-03 21:24:43 +08:00
This program runs some extra tests.
$Id: tst_misc.c,v 1.6 2010/05/05 22:15:36 dmh Exp $
*/
2015-08-16 06:26:35 +08:00
#include "config.h"
2010-06-03 21:24:43 +08:00
#include <stdio.h>
#include <stdlib.h>
2015-08-16 06:26:35 +08:00
#include "netcdf.h"
#include "nc_tests.h"
#include "err_macros.h"
2015-08-16 06:26:35 +08:00
#ifdef USE_PARALLEL
#include "netcdf_par.h"
#endif
2010-06-03 21:24:43 +08:00
#define FILE_NAME "tst_misc.nc"
int
main(int argc, char **argv)
2010-06-03 21:24:43 +08:00
{
2015-08-16 06:26:35 +08:00
#ifdef TEST_PNETCDF
MPI_Init(&argc, &argv);
#endif
2010-06-03 21:24:43 +08:00
printf("\n*** Testing some extra stuff.\n");
printf("*** Trying to open non-netCDF files of tiny length...");
{
#define DATA_LEN 32
int ncid,openstat;
2010-06-03 21:24:43 +08:00
char dummy_data[DATA_LEN];
FILE *file;
int i;
2010-11-30 06:23:16 +08:00
/* Appease valgrind by initializing our data. */
for (i = 0; i < DATA_LEN; i++)
dummy_data[i] = i;
2010-06-03 21:24:43 +08:00
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;
2010-06-03 21:24:43 +08:00
/* Make sure that netCDF rejects this file politely. */
2015-08-16 06:26:35 +08:00
#ifdef TEST_PNETCDF
openstat = nc_open_par(FILE_NAME, NC_PNETCDF, 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;
2010-06-03 21:24:43 +08:00
}
}
SUMMARIZE_ERR;
#ifndef USE_NETCDF4
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_NETCDF4 undefined */
#ifndef USE_DISKLESS
printf("*** Trying to create diskless file without diskless...");
{
int ncid;
if (nc_create(FILE_NAME, NC_DISKLESS, &ncid) != NC_ENOTBUILT)
ERR;
}
SUMMARIZE_ERR;
#endif /* USE_DISKLESS undefined */
2015-08-16 06:26:35 +08:00
#ifdef TEST_PNETCDF
MPI_Finalize();
#endif
2010-06-03 21:24:43 +08:00
FINAL_RESULTS;
}