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

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

Issue 8372095: Bleeding edge change to get frog integrated into the testing infrastructure. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/
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 333 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 def GetHtmlName(self): 344 def GetHtmlName(self):
345 """Returns the name of the output .html file to create.""" 345 """Returns the name of the output .html file to create."""
346 relpath = os.path.relpath(self.test, self.root_path) 346 relpath = os.path.relpath(self.test, self.root_path)
347 return relpath.replace(os.sep, '_') + '.html' 347 return relpath.replace(os.sep, '_') + '.html'
348 348
349 def GetCompileCommand(self, fatal_static_type_errors=False): 349 def GetCompileCommand(self, fatal_static_type_errors=False):
350 """Returns cmdline as an array to invoke the compiler on this test.""" 350 """Returns cmdline as an array to invoke the compiler on this test."""
351 351
352 # We need an absolute path because the compilation will run 352 # We need an absolute path because the compilation will run
353 # in a temporary directory. 353 # in a temporary directory.
354 build_root = utils.GetBuildRoot(OS_GUESS, self.mode, 'dartc') 354 build_root = utils.GetBuildRoot(OS_GUESS, self.mode, 'ia32')
355 dartc = os.path.abspath(os.path.join(build_root, 'compiler', 'bin', 355 dartc = os.path.abspath(os.path.join(build_root, 'compiler', 'bin',
356 'dartc')) 356 'dartc'))
357 if utils.IsWindows(): dartc += '.exe' 357 if utils.IsWindows(): dartc += '.exe'
358 cmd = [dartc, '--work', self.temp_dir] 358 cmd = [dartc, '--work', self.temp_dir]
359 if self.mode == 'release': 359 if self.mode == 'release':
360 cmd += ['--optimize'] 360 cmd += ['--optimize']
361 cmd += self.vm_options 361 cmd += self.vm_options
362 cmd += ['--out', self.GetScriptPath()] 362 cmd += ['--out', self.GetScriptPath()]
363 if fatal_static_type_errors: 363 if fatal_static_type_errors:
364 # TODO(zundel): update to --fatal_type_errors for both VM and Compiler 364 # TODO(zundel): update to --fatal_type_errors for both VM and Compiler
(...skipping 29 matching lines...) Expand all
394 return 0 394 return 0
395 395
396 396
397 class StandaloneArchitecture(Architecture): 397 class StandaloneArchitecture(Architecture):
398 """Base class for architectures that run tests without a browser.""" 398 """Base class for architectures that run tests without a browser."""
399 399
400 def __init__(self, root_path, arch, mode, component, test): 400 def __init__(self, root_path, arch, mode, component, test):
401 super(StandaloneArchitecture, self).__init__(root_path, arch, mode, componen t, 401 super(StandaloneArchitecture, self).__init__(root_path, arch, mode, componen t,
402 test) 402 test)
403 403
404 def GetExecutable(self):
405 """Returns the path to the Dart test runner (executes the .dart file)."""
406 return utils.GetDart(self.mode, self.arch, self.component)
407
408
404 def GetCompileCommand(self, fatal_static_type_errors=False): 409 def GetCompileCommand(self, fatal_static_type_errors=False):
405 fatal_static_type_errors = fatal_static_type_errors # shutup lint! 410 fatal_static_type_errors = fatal_static_type_errors # shutup lint!
406 return None 411 return None
407 412
408 def GetRunCommand(self, fatal_static_type_errors=False): 413 def GetRunCommand(self, fatal_static_type_errors=False):
409 """Returns a command line to execute for the test.""" 414 """Returns a command line to execute for the test."""
410 dart = self.GetExecutable() 415 dart = self.GetExecutable()
411 test_name = os.path.basename(self.test) 416 test_name = os.path.basename(self.test)
412 test_path = os.path.abspath(self.test) 417 test_path = os.path.abspath(self.test)
413 command = [dart] + self.vm_options 418 command = [dart] + self.vm_options
(...skipping 25 matching lines...) Expand all
439 444
440 445
441 # Long term, we should do the running machinery that is currently in 446 # Long term, we should do the running machinery that is currently in
442 # DartRunner.java 447 # DartRunner.java
443 class DartcArchitecture(StandaloneArchitecture): 448 class DartcArchitecture(StandaloneArchitecture):
444 """Runs the Dart ->JS compiler then runs the result in a standalone JS VM.""" 449 """Runs the Dart ->JS compiler then runs the result in a standalone JS VM."""
445 450
446 def __init__(self, root_path, arch, mode, component, test): 451 def __init__(self, root_path, arch, mode, component, test):
447 super(DartcArchitecture, self).__init__(root_path, arch, mode, component, te st) 452 super(DartcArchitecture, self).__init__(root_path, arch, mode, component, te st)
448 453
449 def GetExecutable(self):
450 """Returns the name of the executable to run the test."""
451 return os.path.abspath(os.path.join(self.build_root,
452 'compiler',
453 'bin',
454 'dartc_test'))
455
456 def GetFatalTypeErrorsFlags(self): 454 def GetFatalTypeErrorsFlags(self):
457 return ['--fatal-type-errors'] 455 return ['--fatal-type-errors']
458 456
459 def HasFatalTypeErrors(self): 457 def HasFatalTypeErrors(self):
460 return True 458 return True
461 459
462 def GetRunCommand(self, fatal_static_type_errors=False): 460 def GetRunCommand(self, fatal_static_type_errors=False):
463 """Returns a command line to execute for the test.""" 461 """Returns a command line to execute for the test."""
464 cmd = super(DartcArchitecture, self).GetRunCommand( 462 cmd = super(DartcArchitecture, self).GetRunCommand(
465 fatal_static_type_errors) 463 fatal_static_type_errors)
466 return cmd 464 return cmd
467 465
468 466
469 class RuntimeArchitecture(StandaloneArchitecture):
470 """Executes tests on the standalone VM (runtime)."""
471
472 def __init__(self, root_path, arch, mode, component, test):
473 super(RuntimeArchitecture, self).__init__(root_path, arch, mode, component,
474 test)
475
476 def GetExecutable(self):
477 """Returns the name of the executable to run the test."""
478 return os.path.abspath(os.path.join(self.build_root, 'dart_bin'))
479
480
481 def ExecutePipedCommand(cmd, verbose): 467 def ExecutePipedCommand(cmd, verbose):
482 """Execute a command in a subprocess.""" 468 """Execute a command in a subprocess."""
483 if verbose: 469 if verbose:
484 print 'Executing: ' + ' '.join(cmd) 470 print 'Executing: ' + ' '.join(cmd)
485 pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) 471 pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
486 (output, err) = pipe.communicate() 472 (output, err) = pipe.communicate()
487 if pipe.returncode != 0 and verbose: 473 if pipe.returncode != 0 and verbose:
488 print 'Execution failed: ' + output + '\n' + err 474 print 'Execution failed: ' + output + '\n' + err
489 print output 475 print output
490 print err 476 print err
491 return pipe.returncode, output, err 477 return pipe.returncode, output, err
492 478
493 479
494 def ExecuteCommand(cmd, verbose=False): 480 def ExecuteCommand(cmd, verbose=False):
495 """Execute a command in a subprocess.""" 481 """Execute a command in a subprocess."""
496 if verbose: print 'Executing: ' + ' '.join(cmd) 482 if verbose: print 'Executing: ' + ' '.join(cmd)
497 return subprocess.call(cmd) 483 return subprocess.call(cmd)
498 484
499 485
500 def GetArchitecture(arch, mode, component, test): 486 def GetArchitecture(arch, mode, component, test):
501 root_path = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..')) 487 root_path = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '..'))
502 if component == 'chromium': 488 if component == 'chromium':
503 return ChromiumArchitecture(root_path, arch, mode, component, test) 489 return ChromiumArchitecture(root_path, arch, mode, component, test)
504 490
505 elif component == 'dartium': 491 elif component == 'dartium':
506 return DartiumArchitecture(root_path, arch, mode, component, test) 492 return DartiumArchitecture(root_path, arch, mode, component, test)
507 493
508 elif component == 'vm': 494 elif component in ['vm', 'frog', 'frogsh']:
509 return RuntimeArchitecture(root_path, arch, mode, component, test) 495 return StandaloneArchitecture(root_path, arch, mode, component, test)
510 496
511 elif component == 'dartc': 497 elif component == 'dartc':
512 return DartcArchitecture(root_path, arch, mode, component, test) 498 return DartcArchitecture(root_path, arch, mode, component, test)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698