r445 - trunk/varnish-cache/bin/varnishtester
phk at projects.linpro.no
phk at projects.linpro.no
Tue Jul 11 23:04:45 CEST 2006
Author: phk
Date: 2006-07-11 23:04:45 +0200 (Tue, 11 Jul 2006)
New Revision: 445
Modified:
trunk/varnish-cache/bin/varnishtester/varnishtester.c
Log:
Add Pause() and Resume() to pace script execution
Modified: trunk/varnish-cache/bin/varnishtester/varnishtester.c
===================================================================
--- trunk/varnish-cache/bin/varnishtester/varnishtester.c 2006-07-11 21:01:07 UTC (rev 444)
+++ trunk/varnish-cache/bin/varnishtester/varnishtester.c 2006-07-11 21:04:45 UTC (rev 445)
@@ -31,6 +31,10 @@
static struct event_base *eb;
+
+static void Pause(void);
+static void Resume(void);
+
/*--------------------------------------------------------------------*/
static int serv_sock = -1;
@@ -212,6 +216,8 @@
if (p == NULL)
return;
printf("V: <<%s>>\n", p);
+ if (!strcmp(p, "Child said <Ready>"))
+ Resume();
}
}
@@ -237,7 +243,6 @@
cmd_start(char **av)
{
- printf("%s()\n", __func__);
(void)av;
assert(pipe(pipe1) == 0);
assert(pipe(pipe2) == 0);
@@ -269,6 +274,7 @@
}
close(pipe1[0]);
close(pipe2[1]);
+ Pause();
}
@@ -389,49 +395,69 @@
/*--------------------------------------------------------------------*/
+static struct bufferevent *e_cmd;
+
static void
rd_cmd(struct bufferevent *bev, void *arg)
{
char *p;
char **av;
+ int run = 1;
(void)bev;
(void)arg;
- p = evbuffer_readline(bev->input);
- if (p == NULL)
- return;
- av = ParseArgv(p, 0);
- if (av[0] != NULL) {
- fprintf(stderr, "%s\n", av[0]);
- exit (1);
+ while (run) {
+ p = evbuffer_readline(bev->input);
+ if (p == NULL)
+ return;
+ printf("]: <<%s>>\n", p);
+ av = ParseArgv(p, 0);
+ if (av[0] != NULL) {
+ fprintf(stderr, "%s\n", av[0]);
+ exit (1);
+ }
+ if (av[1] == NULL)
+ return;
+ if (!strcmp(av[1], "start")) {
+ cmd_start(av + 2);
+ run = 0;
+ } else if (!strcmp(av[1], "stop"))
+ cmd_stop(av + 2);
+ else if (!strcmp(av[1], "serve"))
+ cmd_serve(av + 2);
+ else if (!strcmp(av[1], "cli"))
+ cmd_cli(av + 2);
+ else if (!strcmp(av[1], "vcl"))
+ cmd_vcl(av + 2);
+ else if (!strcmp(av[1], "open"))
+ cmd_open(av + 2);
+ else if (!strcmp(av[1], "close"))
+ cmd_close(av + 2);
+ else {
+ fprintf(stderr, "Unknown command \"%s\"\n", av[1]);
+ exit (2);
+ }
+ FreeArgv(av);
}
- if (av[1] == NULL)
- return;
- if (!strcmp(av[1], "start"))
- cmd_start(av + 2);
- else if (!strcmp(av[1], "stop"))
- cmd_stop(av + 2);
- else if (!strcmp(av[1], "serve"))
- cmd_serve(av + 2);
- else if (!strcmp(av[1], "cli"))
- cmd_cli(av + 2);
- else if (!strcmp(av[1], "vcl"))
- cmd_vcl(av + 2);
- else if (!strcmp(av[1], "open"))
- cmd_open(av + 2);
- else if (!strcmp(av[1], "close"))
- cmd_close(av + 2);
- else {
- fprintf(stderr, "Unknown command \"%s\"\n", av[1]);
- exit (2);
- }
- FreeArgv(av);
}
+static void
+Pause()
+{
+ printf("X: Pause\n");
+ bufferevent_disable(e_cmd, EV_READ);
+}
+
+static void
+Resume()
+{
+ printf("X: Resume\n");
+ bufferevent_enable(e_cmd, EV_READ);
+ rd_cmd(e_cmd, NULL);
+}
+
/*--------------------------------------------------------------------*/
-static struct bufferevent *e_cmd;
-
int
main(int argc, char **argv)
{
More information about the varnish-commit
mailing list