summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-05-25 13:02:06 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-05-25 13:02:06 +0200
commit7a7ec37f99f3dd5120952e6ca6263dd72061abb1 (patch)
treef2054bf445ed844606172346210f244a67db2cc7 /tests
parentaaef9aa018dc030a7b5b2585bad19812ff214fab (diff)
downloadrsyslog-7a7ec37f99f3dd5120952e6ca6263dd72061abb1.tar.gz
rsyslog-7a7ec37f99f3dd5120952e6ca6263dd72061abb1.tar.xz
rsyslog-7a7ec37f99f3dd5120952e6ca6263dd72061abb1.zip
improved testbench / solved imdiag race condition
imdiag/imtcp had a modload race condition (as imdiag is a testing aid, this has no implications for production deployments). Also, I replaced netcat by a custom program to talk to imdiag. This, for the first time ever, is now a Java program. I plan to add some GUI troubleshooting tools and thought it is a good idea to start doing things in Java that can simply be done in that language.
Diffstat (limited to 'tests')
-rw-r--r--tests/DiagTalker.java43
-rw-r--r--tests/Makefile.am6
-rwxr-xr-xtests/diskqueue.sh4
-rwxr-xr-xtests/waitqueueempty.sh3
4 files changed, 54 insertions, 2 deletions
diff --git a/tests/DiagTalker.java b/tests/DiagTalker.java
new file mode 100644
index 00000000..e33a5867
--- /dev/null
+++ b/tests/DiagTalker.java
@@ -0,0 +1,43 @@
+//package com.rsyslog.diag;
+import java.io.*;
+import java.net.*;
+
+public class DiagTalker {
+ public static void main(String[] args) throws IOException {
+
+ Socket diagSocket = null;
+ PrintWriter out = null;
+ BufferedReader in = null;
+ final String host = "127.0.0.1";
+ final int port = 13500;
+
+ try {
+ diagSocket = new Socket(host, port);
+ out = new PrintWriter(diagSocket.getOutputStream(), true);
+ in = new BufferedReader(new InputStreamReader(
+ diagSocket.getInputStream()));
+ } catch (UnknownHostException e) {
+ System.err.println("can not resolve " + host + "!");
+ System.exit(1);
+ } catch (IOException e) {
+ System.err.println("Couldn't get I/O for "
+ + "the connection to: " + host + ".");
+ System.exit(1);
+ }
+
+ BufferedReader stdIn = new BufferedReader(
+ new InputStreamReader(System.in));
+ String userInput;
+
+ while ((userInput = stdIn.readLine()) != null) {
+ out.println(userInput);
+ System.out.println("imdiag returns: " + in.readLine());
+ }
+
+ out.close();
+ in.close();
+ stdIn.close();
+ diagSocket.close();
+ }
+}
+
diff --git a/tests/Makefile.am b/tests/Makefile.am
index ed48fce8..caa95c51 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -5,9 +5,12 @@ if ENABLE_OMSTDOUT
TESTS += omod-if-array.sh parsertest.sh inputname.sh fieldtest.sh
endif
TESTS_ENVIRONMENT = RSYSLOG_MODDIR='$(abs_top_builddir)'/runtime/.libs/
-DISTCLEANFILES=rsyslog.pid
+DISTCLEANFILES=rsyslog.pid '$(abs_top_builddir)'/DiagTalker.class
test_files = testbench.h runtime-dummy.c
+check_JAVA = DiagTalker.java
+#dist_java_JAVA = DiagTalker.java
+
EXTRA_DIST= 1.rstest 2.rstest 3.rstest err1.rstest \
cfg1.cfgtest \
cfg1.testin \
@@ -47,6 +50,7 @@ EXTRA_DIST= 1.rstest 2.rstest 3.rstest err1.rstest \
testsuites/1.inputname_imtcp_12516 \
omod-if-array.sh \
waitqueueempty.sh \
+ DiagTalker.java \
cfg.sh
ourtail_SOURCES = ourtail.c
diff --git a/tests/diskqueue.sh b/tests/diskqueue.sh
index a91f3414..eabfcf78 100755
--- a/tests/diskqueue.sh
+++ b/tests/diskqueue.sh
@@ -4,6 +4,10 @@
# memory to disk mode for DA queues.
# added 2009-04-17 by Rgerhards
# This file is part of the rsyslog project, released under GPLv3
+# uncomment for debugging support:
+#set -o xtrace
+#export RSYSLOG_DEBUG="debug nostdout"
+#export RSYSLOG_DEBUGLOG="tmp"
echo testing queue disk-only mode
rm -rf test-spool
mkdir test-spool
diff --git a/tests/waitqueueempty.sh b/tests/waitqueueempty.sh
index 2c047588..4825853a 100755
--- a/tests/waitqueueempty.sh
+++ b/tests/waitqueueempty.sh
@@ -1,4 +1,5 @@
# wait until main message queue is empty. This is currently done in
# a separate shell script so that we can change the implementation
# at some later point. -- rgerhards, 2009-05-25
-echo WaitMainQueueEmpty | nc 127.0.0.1 13500
+#echo WaitMainQueueEmpty | nc 127.0.0.1 13500
+echo WaitMainQueueEmpty | java -classpath $abs_top_builddir DiagTalker