summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-05-23 15:08:57 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-05-23 15:08:57 +0000
commit315c5dc2ac745d6c173897afa2c4d7d19960aba5 (patch)
treeca8d5ea101e8c172aaf96fe98e6a9f01ecba5ada
parent4d9d1285a12388997a16f008d6617aea12b63f40 (diff)
downloadATCD-315c5dc2ac745d6c173897afa2c4d7d19960aba5.tar.gz
ChangeLogTag:Sun May 23 10:06:36 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r--TAO/ChangeLog-99c11
-rw-r--r--TAO/orbsvcs/tests/Event/Basic/README43
-rwxr-xr-xTAO/orbsvcs/tests/Event/Basic/run_test.pl32
-rw-r--r--TAO/orbsvcs/tests/Event/Performance/README50
-rwxr-xr-xTAO/orbsvcs/tests/Event/Performance/run_test.pl44
-rw-r--r--TAO/orbsvcs/tests/Event/lib/README5
6 files changed, 185 insertions, 0 deletions
diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c
index cbf6e52a263..47f072ad24f 100644
--- a/TAO/ChangeLog-99c
+++ b/TAO/ChangeLog-99c
@@ -1,3 +1,14 @@
+Sun May 23 10:06:36 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
+
+ * orbsvcs/tests/Event/lib/README:
+ * orbsvcs/tests/Event/Basic/README:
+ * orbsvcs/tests/Event/Basic/run_test.pl:
+ * orbsvcs/tests/Event/Performance/README:
+ * orbsvcs/tests/Event/Performance/run_test.pl:
+ Added some README files explaining the purpose of each test and
+ how to run it. Also added some simple run_test scripts to
+ execute the tests.
+
Sat May 22 22:16:57 1999 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/tests/EC_Throughput/ECT_Throughput.cpp:
diff --git a/TAO/orbsvcs/tests/Event/Basic/README b/TAO/orbsvcs/tests/Event/Basic/README
new file mode 100644
index 00000000000..26408823b69
--- /dev/null
+++ b/TAO/orbsvcs/tests/Event/Basic/README
@@ -0,0 +1,43 @@
+# $Id$
+
+ Basic tests for the real-time event channel.
+
+This directory contains several tests to exercise the real-time event
+channel features, debug it and stress test it. The tests are as simple
+as possible, but not simpler.
+
+ Here are some canonical test configurations:
+
+# Connect 100 suppliers, 100 consumers. Then disconnect and connect
+# one particular consumer, 100. Then do the same for one supplier
+
+$ Reconnect -verbose -suppliers 100 -consumers 100 -d 100
+
+# Same as above, but instead of disconnecting and connecting again
+# simply reconnect. Should be faster
+$ Reconnect -verbose -suppliers 100 -consumers 100 -d 100 -c -s
+
+# Connect 10 suppliers, 10 consumers and then shutdown the EC
+$ Shutdown -verbose -suppliers 5 -consumer 5
+
+# Create 4 event channels, connect all of them using IIOP gateways,
+# then attach 5 consumers and 2 supplier to each, next generate 10000
+# events (each supplier on its own thread). It randomly connect and
+# disconnects the consumers, hence the gateways also do.
+
+$ Observer -ORBsvcconf observer.conf \
+ -consumer_tshift 0 -supplier_tshift 0 \
+ -suppliers 2 -consumers 5 \
+ -channels 4 -burstsize 1000 -burstcount 10 \
+ -burstpause 0 -busyhwm 1024 -maxwritedelay 1024
+
+# Create an event channel in a configuration that informs the
+# scheduler of the dependencies between consumers and suppliers.
+# THIS IS WORK IN PROGRESS
+
+$ Schedule -ORBsvcconf sched.conf -suppliers 5 -consumers 5
+
+NOTES
+
+ Don't worry about the "incomplete data" warning, it is a
+deffect in the test.
diff --git a/TAO/orbsvcs/tests/Event/Basic/run_test.pl b/TAO/orbsvcs/tests/Event/Basic/run_test.pl
new file mode 100755
index 00000000000..75537f52e42
--- /dev/null
+++ b/TAO/orbsvcs/tests/Event/Basic/run_test.pl
@@ -0,0 +1,32 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+# This is a Perl script that runs the client and all the other servers that
+# are needed
+
+unshift @INC, '../../../../../bin';
+require Process;
+require Uniqueid;
+
+print "Reconnect suppliers and consumers, using disconnect/connect calls\n";
+system ("Reconnect -suppliers 100 -consumers 100 -d 100");
+
+print "\n\nReconnect suppliers and consumers, using connect calls\n";
+system ("Reconnect -suppliers 100 -consumers 100 -d 100 -s -c");
+
+print "\n\nShutdown EC without clients still attached\n";
+system ("Shutdown -verbose -suppliers 5 -consumers 5");
+
+print "\n\nComplex event channel test,",
+ "multiple ECs connected through gateways\n";
+system ("Observer -ORBsvcconf observer.conf"
+ ." -consumer_tshift 0 -consumers 5"
+ ." -supplier_tshift 0 -suppliers 2"
+ ." -burstsize 10 -burstcount 10 -burstpause 0"
+ ." -busyhwm 1024 -maxwritedelay 1024");
+
+exit 0;
diff --git a/TAO/orbsvcs/tests/Event/Performance/README b/TAO/orbsvcs/tests/Event/Performance/README
new file mode 100644
index 00000000000..2a62f56080a
--- /dev/null
+++ b/TAO/orbsvcs/tests/Event/Performance/README
@@ -0,0 +1,50 @@
+# $Id$
+
+ Performance tests for the real-time event channel.
+
+This directory contains several tests to measure the performance of
+the real-time event channel. Remember to compile ACE and TAO with
+optimizations enabled when running this tests.
+
+ Here are some canonical test configurations:
+
+# Measure throughput and latency, in a configuration suitable for
+# single threaded systems. This is probably the best case scenario,
+# one supplier, one consumer and no locking.
+
+$ Throughput -burstsize 100000 -burstcount 1
+
+# Same test as above, but with a configuration that is MT-safe
+
+$ Throughput -ORBsvcconf ec.st.conf -burstsize 100000 -burstcount 1
+
+# Increase the number of consumers, but only the first one receives
+# events.
+
+$ Throughput -ORBsvcconf ec.st.conf -burstsize 100000 -burstcount 1 \
+ -consumers 4
+
+# Now increase the number of suppliers, only one consumer receives
+# events from each supplier.
+
+$ Throughput -ORBsvcconf ec.st.conf -burstsize 100000 -burstcount 1 \
+ -consumers 4 -suppliers 4
+
+# Now a test where all consumers receive events from all suppliers
+
+$ Throughput -ORBsvcconf ec.st.conf -burstsize 100000 -burstcount 1 \
+ -consumers 4 -suppliers 4 -consumers_tshift 0 -suppliers_tshift 0
+
+
+# Measure the time required to connect the 100 consumers and 100
+# suppliers, inserting one supplier first and then one supplier.
+# Try -connection_order "consumers" or "suppliers"
+
+$ Connect -ORBsvcconf ec.st.conf -consumers 100 -suppliers 100 \
+ -connection_order interleaved
+
+
+NOTES
+
+ Don't worry about the "incomplete data" warning, it is a
+deffect in the test.
diff --git a/TAO/orbsvcs/tests/Event/Performance/run_test.pl b/TAO/orbsvcs/tests/Event/Performance/run_test.pl
new file mode 100755
index 00000000000..cfa8f281140
--- /dev/null
+++ b/TAO/orbsvcs/tests/Event/Performance/run_test.pl
@@ -0,0 +1,44 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+# This is a Perl script that runs the client and all the other servers that
+# are needed
+
+unshift @INC, '../../../../../bin';
+require Process;
+require Uniqueid;
+
+print "Throughput/Latency single threaded configuration\n";
+system ("Throughput -burstsize 100000 -burstcount 1");
+
+print "\n\nThroughput/Latency MT-safe configuration\n";
+system ("Throughput -ORBsvcconf ec.st.conf -burstsize 100000"
+ ." -burstcount 1");
+
+print "\n\nThroughput/Latency MT-safe configuration, 4 consumers\n";
+system ("Throughput -ORBsvcconf ec.st.conf -burstsize 100000"
+ ." -burstcount 1 -consumers 4");
+
+print "Throughput/Latency MT-safe configuration, 4 consumers 4 suppliers\n";
+system ("Throughput -ORBsvcconf ec.st.conf -burstsize 100000"
+ ." -burstcount 1 -consumers 4 -suppliers 4");
+
+print "\n\nThroughput/Latency MT-safe configuration,",
+ "4 consumers 4 suppliers\n";
+system ("Throughput -ORBsvcconf ec.st.conf -burstsize 100000"
+ ." -burstcount 1 -consumers 4 -suppliers 4"
+ ." -consumers_tshift 0 -suppliers_tshift 0");
+
+print "Connection and disconnection time, 100 consumers 100 suppliers\n";
+system ("Connect -ORBsvcconf ec.st.conf -consumers 100 -suppliers 100"
+ ." -connection_order interleaved");
+
+print "Connection and disconnection time, 500 consumers 500 suppliers\n";
+system ("Connect -ORBsvcconf ec.st.conf -consumers 500 -suppliers 500"
+ ." -connection_order interleaved");
+
+exit 0;
diff --git a/TAO/orbsvcs/tests/Event/lib/README b/TAO/orbsvcs/tests/Event/lib/README
new file mode 100644
index 00000000000..ead5bcaaacc
--- /dev/null
+++ b/TAO/orbsvcs/tests/Event/lib/README
@@ -0,0 +1,5 @@
+# $Id$
+
+This directory contains a small framework to write tests for the
+real-time event service. Check the Basic or Performance directories
+for examples of its use.