mirror of
https://github.com/Unidata/netcdf-c.git
synced 2024-11-21 03:13:42 +08:00
7be9506aac
to get TOPSRCDIR that avoids use of TEST_ENVIRONMENT and makes automake and cmake more consistent. Basic assumption is that abs_top_srcdir (and cmake equivalent) is known at 'make check' time, so we can use -D flag to compile a program that has the value of abs_top_srcdir embedded into it as a constant. We define two new files in ncdap_test: 1. t_srcdir.h -- provide a gettopsrcdir() function to return the topsrcdir value to the test program. 2. topsrcdir.c -- a program that calls gettopsrcdir() and prints its output (minus any newline) on stdout. This is used in .sh files to get topsrcdir.
52 lines
992 B
C
52 lines
992 B
C
#include "config.h"
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include "netcdf.h"
|
|
#include "t_srcdir.h"
|
|
|
|
#define VAR "i32"
|
|
|
|
#define ERRCODE 2
|
|
#define ERR(e) {printf("Error: %s\n", nc_strerror(e)); exit(ERRCODE);}
|
|
|
|
#undef DEBUG
|
|
|
|
int
|
|
main()
|
|
{
|
|
int ncid, varid;
|
|
int retval;
|
|
int i32[100];
|
|
size_t start[1];
|
|
size_t count[1];
|
|
int ok = 1;
|
|
const char* topsrcdir;
|
|
char url[4096];
|
|
|
|
|
|
topsrcdir = gettopsrcdir();
|
|
|
|
strcpy(url,"file://");
|
|
strcat(url,topsrcdir);
|
|
strcat(url,"/ncdap_test/testdata3/test.02");
|
|
|
|
if ((retval = nc_open(url, 0, &ncid)))
|
|
ERR(retval);
|
|
if ((retval = nc_inq_varid(ncid, VAR, &varid)))
|
|
ERR(retval);
|
|
|
|
start[0] = 0;
|
|
count[0] = 26;
|
|
if ((retval = nc_get_vara_int(ncid, varid, start, count, i32)))
|
|
if(retval != NC_EINVALCOORDS) {
|
|
printf("nc_get_vara_int did not return NC_EINVALCOORDS");
|
|
ok = 0;
|
|
}
|
|
|
|
nc_close(ncid);
|
|
|
|
printf(ok?"*** PASS\n":"*** FAIL\n");
|
|
return 0;
|
|
}
|