Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(654)

Side by Side Diff: tools/testing/architecture.py

Issue 8469016: Adding in-browser correctness testing via selenium. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 # for details. All rights reserved. Use of this source code is governed by a 2 # for details. All rights reserved. Use of this source code is governed by a
3 # BSD-style license that can be found in the LICENSE file. 3 # BSD-style license that can be found in the LICENSE file.
4 # 4 #
5 5
6 import os 6 import os
7 import platform 7 import platform
8 import re 8 import re
9 import shutil 9 import shutil
10 import subprocess 10 import subprocess
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 return path + '.dartium.html' 387 return path + '.dartium.html'
388 388
389 def GetCompileCommand(self, fatal_static_type_errors=False): 389 def GetCompileCommand(self, fatal_static_type_errors=False):
390 fatal_static_type_errors = fatal_static_type_errors # shutup lint! 390 fatal_static_type_errors = fatal_static_type_errors # shutup lint!
391 return None 391 return None
392 392
393 def Compile(self): 393 def Compile(self):
394 return 0 394 return 0
395 395
396 396
397 class WebDriverArchiecture(ChromiumArchitecture):
398 """Architecture that runs compiled dart->JS (via frog) through a variety of
399 real browsers using WebDriver."""
400
401 def __init__(self, root_path, arch, mode, component, test):
402 super(WebDriverArchiecture, self).__init__(root_path, arch, mode,
403 component, test)
404
405 def GetCompileCommand(self, fatal_static_type_errors=False):
406 """Returns cmdline as an array to invoke the compiler on this test."""
407 # We need an absolute path because the compilation will run
408 # in a temporary directory.
409 frog = os.path.abspath(utils.GetDartRunner(self.mode, self.arch, 'frogsh'))
ngeoffray 2011/11/11 09:20:50 Could that be frog instead? frogsh requires node,
410 build_root = utils.GetBuildRoot(OS_GUESS, self.mode, 'ia32')
411 cmd = [frog, '--libdir=%s' % os.path.abspath(os.path.join(self.root_path,
412 'frog', 'lib')), '--compile-only',
413 '--out=%s' % self.GetScriptPath()]
414 cmd.append(self.GetTestScriptFile())
415 return cmd
416
417 def GetRunCommand(self, fatal_static_type_errors=False):
418 """Returns a command line to execute for the test."""
419 selenium_location = os.path.join(self.root_path, 'tools', 'testing',
420 'run_selenium.py')
421
422 html_output_file = os.path.join(self.GetHtmlPath(), self.GetHtmlName())
423 f = open(html_output_file, 'w')
424 f.write(self.GetHtmlContents())
425 f.close()
426 return [selenium_location, html_output_file]
427
428
397 class StandaloneArchitecture(Architecture): 429 class StandaloneArchitecture(Architecture):
398 """Base class for architectures that run tests without a browser.""" 430 """Base class for architectures that run tests without a browser."""
399 431
400 def __init__(self, root_path, arch, mode, component, test): 432 def __init__(self, root_path, arch, mode, component, test):
401 super(StandaloneArchitecture, self).__init__(root_path, arch, mode, componen t, 433 super(StandaloneArchitecture, self).__init__(root_path, arch, mode, componen t,
402 test) 434 test)
403 435
404 def GetExecutable(self): 436 def GetExecutable(self):
405 """Returns the path to the Dart test runner (executes the .dart file).""" 437 """Returns the path to the Dart test runner (executes the .dart file)."""
406 return utils.GetDartRunner(self.mode, self.arch, self.component) 438 return utils.GetDartRunner(self.mode, self.arch, self.component)
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 522
491 523
492 def GetArchitecture(arch, mode, component, test): 524 def GetArchitecture(arch, mode, component, test):
493 root_path = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..')) 525 root_path = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..'))
494 if component == 'chromium': 526 if component == 'chromium':
495 return ChromiumArchitecture(root_path, arch, mode, component, test) 527 return ChromiumArchitecture(root_path, arch, mode, component, test)
496 528
497 elif component == 'dartium': 529 elif component == 'dartium':
498 return DartiumArchitecture(root_path, arch, mode, component, test) 530 return DartiumArchitecture(root_path, arch, mode, component, test)
499 531
532 elif component == 'webdriver':
533 return WebDriverArchiecture(root_path, arch, mode, component, test)
534
500 elif component in ['vm', 'frog', 'frogsh']: 535 elif component in ['vm', 'frog', 'frogsh']:
501 return StandaloneArchitecture(root_path, arch, mode, component, test) 536 return StandaloneArchitecture(root_path, arch, mode, component, test)
502 537
503 elif component == 'leg': 538 elif component == 'leg':
504 return LegArchitecture(root_path, arch, mode, component, test) 539 return LegArchitecture(root_path, arch, mode, component, test)
505 540
506 elif component == 'dartc': 541 elif component == 'dartc':
507 return DartcArchitecture(root_path, arch, mode, component, test) 542 return DartcArchitecture(root_path, arch, mode, component, test)
OLDNEW
« no previous file with comments | « tools/test.py ('k') | tools/testing/run_selenium.py » ('j') | tools/testing/run_selenium.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698