test: stats option for files too

This commit is contained in:
tg(x) 2011-05-15 11:51:30 +02:00
parent 65d85f6034
commit 4ccc0c89e6
2 changed files with 22 additions and 8 deletions

View File

@ -38,6 +38,7 @@ void test_file(const char* filename, size_t recv_buf_size) {
char buf[CONT_BUF_SIZE + RECV_BUF_SIZE]; // cont buf + recv buf: [ ccrrrr]
char *recvbuf = buf + CONT_BUF_SIZE; // recv buf: ^^^^
size_t nbytes;
struct timeval start, end;
int fd = open(filename, O_RDONLY);
if (fd < 0) {
@ -45,10 +46,19 @@ void test_file(const char* filename, size_t recv_buf_size) {
exit(1);
}
test_init(0);
if (stats)
gettimeofday(&start, NULL);
while ((nbytes = read(fd, (void*)recvbuf, recv_buf_size)))
test_input(0, recvbuf, nbytes);
if (stats) {
gettimeofday(&end, NULL);
printf("%ld ms\n", (end.tv_sec * 1000000 + end.tv_usec - start.tv_sec * 1000000 - start.tv_usec) / 1000);
}
}
void test_server(const char* port, size_t recv_buf_size) {

View File

@ -1,6 +1,7 @@
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <assert.h>
#include <unistd.h>
#include <getopt.h>
@ -19,7 +20,7 @@
// cmd line args
uint8_t verbose, stats;
uint8_t routing_only, parse_multiple, no_render, progress;
uint8_t routing_only, parse_multiple, no_render, quiet, progress;
char *filename, *port = "4440";
size_t recv_buf_size = RECV_BUF_SIZE;
@ -32,7 +33,7 @@ int contbytes, last_ret;
int main (int argc, char **argv) {
int c;
while ((c = getopt (argc, argv, "f:p:b:mnrsvP")) != -1) {
while ((c = getopt (argc, argv, "f:p:b:mnqrsvP")) != -1) {
switch (c) {
case 'f': filename = optarg; break;
case 'p': port = optarg;
@ -43,6 +44,7 @@ int main (int argc, char **argv) {
break;
case 'm': parse_multiple = 1; break;
case 'n': no_render = 1; break;
case 'q': quiet = 1; break;
case 'r': routing_only = 1; break;
case 's': stats = 1; break;
case 'v': verbose++; break;
@ -160,12 +162,14 @@ int test_input (int i, char *recvbuf, size_t nbytes) {
psyc_setPacketLength(&packets[i]);
if (psyc_render(&packets[i], sendbuf, SEND_BUF_SIZE) == PSYC_RENDER_SUCCESS) {
if (filename && write(1, sendbuf, packets[i].length) == -1) {
perror("write");
ret = -1;
} else if (!filename && send(i, sendbuf, packets[i].length, 0) == -1) {
perror("send");
ret = -1;
if (!quiet) {
if (filename && write(1, sendbuf, packets[i].length) == -1) {
perror("write");
ret = -1;
} else if (!filename && send(i, sendbuf, packets[i].length, 0) == -1) {
perror("send");
ret = -1;
}
}
} else {
printf("# Render error");