From a570d5c2d143cfa49b9fe2b0bc77b5c20008886b Mon Sep 17 00:00:00 2001 From: Marko Kreen Date: Wed, 19 Nov 2008 12:16:15 +0000 Subject: [PATCH] asynctest improvements - add $(LIBS) to link line - allow custom query - define fatal_noexit() for CASSERT builds --- test/Makefile | 2 +- test/asynctest.c | 21 +++++++++++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/test/Makefile b/test/Makefile index 92037b1..eb39d41 100644 --- a/test/Makefile +++ b/test/Makefile @@ -6,7 +6,7 @@ include ../config.mak CPPFLAGS += -I../include $(PGINC) LDFLAGS += $(PGLIB) -LIBS += -lpq +LIBS := -lpq $(LIBS) all: asynctest diff --git a/test/asynctest.c b/test/asynctest.c index 4ee11da..ae74c28 100644 --- a/test/asynctest.c +++ b/test/asynctest.c @@ -15,9 +15,12 @@ static void log_error(const char *, ...); static void log_debug(const char *, ...); static void fatal(const char *fmt, ...); +static void fatal_noexit(const char *fmt, ...); #include "list.h" +static char *simple_query = "select 1"; + typedef void (*libev_cb_f)(int sock, short flags, void *arg); typedef struct DbConn { @@ -118,6 +121,16 @@ static void fatal_perror(const char *err) exit(1); } +static void fatal_noexit(const char *fmt, ...) +{ + va_list ap; + char buf[1024]; + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + va_end(ap); + printf("FATAL: %s\n", buf); +} + static void fatal(const char *fmt, ...) { va_list ap; @@ -302,7 +315,7 @@ static int send_query_sleep(DbConn *db) static int send_query_simple(DbConn *db) { - const char *q = "select 1"; + const char *q = simple_query; return PQsendQueryParams(db->con, q, 0, NULL, NULL, NULL, NULL, 0); } @@ -486,6 +499,7 @@ static const char usage_str [] = " -C maxcps max number of connects per sec\n" " -Q maxqps max number of queries per sec\n" " -q num queries per connection (default 1)\n" +" -S sql set simple query\n" "accepted query types:\n" " B - bigdata\n" " S - sleep occasionally\n" @@ -499,12 +513,15 @@ int main(int argc, char *argv[]) char *cstr = NULL; int numcon = 50; - while ((c = getopt(argc, argv, "d:n:s:t:hvC:Q:q:")) != EOF) { + while ((c = getopt(argc, argv, "S:d:n:s:t:hvC:Q:q:")) != EOF) { switch (c) { default: case 'h': printf("%s", usage_str); return 0; + case 'S': + simple_query = optarg; + break; case 'd': cstr = optarg; break; -- 2.39.5