summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2010-12-10 14:29:19 +0100
committerRainer Gerhards <rgerhards@adiscon.com>2010-12-10 14:29:19 +0100
commit8d917d0600495c78cd2fda81cff0e003faddc2ed (patch)
tree0d437c08226d353e55fab0d62f551a4fd8a6c99a /tests
parent842ac494e4b98b51a23ba361faeb25764318aa0c (diff)
downloadrsyslog-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;