Index: dart/tools/testing/dart/test_options.dart |
diff --git a/dart/tools/testing/dart/test_options.dart b/dart/tools/testing/dart/test_options.dart |
index a9b407ed3896ea669446b576035cfd1246e34379..6e0a2a57c22d0e5a0287a00e2def80cd03535fe3 100644 |
--- a/dart/tools/testing/dart/test_options.dart |
+++ b/dart/tools/testing/dart/test_options.dart |
@@ -7,6 +7,8 @@ library test_options_parser; |
import "dart:io"; |
import "drt_updater.dart"; |
import "test_suite.dart"; |
+import "compiler_configuration.dart" show CompilerConfiguration; |
+import "runtime_configuration.dart" show RuntimeConfiguration; |
List<String> defaultTestSelectors = |
const ['samples', 'standalone', 'corelib', 'co19', 'language', |
@@ -709,45 +711,17 @@ Note: currently only implemented for dart2js.''', |
// Adjust default timeout based on mode, compiler, and sometimes runtime. |
if (configuration['timeout'] == -1) { |
- var timeout = 60; |
- switch (configuration['compiler']) { |
- case 'dartanalyzer': |
- case 'dart2analyzer': |
- timeout *= 4; |
- break; |
- case 'dart2js': |
- // TODO(ahe): Restore the timeout of 30 seconds when dart2js |
- // compile-time performance has improved. |
- timeout = 60; |
- if (configuration['mode'] == 'debug') { |
- timeout *= 8; |
- } |
- if (configuration['host_checked']) { |
- timeout *= 16; |
- } |
- if (configuration['checked']) { |
- timeout *= 2; |
- } |
- break; |
- default: |
- if (configuration['arch'] == 'simarm') { |
- timeout *= 4; |
- } else if (configuration['arch'] == 'arm') { |
- timeout *= 4; |
- } else if (configuration['arch'] == 'simmips') { |
- timeout *= 4; |
- } else if (configuration['arch'] == 'mips') { |
- timeout *= 4; |
- } |
- if (configuration['mode'] == 'debug') { |
- timeout *= 2; |
- } |
- if (const ['drt'].contains(configuration['runtime'])) { |
- timeout *= 4; // Allow additional time for browser testing to run. |
- } |
- break; |
- } |
- configuration['timeout'] = timeout; |
+ int compilerMulitiplier = |
+ new CompilerConfiguration(configuration).computeTimeoutMultiplier( |
+ isDebug: configuration['mode'] == 'debug', |
+ isChecked: configuration['checked'], |
+ isHostChecked: configuration['host_checked']); |
+ int runtimeMultiplier = |
+ new RuntimeConfiguration(configuration).computeTimeoutMultiplier( |
+ isDebug: configuration['mode'] == 'debug', |
+ isChecked: configuration['checked'], |
+ arch: configuration['arch']); |
+ configuration['timeout'] = 60 * compilerMulitiplier * runtimeMultiplier; |
} |
return [configuration]; |