diff options
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLog-99c | 11 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/Event/Basic/README | 43 | ||||
-rwxr-xr-x | TAO/orbsvcs/tests/Event/Basic/run_test.pl | 32 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/Event/Performance/README | 50 | ||||
-rwxr-xr-x | TAO/orbsvcs/tests/Event/Performance/run_test.pl | 44 | ||||
-rw-r--r-- | TAO/orbsvcs/tests/Event/lib/README | 5 |
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. |