summaryrefslogtreecommitdiff
path: root/java/allDemos.py
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2008-02-11 15:19:35 -0330
committerDwayne Boone <dwayne@zeroc.com>2008-02-11 15:19:35 -0330
commit5800ff543893510f4caeea01d4a6022558cb3a5d (patch)
tree93b0eedfae16a6a7a6668c024272a4d0ed9c963a /java/allDemos.py
parentDo ont use stupid in reference to M$ (diff)
downloadice-5800ff543893510f4caeea01d4a6022558cb3a5d.tar.bz2
ice-5800ff543893510f4caeea01d4a6022558cb3a5d.tar.xz
ice-5800ff543893510f4caeea01d4a6022558cb3a5d.zip
Added DemoUtil.py
Diffstat (limited to 'java/allDemos.py')
-rwxr-xr-xjava/allDemos.py139
1 files changed, 10 insertions, 129 deletions
diff --git a/java/allDemos.py b/java/allDemos.py
index 9908c7d5f6c..59f1dfd4ea6 100755
--- a/java/allDemos.py
+++ b/java/allDemos.py
@@ -8,63 +8,17 @@
#
# **********************************************************************
-import os, sys, getopt, re
+import os, sys
-keepGoing = False
-testErrors = []
-
-def isCygwin():
- # The substring on sys.platform is required because some cygwin
- # versions return variations like "cygwin_nt-4.01".
- return sys.platform[:6] == "cygwin"
-
-if sys.platform == "win32":
- print "allDemos.py only supports cygwin python under Windows (use /usr/bin/python allDemos.py)"
- sys.exit(1)
-
-def runDemos(args, demos, num = 0):
- global testErrors
- global keepGoing
-
- rootPath = "demo"
- if not os.path.exists(rootPath):
- rootPath = "."
-
- if len(demos) > 0 and not os.path.exists(os.path.join(rootPath, os.path.normpath(demos[0]))):
- print "Unable to locate first demo. Check directory structure and location of scripts"
- sys.exit(1)
-
- #
- # Run each of the demos.
- #
- for i in demos:
-
- i = os.path.normpath(i)
- dir = os.path.join(rootPath, i)
-
- print
- if(num > 0):
- print "[" + str(num) + "]",
- print "*** running demo in " + dir,
- print
-
- if isCygwin():
- status = os.system("cd %s ; %s %s" % (dir, "/usr/bin/python expect.py", args))
- else:
- status = os.system("cd %s ; %s %s" % (dir, "./expect.py", args))
-
- if status:
- if(num > 0):
- print "[" + str(num) + "]",
- message = "demo in " + dir + " failed with exit status", status,
- print message
- if keepGoing == False:
- print "exiting"
- sys.exit(status)
- else:
- print " ** Error logged and will be displayed again when suite is completed **"
- testErrors.append(message)
+for toplevel in [".", "..", "../..", "../../..", "../../../.."]:
+ toplevel = os.path.abspath(toplevel)
+ if os.path.exists(os.path.join(toplevel, "config", "DemoUtil.py")):
+ break
+else:
+ raise "can't find toplevel directory!"
+sys.path.append(os.path.join(toplevel, "config"))
+import DemoUtil
#
# List of all basic demos.
@@ -104,77 +58,4 @@ demos = [
if isCygwin() == 0:
demos += [ ]
-def usage():
- print "usage: %s " % (sys.argv[0])
- print " --start=<regex> Start running the demos at the given demo."
- print " --start-after=<regex> Start running the demos after the given demo."
- print " --loop Run the demos in a loop."
- print " --filter=<regex> Run all the demos that match the given regex."
- print " --rfilter=<regex> Run all the demos that do not match the given regex."
- print " --fast Run an abbreviated version of the demos."
- print " --debug Display debugging information on each demos."
- print " --trace Run the demos with tracing enabled."
- print " --host=host Set --Ice.Default.Host=<host>."
- print " --mode=debug|release Run the demos with debug or release mode builds (win32 only)."
- print " --continue Keep running when a demo fails."
- sys.exit(2)
-
-try:
- opts, args = getopt.getopt(sys.argv[1:], "lr:R:", [
- "filter=", "rfilter=", "start-after=", "start=", "loop", "fast", "trace", "debug", "host=", "mode=",
- "continue"])
-except getopt.GetoptError:
- usage()
-
-# Extra args cause a usage error.
-if args:
- usage()
-
-def index(l, re):
- """Find the index of the first item in the list that matches the given re"""
- for i in range(0, len(l)):
- if re.search(l[i]):
- return i
- return -1
-
-loop = False
-arg = ""
-for o, a in opts:
- if o in ("-l", "--loop"):
- loop = True
- elif o in ("-c", "--continue"):
- keepGoing = True
- elif o in ("-r", "-R", "--filter", '--rfilter'):
- regexp = re.compile(a)
- if o in ("--rfilter", "-R"):
- demos = [ x for x in demos if not regexp.search(x) ]
- else:
- demos = [ x for x in demos if regexp.search(x) ]
- elif o in ("--host", "--fast", "--trace", "--debug", "--mode"):
- if o == "--mode":
- if a not in ( "debug", "release"):
- usage()
- arg += " " + o
- if len(a) > 0:
- arg += " " + a
- elif o in ('--start', "--start-after"):
- start = index(demos, re.compile(a))
- if start == -1:
- print "demo %s not found. no demos to run" % (a)
- sys.exit(2)
- if o == "--start-after":
- start += 1
- demos = demos[start:]
-
-if loop:
- num = 1
- while 1:
- runDemos(arg, demos, num)
- num += 1
-else:
- runDemos(arg, demos)
-
-if len(testErrors) > 0:
- print "The following errors occurred:"
- for x in testErrors:
- print x
+DemoUtil.run(demos)