summaryrefslogtreecommitdiff
path: root/cpp/demo/IceStorm/replicated/expect.py
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2007-08-15 13:59:55 -0230
committerDwayne Boone <dwayne@zeroc.com>2007-08-15 13:59:55 -0230
commit1d265d0027c43825a0dd9567589758713a27452c (patch)
tree207e11aba123ed504311ba5b988b79d151852704 /cpp/demo/IceStorm/replicated/expect.py
parentAdded missing file (diff)
downloadice-1d265d0027c43825a0dd9567589758713a27452c.tar.bz2
ice-1d265d0027c43825a0dd9567589758713a27452c.tar.xz
ice-1d265d0027c43825a0dd9567589758713a27452c.zip
Added expect scripts
Diffstat (limited to 'cpp/demo/IceStorm/replicated/expect.py')
-rwxr-xr-xcpp/demo/IceStorm/replicated/expect.py106
1 files changed, 106 insertions, 0 deletions
diff --git a/cpp/demo/IceStorm/replicated/expect.py b/cpp/demo/IceStorm/replicated/expect.py
new file mode 100755
index 00000000000..3f6869b0b90
--- /dev/null
+++ b/cpp/demo/IceStorm/replicated/expect.py
@@ -0,0 +1,106 @@
+#!/usr/bin/env python
+# **********************************************************************
+#
+# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
+#
+# This copy of Ice is licensed to you under the terms described in the
+# ICE_LICENSE file included in this distribution.
+#
+# **********************************************************************
+
+import pexpect, sys, os
+
+try:
+ import demoscript
+except ImportError:
+ for toplevel in [".", "..", "../..", "../../..", "../../../.."]:
+ toplevel = os.path.normpath(toplevel)
+ if os.path.exists(os.path.join(toplevel, "demoscript")):
+ break
+ else:
+ raise "can't find toplevel directory!"
+ sys.path.append(os.path.join(toplevel))
+ import demoscript
+
+import demoscript.Util
+
+import time, signal
+
+print "cleaning databases...",
+sys.stdout.flush()
+demoscript.Util.cleanDbDir("db/node")
+demoscript.Util.cleanDbDir("db/registry")
+print "ok"
+
+if demoscript.Util.defaultHost:
+ args = ' --IceGrid.Node.PropertiesOverride="Ice.Default.Host=127.0.0.1"'
+else:
+ args = ''
+
+print "starting icegridnode...",
+sys.stdout.flush()
+node = demoscript.Util.spawn('icegridnode --Ice.Config=config.grid --Ice.PrintAdapterReady %s' % (args))
+node.expect('IceGrid.Registry.Internal ready\r{1,2}\nIceGrid.Registry.Server ready\r{1,2}\nIceGrid.Registry.Client ready\r{1,2}\nIceGrid.Node ready')
+print "ok"
+
+print "deploying application...",
+sys.stdout.flush()
+admin = demoscript.Util.spawn('icegridadmin --Ice.Config=config.grid')
+admin.expect('>>>')
+admin.sendline("application add \'application.xml\'")
+admin.expect('>>>')
+print "ok"
+
+print "testing pub/sub...",
+sys.stdout.flush()
+sub = demoscript.Util.spawn('./subscriber --Ice.PrintAdapterReady')
+sub.expect('.* ready')
+
+node.expect('Subscribe:.*Subscribe:.*Subscribe:')
+
+pub = demoscript.Util.spawn('./publisher')
+
+time.sleep(3)
+sub.expect('[0-9][0-9]/[0-9][0-9].*\r{1,2}\n[0-9][0-9]/[0-9][0-9]')
+print "ok"
+
+print "testing replication...",
+sys.stdout.flush()
+# Start killing off the servers
+admin.sendline('server disable DemoIceStorm-1')
+admin.expect('>>>')
+admin.sendline('server stop DemoIceStorm-1')
+admin.expect('>>>')
+
+time.sleep(3)
+sub.expect('[0-9][0-9]/[0-9][0-9].*\r{1,2}\n[0-9][0-9]/[0-9][0-9]')
+
+admin.sendline('server disable DemoIceStorm-2')
+admin.expect('>>>')
+admin.sendline('server stop DemoIceStorm-2')
+admin.expect('>>>')
+
+time.sleep(3)
+sub.expect('[0-9][0-9]/[0-9][0-9].*\r{1,2}\n[0-9][0-9]/[0-9][0-9]')
+
+admin.sendline('server disable DemoIceStorm-3')
+admin.expect('>>>')
+admin.sendline('server stop DemoIceStorm-3')
+admin.expect('>>>')
+
+pub.expect('Ice::NoEndpointException')
+pub.expect(pexpect.EOF)
+assert pub.wait() != 0
+
+sub.kill(signal.SIGINT)
+sub.expect('NoEndpointException')
+sub.expect(pexpect.EOF)
+assert sub.wait() != 0
+print "ok"
+
+admin.sendline('registry shutdown Master')
+admin.sendline('exit')
+admin.expect(pexpect.EOF)
+assert admin.wait() == 0
+node.expect(pexpect.EOF)
+assert node.wait() == 0