fsp/tests/parsecheck.c
2003-11-20 22:35:15 +00:00

63 lines
1.2 KiB
C

#include "tweak.h"
#include "server_def.h"
#include "s_extern.h"
#ifdef STDC_HEADERS
#include <stdlib.h>
#endif
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include "my-string.h"
int dbug=0;
const char *testcases[]={ "", ".","filename","/filename","//filename","//dirname/filename","//dirname//filename","dirname//dir3name//","filename\npasswd",
"file/.dir","directory.ext/filename.",
NULL};
static void print_path(PPATH *pp)
{
printf("fullpath: %s ",pp->fullp);
if(strcmp(pp->fullp,pp->d_ptr))
{
printf("d_ptr: %s (%d) ",pp->d_ptr,pp->d_len);
} else
printf("(%d) ",pp->d_len);
printf("f_ptr: %s (%d) ",pp->f_ptr,pp->f_len);
if(pp->passwd)
printf("passwd: %s",pp->passwd);
}
static void runtestcase(void)
{
int i=0;
PPATH pp;
const char *err;
const char *test;
for(;testcases[i];i++)
{
test=strdup(testcases[i]);
err=parse_path(test,strlen(test)+1,&pp);
printf("parsing: '%s'",test);
if(err)
{
printf(" err: %s\n",err);
free(test);
continue;
} else
printf(" okay.\n");
printf(" ");
print_path(&pp);
printf("\n");
free(test);
}
}
int main(int argc,const char *argv[])
{
runtestcase();
return 0;
}