summaryrefslogtreecommitdiffstats
path: root/tests/stressnast.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/stressnast.c')
-rw-r--r--tests/stressnast.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/stressnast.c b/tests/stressnast.c
new file mode 100644
index 0000000..ad17a51
--- /dev/null
+++ b/tests/stressnast.c
@@ -0,0 +1,60 @@
+#include <nastd.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/time.h>
+
+int
+main(int argc, char *argv[])
+{
+ nasth *nasthole;
+ struct timeval before, after;
+ nast_options opts;
+ int i, rc;
+
+ if (argc != 2) {
+ printf("Usage: %s query\n", argv[0]);
+ return 1;
+ }
+
+ nasthole = nast_sphincter_new(NULL);
+ if (nasthole == NULL) {
+ fprintf(stderr, "ERROR: Couldn't connect to nasthole.\n");
+ return 2;
+ }
+
+ for (;;) {
+ /* Get the default options. */
+ rc = nast_options_get(nasthole, &opts);
+ if (rc == -1) {
+ fprintf(stderr, "ERROR: Couldn't get options: %s.\n",
+ nast_errmsg(nasthole));
+ nast_sphincter_close(nasthole);
+ return 2;
+ }
+
+ for (i = 0; i < 10; i++) {
+ gettimeofday(&before, NULL);
+ rc = nast_get(nasthole, argv[1]);
+ gettimeofday(&after, NULL);
+ if (rc == -1) {
+ fprintf(stderr,
+ "ERROR: Couldn't perform query: %s.\n",
+ nast_errmsg(nasthole));
+ nast_sphincter_close(nasthole);
+ return 2;
+ }
+
+ after.tv_sec -= before.tv_sec;
+ after.tv_usec -= before.tv_usec;
+ if (after.tv_usec < 0) {
+ after.tv_sec--;
+ after.tv_usec += 1000000;
+ }
+ fprintf(stderr, "Request time: %2ld.%06ld seconds.\n",
+ after.tv_sec, after.tv_usec);
+ }
+ }
+ nast_sphincter_close(nasthole);
+ return 0;
+}