diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2010-12-10 14:29:19 +0100 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2010-12-10 14:29:19 +0100 |
commit | 8d917d0600495c78cd2fda81cff0e003faddc2ed (patch) | |
tree | 0d437c08226d353e55fab0d62f551a4fd8a6c99a /tests | |
parent | 842ac494e4b98b51a23ba361faeb25764318aa0c (diff) | |
download | rsyslog-8d917d0600495c78cd2fda81cff0e003faddc2ed.tar.gz rsyslog-8d917d0600495c78cd2fda81cff0e003faddc2ed.tar.xz rsyslog-8d917d0600495c78cd2fda81cff0e003faddc2ed.zip |
added some more options to new test tool
Diffstat (limited to 'tests')
-rw-r--r-- | tests/filewriter.c (renamed from tests/fileexpander.c) | 50 |
1 files changed, 43 insertions, 7 deletions
diff --git a/tests/fileexpander.c b/tests/filewriter.c index 3089606f..f13350f3 100644 --- a/tests/fileexpander.c +++ b/tests/filewriter.c @@ -5,9 +5,33 @@ * Max input line size is 10K. * * command line options: - * -f file to be used for input (else stdin) + * -i file to be used for input (else stdin) + * -o file to be used for output (else stdout) * -c number of times the file is to be copied * -n add line numbers (default: off) + * -w wait nbr of microsecs between batches + * -W number of file lines to generate in a batch + * This is useful only if -w is specified as well, + * default is 1000. + * + * Copyright 2010 Rainer Gerhards and Adiscon GmbH. + * + * This file is part of rsyslog. + * + * Rsyslog is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Rsyslog is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Rsyslog. If not, see <http://www.gnu.org/licenses/>. + * + * A copy of the GPL can be found in the file "COPYING" in this distribution. */ #include <stdio.h> #include <stdlib.h> @@ -22,8 +46,10 @@ struct line { static FILE *fpIn; static FILE *fpOut; -static int nCopies = 1; +static long long nCopies = 1; static int linenbrs = 0; +static int waitusecs = 0; +static int batchsize = 1000; /* read the input file and create in-memory representation @@ -68,14 +94,18 @@ readFile() static void genCopies() { - int i; + long long i; long long unsigned lnnbr; struct line *node; - lnnbr = 0; + lnnbr = 1; for(i = 0 ; i < nCopies ; ++i) { - if(i % 1000 == 0) + if(i % 10000 == 0) printf("In copyrun %d\n", i); + if(waitusecs && (i % batchsize == 0)) { + printf("waiting...\n"); + usleep(waitusecs); + } for(node = root ; node != NULL ; node = node->next) { if(linenbrs) fprintf(fpOut, "%12.12llu:%s", lnnbr, node->ln); @@ -92,7 +122,7 @@ void main(int argc, char *argv[]) fpIn = stdin; fpOut = stdout; - while((opt = getopt(argc, argv, "i:o:c:n")) != -1) { + while((opt = getopt(argc, argv, "i:o:c:nw:W:")) != -1) { switch (opt) { case 'i': /* input file */ if((fpIn = fopen(optarg, "r")) == NULL) { @@ -107,11 +137,17 @@ void main(int argc, char *argv[]) } break; case 'c': - nCopies = atoi(optarg); + nCopies = atoll(optarg); break; case 'n': linenbrs = 1; break; + case 'w': + waitusecs = atoi(optarg); + break; + case 'W': + batchsize = atoi(optarg); + break; default: printf("invalid option '%c' or value missing - terminating...\n", opt); exit (1); break; |