From d065a53813445c0c18ec4e72df93c6925d5b6b96 Mon Sep 17 00:00:00 2001 From: "anodelman%mozilla.com" Date: Wed, 29 Apr 2009 17:29:37 +0000 Subject: [PATCH] Bug 480413 - design test to monitor browser shut down time bustage fix for increase in ts numbers (p/r = anodelman) git-svn-id: svn://10.0.0.236/trunk@257078 18797224-902f-48f8-a5cc-f745e15eee43 --- .../testing/performance/talos/bcontroller.py | 20 +++++++++++++------ mozilla/testing/performance/talos/ttest.py | 9 +++++---- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/mozilla/testing/performance/talos/bcontroller.py b/mozilla/testing/performance/talos/bcontroller.py index c8514e5916b..259f71ef49e 100644 --- a/mozilla/testing/performance/talos/bcontroller.py +++ b/mozilla/testing/performance/talos/bcontroller.py @@ -64,15 +64,19 @@ elif platform.system() == "Darwin": class BrowserWaiter(threading.Thread): - def __init__(self, command): + def __init__(self, command, log, mod): self.command = command + self.log = log + self.mod = mod self.endTime = -1 self.returncode = -1 threading.Thread.__init__(self) self.start() def run(self): - self.returncode = os.system(self.command) #blocking call to system + if self.mod: + self.command = self.command + eval(self.mod) + self.returncode = os.system(self.command + " > " + self.log) #blocking call to system self.endTime = int(time.time()*1000) def hasTime(self): @@ -86,15 +90,16 @@ class BrowserWaiter(threading.Thread): class BrowserController: - def __init__(self, command, name, timeout, log): + def __init__(self, command, mod, name, timeout, log): self.command = command + self.mod = mod self.process_name = name self.browser_wait = timeout self.log = log self.timeout = 600 #no output from the browser in 10 minutes = failure def run(self): - self.bwaiter = BrowserWaiter(self.command + " > " + self.log) + self.bwaiter = BrowserWaiter(self.command, self.log, self.mod) noise = 0 prev_size = 0 while not self.bwaiter.hasTime(): @@ -132,10 +137,11 @@ def main(argv=None): name = "firefox" #default timeout = "" log = "" + mod = "" if argv is None: argv = sys.argv - opts, args = getopt.getopt(argv[1:], "c:t:n:l:", ["command=", "timeout=", "name=", "log="]) + opts, args = getopt.getopt(argv[1:], "c:t:n:l:m:", ["command=", "timeout=", "name=", "log=", "mod="]) # option processing for option, value in opts: @@ -147,9 +153,11 @@ def main(argv=None): name = value if option in ("-l", "--log"): log = value + if option in ("-m", "--mod"): + mod = value if command and timeout and log: - bcontroller = BrowserController(command, name, timeout, log) + bcontroller = BrowserController(command, mod, name, timeout, log) bcontroller.run() else: print "\nFAIL: no command\n" diff --git a/mozilla/testing/performance/talos/ttest.py b/mozilla/testing/performance/talos/ttest.py index 1e40508554b..3250c85a8b3 100644 --- a/mozilla/testing/performance/talos/ttest.py +++ b/mozilla/testing/performance/talos/ttest.py @@ -197,13 +197,14 @@ def runTest(browser_config, test_config): total_time = 0 output = '' url = test_config['url'] - if 'url_mod' in test_config: - url += eval(test_config['url_mod']) command_line = ffprocess.GenerateBrowserCommandLine(browser_config['browser_path'], browser_config['extra_args'], profile_dir, url) utils.debug("command line: " + command_line) - - process = subprocess.Popen('python bcontroller.py --command "%s" --name %s --timeout %d --log %s' % (command_line, browser_config['process'], browser_config['browser_wait'], browser_config['browser_log']), universal_newlines=True, shell=True, bufsize=0, env=os.environ) + + if 'url_mod' in test_config: + process = subprocess.Popen('python bcontroller.py --command "%s" --mod "%s" --name %s --timeout %d --log %s' % (command_line, test_config['url_mod'], browser_config['process'], browser_config['browser_wait'], browser_config['browser_log']), universal_newlines=True, shell=True, bufsize=0, env=os.environ) + else: + process = subprocess.Popen('python bcontroller.py --command "%s" --name %s --timeout %d --log %s' % (command_line, browser_config['process'], browser_config['browser_wait'], browser_config['browser_log']), universal_newlines=True, shell=True, bufsize=0, env=os.environ) #give browser a chance to open # this could mean that we are losing the first couple of data points as the tests starts, but if we don't provide