2017-04-15 01:05:30 +08:00
|
|
|
/*********************************************************************
|
2018-12-07 05:29:57 +08:00
|
|
|
* Copyright 2018, UCAR/Unidata
|
2017-04-15 01:05:30 +08:00
|
|
|
* See netcdf/COPYRIGHT file for copying and redistribution conditions.
|
|
|
|
*********************************************************************/
|
|
|
|
|
|
|
|
/**
|
|
|
|
Test the NCpathcvt
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include "ncwinpath.h"
|
|
|
|
|
|
|
|
#undef VERBOSE
|
|
|
|
|
|
|
|
typedef struct Test {
|
|
|
|
char* path;
|
|
|
|
char* expected;
|
|
|
|
} Test;
|
|
|
|
|
|
|
|
/* Path conversion tests */
|
|
|
|
static Test PATHTESTS[] = {
|
Fix nczarr-experimental to better support CMake and find AWS libraries
The primary fix is to improve CMake build support.
Specific changes include:
* CMake: Provide a better soln to locating the AWS SDK
libraries; the new way is the preferred method as described in
the aws-cpp-sdk documentation.
* CMake (and Automake): allow -DENABLE_S3_SDK (default off) to suppress
looking for AWS libraries.
* CMake: add the complete set of nczarr tests
* CMake: add EXTERNL as needed to various .h files.
* Improve support for windows drive letters in paths.
* Add nczarr and s3 flags to nc-config
* For VisualStudio X nczarr, cleanup the NAN+INFINITY handling
* Convert _MSC_VER -> _WIN32 and vice versa as needed
* NCZarr - support multiple platform paths including windows, cygwin.
mingw, etc.
* NCZarr - sort the test outputs because different platforms
produce directory contents in different orders.
One big change concerns netcdf-c/CMakeLists.txt and netcdf-c/configure.ac.
In the current versions, it was the case that --disable-hdf5
disabled netcdf-4 (libsrc4). With nczarr, this can no longer
be the case because nczarr requires libsrc4 even if libhdf5
is disabled. So, I modified the above files to move the
format options (HDF5, NCZarr, HDF4, etc) to a single place
near the front of the files. Now it is the case that:
* Enabling any of the formats that require libsrc4
also does an implicit --enable-netcdf4.
* --disable-netcdf4 | --disable-netcdf-4 now becomes
and alias for --disable-hdf5.
There are probably some bugs in this change in terms of
dependencies between format options.
Problems:
* CMake S3 support is still not working for Visual Studio
* A recent issue points out that there is work to do on handling
UTF8 filenames, but that will be addressed in a separate fix.
Notes:
* Consider converting all of our includes/.h files to use EXTERNL
2020-07-13 02:21:56 +08:00
|
|
|
#ifdef _MSC_VER
|
2017-04-15 01:05:30 +08:00
|
|
|
{"/xxx/a/b","/xxx/a/b"},
|
|
|
|
{"d:/x/y","d:\\x\\y"},
|
|
|
|
{"/cygdrive/d/x/y","d:\\x\\y"},
|
|
|
|
{"/d/x/y","d:\\x\\y"},
|
|
|
|
{"/cygdrive/d","d:\\"},
|
|
|
|
{"/d","d:\\"},
|
|
|
|
{"/cygdrive/d/git/netcdf-c/dap4_test/daptestfiles/test_anon_dim.2.syn","d:\\git\\netcdf-c\\dap4_test\\daptestfiles\\test_anon_dim.2.syn"},
|
|
|
|
{"[dap4]file:///cygdrive/d/git/netcdf-c/dap4_test/daptestfiles/test_anon_dim.2.syn","[dap4]file:///cygdrive/d/git/netcdf-c/dap4_test/daptestfiles/test_anon_dim.2.syn"},
|
Fix nczarr-experimental to better support CMake and find AWS libraries
The primary fix is to improve CMake build support.
Specific changes include:
* CMake: Provide a better soln to locating the AWS SDK
libraries; the new way is the preferred method as described in
the aws-cpp-sdk documentation.
* CMake (and Automake): allow -DENABLE_S3_SDK (default off) to suppress
looking for AWS libraries.
* CMake: add the complete set of nczarr tests
* CMake: add EXTERNL as needed to various .h files.
* Improve support for windows drive letters in paths.
* Add nczarr and s3 flags to nc-config
* For VisualStudio X nczarr, cleanup the NAN+INFINITY handling
* Convert _MSC_VER -> _WIN32 and vice versa as needed
* NCZarr - support multiple platform paths including windows, cygwin.
mingw, etc.
* NCZarr - sort the test outputs because different platforms
produce directory contents in different orders.
One big change concerns netcdf-c/CMakeLists.txt and netcdf-c/configure.ac.
In the current versions, it was the case that --disable-hdf5
disabled netcdf-4 (libsrc4). With nczarr, this can no longer
be the case because nczarr requires libsrc4 even if libhdf5
is disabled. So, I modified the above files to move the
format options (HDF5, NCZarr, HDF4, etc) to a single place
near the front of the files. Now it is the case that:
* Enabling any of the formats that require libsrc4
also does an implicit --enable-netcdf4.
* --disable-netcdf4 | --disable-netcdf-4 now becomes
and alias for --disable-hdf5.
There are probably some bugs in this change in terms of
dependencies between format options.
Problems:
* CMake S3 support is still not working for Visual Studio
* A recent issue points out that there is work to do on handling
UTF8 filenames, but that will be addressed in a separate fix.
Notes:
* Consider converting all of our includes/.h files to use EXTERNL
2020-07-13 02:21:56 +08:00
|
|
|
#else
|
|
|
|
{"/xxx/a/b","/xxx/a/b"},
|
|
|
|
{"d:/x/y","d:/x/y"},
|
|
|
|
{"/cygdrive/d/x/y","d:/x/y"},
|
|
|
|
{"/d/x/y","d:/x/y"},
|
|
|
|
{"/cygdrive/d","d:/"},
|
|
|
|
{"/d","d:/"},
|
|
|
|
{"/cygdrive/d/git/netcdf-c/dap4_test/daptestfiles/test_anon_dim.2.syn","d:/git/netcdf-c/dap4_test/daptestfiles/test_anon_dim.2.syn"},
|
|
|
|
{"[dap4]file:///cygdrive/d/git/netcdf-c/dap4_test/daptestfiles/test_anon_dim.2.syn","[dap4]file:///cygdrive/d/git/netcdf-c/dap4_test/daptestfiles/test_anon_dim.2.syn"},
|
|
|
|
#endif
|
2017-04-15 01:05:30 +08:00
|
|
|
{NULL,NULL}
|
|
|
|
};
|
|
|
|
|
|
|
|
int
|
|
|
|
main(int argc, char** argv)
|
|
|
|
{
|
|
|
|
Test* test;
|
|
|
|
int failcount = 0;
|
|
|
|
|
|
|
|
for(test=PATHTESTS;test->path;test++) {
|
|
|
|
char* cvt = NCpathcvt(test->path);
|
|
|
|
if(cvt == NULL) {
|
|
|
|
fprintf(stderr,"TEST returned NULL: %s\n",test->path);
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
if(strcmp(cvt,test->expected) != 0) {
|
|
|
|
fprintf(stderr,"NCpathcvt failed:: input: |%s| expected=|%s| actual=|%s|\n",test->path,test->expected,cvt);
|
|
|
|
failcount++;
|
|
|
|
}
|
|
|
|
#ifdef VERBOSE
|
|
|
|
fprintf(stderr,"NCpathcvt:: input: |%s| actual=|%s|\n",test->path,cvt);
|
2018-12-07 05:29:57 +08:00
|
|
|
#endif
|
2017-04-15 01:05:30 +08:00
|
|
|
free(cvt);
|
|
|
|
}
|
|
|
|
|
|
|
|
fprintf(stderr,"%s test_ncuri\n",failcount > 0 ? "***FAIL":"***PASS");
|
|
|
|
return (failcount > 0 ? 1 : 0);
|
|
|
|
}
|