xml/xsl test programs

This commit is contained in:
Olof Hagsand 2018-05-27 18:31:19 +00:00
parent b230215eaf
commit 0622f6aafe
2 changed files with 21 additions and 10 deletions

View file

@ -1883,7 +1883,7 @@ usage(char *argv0)
int int
main(int argc, char **argv) main(int argc, char **argv)
{ {
cxobj *xt; cxobj *xt = NULL;
cxobj *xc; cxobj *xc;
cbuf *cb = cbuf_new(); cbuf *cb = cbuf_new();

View file

@ -94,6 +94,7 @@ in
#include <stdint.h> #include <stdint.h>
#include <assert.h> #include <assert.h>
#include <syslog.h> #include <syslog.h>
#include <fcntl.h>
/* cligen */ /* cligen */
#include <cligen/cligen.h> #include <cligen/cligen.h>
@ -1151,19 +1152,20 @@ xpath_vec_flag(cxobj *xcur,
* Example run: * Example run:
echo "a\n<a><b/></a>" | xpath echo "a\n<a><b/></a>" | xpath
*/ */
#if 1 /* Test program */ #if 0 /* Test program */
static int static int
usage(char *argv0) usage(char *argv0)
{ {
fprintf(stderr, "usage:%s <xpath>.\n\tInput on stdin\n", argv0); fprintf(stderr, "usage:%s <xml file name>.\n\tInput on stdin\n", argv0);
exit(0); exit(0);
} }
int int
main(int argc, char **argv) main(int argc, char **argv)
{ {
int retval = -1;
int i; int i;
cxobj **xv; cxobj **xv;
cxobj *x; cxobj *x;
@ -1172,10 +1174,17 @@ main(int argc, char **argv)
int c; int c;
int len; int len;
char *buf = NULL; char *buf = NULL;
char *filename;
int fd;
if (argc != 1){ if (argc != 2){
usage(argv[0]); usage(argv[0]);
return 0; goto done;
}
filename = argv[1];
if ((fd = open(filename, O_RDONLY)) < 0){
clicon_err(OE_UNIX, errno, "open(%s)", filename);
goto done;
} }
/* Read xpath */ /* Read xpath */
len = 1024; /* any number is fine */ len = 1024; /* any number is fine */
@ -1201,10 +1210,11 @@ main(int argc, char **argv)
buf[i++] = (char)(c&0xff); buf[i++] = (char)(c&0xff);
} }
x = NULL; x = NULL;
if (xml_parse_file(0, "</clicon>", NULL, &x) < 0){ if (xml_parse_file(fd, "</clicon>", NULL, &x) < 0){
fprintf(stderr, "parsing 2\n"); fprintf(stderr, "Error: parsing: %s\n", clicon_err_reason);
return -1; return -1;
} }
close (fd);
printf("\n"); printf("\n");
if (xpath_vec(x, "%s", &xv, &xlen, buf) < 0) if (xpath_vec(x, "%s", &xv, &xlen, buf) < 0)
@ -1219,8 +1229,9 @@ main(int argc, char **argv)
} }
if (x) if (x)
xml_free(x); xml_free(x);
retval = 0;
return 0; done:
return retval;
} }
#endif /* Test program */ #endif /* Test program */