netcdf-c/unit_test/test_pathcvt.c
Dennis Heimbigner 25d2e05444 Prepare for the path management code
Rename some files in prep for eventual implementation
of more comprehensive cross-platform file path management.
2020-10-13 19:12:15 -06:00

71 lines
2.0 KiB
C

/*********************************************************************
* Copyright 2018, UCAR/Unidata
* See netcdf/COPYRIGHT file for copying and redistribution conditions.
*********************************************************************/
/**
Test the NCpathcvt
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "ncpathmgr.h"
#undef VERBOSE
typedef struct Test {
char* path;
char* expected;
} Test;
/* Path conversion tests */
static Test PATHTESTS[] = {
#ifdef _MSC_VER
{"/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"},
#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
{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);
#endif
free(cvt);
}
fprintf(stderr,"%s test_ncuri\n",failcount > 0 ? "***FAIL":"***PASS");
return (failcount > 0 ? 1 : 0);
}