1
0
Fork 0
mirror of git://git.psyc.eu/libpsyc synced 2024-08-15 03:19:02 +00:00

better nettest

This commit is contained in:
Gabor Adam Toth 2011-05-06 13:32:12 +02:00
parent 03a33c7a5e
commit 52552b8528
2 changed files with 40 additions and 51 deletions

View file

@ -31,43 +31,26 @@ test: ${TARGETS}
for f in packets/[0-9]*; do echo ">> $$f"; ./testParser $$f; done for f in packets/[0-9]*; do echo ">> $$f"; ./testParser $$f; done
for f in packets/[0-9]*; do echo ">> $$f"; ./testParser $$f -r; done for f in packets/[0-9]*; do echo ">> $$f"; ./testParser $$f -r; done
nettest: nettestfull nettestsplit # test packet parsing & rendering with the test server
nettest: srvstart pkt pktsplit srvkill
nettestfull: # same test but parse routing headers only
nettestr: srvstartr pkt pktsplit srvkill
pkt:
for f in packets/[0-9]*; do echo ">> $$f"; cat $$f | nc localhost ${PORT} | diff -u $$f -; done for f in packets/[0-9]*; do echo ">> $$f"; cat $$f | nc localhost ${PORT} | diff -u $$f -; done
nettestsplit: pktsplit:
for f in packets/[0-9]*; do echo ">> $$f"; ./splittest.pl $$f ${PORT} | diff -u $$f -; done for f in packets/[0-9]*; do echo ">> $$f"; ./splittest.pl $$f ${PORT} | diff -u $$f -; done
nettesterr: pkterr:
for f in packets/err-*; do echo ">> $$f"; cat $$f | nc localhost ${PORT}; done for f in packets/err-*; do echo ">> $$f"; cat $$f | nc localhost ${PORT}; done
netstart: srvstart:
./testServer ${PORT} ./testServer ${PORT} &
netstartr: srvstartr:
./testServer ${PORT} -r ./testServer ${PORT} -r &
netstartv: srvkill:
./testServer ${PORT} -v killall testServer
netstartrv:
./testServer ${PORT} -rv
netstartm:
./testServer ${PORT} -m
netstartmr:
./testServer ${PORT} -mr
netstartms:
./testServer ${PORT} -ms
netstartmsp:
./testServer ${PORT} -msp
netstartmv:
./testServer ${PORT} -mv
netstartmrv:
./testServer ${PORT} -mrv

View file

@ -55,11 +55,15 @@ void *get_in_addr (struct sockaddr *sa)
int main (int argc, char **argv) int main (int argc, char **argv)
{ {
char *port = argc > 1 ? argv[1] : "4440"; char *port = argc > 1 ? argv[1] : "4440";
uint8_t routing_only = argc > 2 && memchr(argv[2], (int)'r', strlen(argv[2])); char *opts = argc > 2 ? argv[2] : NULL;
uint8_t verbose = argc > 2 && memchr(argv[2], (int)'v', strlen(argv[2])); char *v, *w;
uint8_t parse_multiple = argc > 2 && memchr(argv[2], (int)'m', strlen(argv[2])); uint8_t verbose = opts && (v = memchr(opts, (int)'v', strlen(opts))) ?
uint8_t progress = argc > 2 && memchr(argv[2], (int)'p', strlen(argv[2])); v - opts > 0 && (w = memchr(v+1, (int)'v', strlen(opts) - (v - opts))) ?
uint8_t stats = argc > 2 && memchr(argv[2], (int)'s', strlen(argv[2])); w - v > 0 && memchr(w+1, (int)'v', strlen(opts) - (w - opts)) ? 3 : 2 : 1 : 0;
uint8_t routing_only = opts && memchr(opts, (int)'r', strlen(opts));
uint8_t parse_multiple = opts && memchr(opts, (int)'m', strlen(opts));
uint8_t progress = opts && memchr(opts, (int)'p', strlen(opts));
uint8_t stats = opts && memchr(opts, (int)'s', strlen(opts));
size_t recv_buf_size = argc > 3 ? atoi(argv[3]) : 0; size_t recv_buf_size = argc > 3 ? atoi(argv[3]) : 0;
if (recv_buf_size <= 0) if (recv_buf_size <= 0)
recv_buf_size = RECV_BUF_SIZE; recv_buf_size = RECV_BUF_SIZE;
@ -198,11 +202,12 @@ int main (int argc, char **argv)
packets[newfd].routing.modifiers = routing[newfd]; packets[newfd].routing.modifiers = routing[newfd];
packets[newfd].entity.modifiers = entity[newfd]; packets[newfd].entity.modifiers = entity[newfd];
printf("# New connection from %s on socket %d\n", if (verbose)
inet_ntop(remoteaddr.ss_family, printf("# New connection from %s on socket %d\n",
get_in_addr((struct sockaddr*)&remoteaddr), inet_ntop(remoteaddr.ss_family,
remoteIP, INET6_ADDRSTRLEN), get_in_addr((struct sockaddr*)&remoteaddr),
newfd); remoteIP, INET6_ADDRSTRLEN),
newfd);
if (stats) if (stats)
gettimeofday(&start[newfd], NULL); gettimeofday(&start[newfd], NULL);
@ -218,7 +223,7 @@ int main (int argc, char **argv)
// got error or connection closed by client // got error or connection closed by client
if (nbytes == 0) // connection closed if (nbytes == 0) // connection closed
printf("socket %d hung up\n", i); printf("# Socket %d hung up\n", i);
else else
perror("recv"); perror("recv");
@ -238,7 +243,7 @@ int main (int argc, char **argv)
do do
{ {
ret = psyc_parse(&parsers[i], &oper, &name, &value); ret = psyc_parse(&parsers[i], &oper, &name, &value);
if (verbose) if (verbose >= 2)
printf("# ret = %d\n", ret); printf("# ret = %d\n", ret);
switch (ret) { switch (ret) {
@ -338,7 +343,7 @@ int main (int argc, char **argv)
break; break;
case PSYC_PARSE_INSUFFICIENT: case PSYC_PARSE_INSUFFICIENT:
if (verbose) if (verbose >= 2)
printf("# Insufficient data.\n"); printf("# Insufficient data.\n");
contbytes = psyc_getParseRemainingLength(&parsers[i]); contbytes = psyc_getParseRemainingLength(&parsers[i]);
@ -367,7 +372,7 @@ int main (int argc, char **argv)
if (oper) if (oper)
{ {
mod->oper = oper; mod->oper = oper;
if (verbose) if (verbose >= 2)
printf("%c", oper); printf("%c", oper);
} }
@ -380,7 +385,7 @@ int main (int argc, char **argv)
memcpy((void*)pname->ptr, name.ptr, name.length); memcpy((void*)pname->ptr, name.ptr, name.length);
name.length = 0; name.length = 0;
if (verbose) if (verbose >= 2)
printf("%.*s = ", (int)pname->length, pname->ptr); printf("%.*s = ", (int)pname->length, pname->ptr);
} }
@ -392,7 +397,7 @@ int main (int argc, char **argv)
pvalue->length += value.length; pvalue->length += value.length;
value.length = 0; value.length = 0;
if (verbose) if (verbose >= 2)
{ {
printf("[%.*s]", (int)pvalue->length, pvalue->ptr); printf("[%.*s]", (int)pvalue->length, pvalue->ptr);
if (parsers[i].valueLength > pvalue->length) if (parsers[i].valueLength > pvalue->length)
@ -403,7 +408,7 @@ int main (int argc, char **argv)
else if (verbose) else if (verbose)
printf("\n"); printf("\n");
if (verbose) if (verbose >= 3)
printf("\t\t\t\t\t\t\t\t# n:%ld v:%ld c:%ld r:%ld\n", printf("\t\t\t\t\t\t\t\t# n:%ld v:%ld c:%ld r:%ld\n",
pname->length, pvalue->length, pname->length, pvalue->length,
parsers[i].contentParsed, parsers[i].routingLength); parsers[i].contentParsed, parsers[i].routingLength);
@ -415,7 +420,7 @@ int main (int argc, char **argv)
case PSYC_PARSE_ENTITY: case PSYC_PARSE_ENTITY:
if (pname->length >= 5 && memcmp(pname->ptr, "_list", 5) == 0) if (pname->length >= 5 && memcmp(pname->ptr, "_list", 5) == 0)
{ {
if (verbose) if (verbose >= 2)
printf("## LIST START\n"); printf("## LIST START\n");
psyc_initParseListState(&listState); psyc_initParseListState(&listState);
@ -429,7 +434,7 @@ int main (int argc, char **argv)
case PSYC_PARSE_LIST_END: case PSYC_PARSE_LIST_END:
retl = 0; retl = 0;
case PSYC_PARSE_LIST_ELEM: case PSYC_PARSE_LIST_ELEM:
if (verbose) if (verbose >= 2)
{ {
printf("|%.*s\n", (int)elem.length, elem.ptr); printf("|%.*s\n", (int)elem.length, elem.ptr);
if (ret == PSYC_PARSE_LIST_END) if (ret == PSYC_PARSE_LIST_END)
@ -456,7 +461,8 @@ int main (int argc, char **argv)
if (ret < 0) if (ret < 0)
{ {
printf("# Closing connection: %i\n", i); if (verbose)
printf("# Closing connection: %i\n", i);
close(i); // bye! close(i); // bye!
FD_CLR(i, &master); // remove from master set FD_CLR(i, &master); // remove from master set
} }