Remove babel from DEPS and (dart2js) IE support from test infra.
Tested: N/A Change-Id: Ib1804b49c40cac9be52e732090e8160444ebb48d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/417948 Commit-Queue: Mayank Patke <fishythefish@google.com> Reviewed-by: Alexander Thomas <athom@google.com> Reviewed-by: Bob Nystrom <rnystrom@google.com> Reviewed-by: Sigmund Cherem <sigmund@google.com>
This commit is contained in:
committed by
Commit Queue
parent
945b031f5e
commit
cc0527decb
@@ -260,13 +260,6 @@ deps = {
|
|||||||
Var("dart_root") + "/third_party/markupsafe":
|
Var("dart_root") + "/third_party/markupsafe":
|
||||||
Var("chromium_git") + "/chromium/src/third_party/markupsafe.git" +
|
Var("chromium_git") + "/chromium/src/third_party/markupsafe.git" +
|
||||||
"@" + Var("markupsafe_rev"),
|
"@" + Var("markupsafe_rev"),
|
||||||
Var("dart_root") + "/third_party/babel": {
|
|
||||||
"packages": [{
|
|
||||||
"package": "dart/third_party/babel",
|
|
||||||
"version": "version:7.4.5",
|
|
||||||
}],
|
|
||||||
"dep_type": "cipd",
|
|
||||||
},
|
|
||||||
Var("dart_root") + "/third_party/zlib":
|
Var("dart_root") + "/third_party/zlib":
|
||||||
Var("chromium_git") + "/chromium/src/third_party/zlib.git" +
|
Var("chromium_git") + "/chromium/src/third_party/zlib.git" +
|
||||||
"@" + Var("zlib_rev"),
|
"@" + Var("zlib_rev"),
|
||||||
|
|||||||
+2
-2
@@ -158,9 +158,9 @@ All tests are executed using the `test.py` script under `tools/`. You need to u
|
|||||||
$ ./tools/build.py --mode release --arch ia32 most run_ffi_unit_tests
|
$ ./tools/build.py --mode release --arch ia32 most run_ffi_unit_tests
|
||||||
```
|
```
|
||||||
|
|
||||||
Now you can run all tests as follows (Safari, Firefox, Chrome, and IE must be installed, if you want to run the tests on them):
|
Now you can run all tests as follows (Safari, Firefox, and Chrome must be installed, if you want to run the tests on them):
|
||||||
```bash
|
```bash
|
||||||
$ ./tools/test.py -mrelease --arch=ia32 --compiler=dartk,dart2js --runtime=vm,d8,chrome,firefox,[safari,ie10]
|
$ ./tools/test.py -mrelease --arch=ia32 --compiler=dartk,dart2js --runtime=vm,d8,chrome,firefox,[safari]
|
||||||
```
|
```
|
||||||
Specify the compiler used (optional -- only necessary if you are compiling to JavaScript (required for most browsers), the default is "none") and a runtime (where the code will be run).
|
Specify the compiler used (optional -- only necessary if you are compiling to JavaScript (required for most browsers), the default is "none") and a runtime (where the code will be run).
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ and runtimes we maintain and support.
|
|||||||
We have tens of thousands of tests and a single test may be run across a
|
We have tens of thousands of tests and a single test may be run across a
|
||||||
combinatorial explosion of configurations. Does the static analyzer report any
|
combinatorial explosion of configurations. Does the static analyzer report any
|
||||||
errors on it? In strong mode? Does it run on the standalone VM? Can dart2js
|
errors on it? In strong mode? Does it run on the standalone VM? Can dart2js
|
||||||
compile it? Does the resulting code run in Chrome? Firefox? IE? In checked mode?
|
compile it? Does the resulting code run in Chrome? Firefox? In checked mode?
|
||||||
With minification on? You get the idea.
|
With minification on? You get the idea.
|
||||||
|
|
||||||
Many tests are only meaningful for certain combinations of configurations. A
|
Many tests are only meaningful for certain combinations of configurations. A
|
||||||
|
|||||||
@@ -282,7 +282,6 @@ class Configuration {
|
|||||||
name, architecture, compiler, mode, runtime, system,
|
name, architecture, compiler, mode, runtime, system,
|
||||||
nnbdMode: nnbdMode,
|
nnbdMode: nnbdMode,
|
||||||
sanitizer: sanitizer,
|
sanitizer: sanitizer,
|
||||||
babel: stringOption("babel"),
|
|
||||||
builderTag: stringOption("builder-tag"),
|
builderTag: stringOption("builder-tag"),
|
||||||
genKernelOptions: stringListOption("gen-kernel-options"),
|
genKernelOptions: stringListOption("gen-kernel-options"),
|
||||||
vmOptions: stringListOption("vm-options"),
|
vmOptions: stringListOption("vm-options"),
|
||||||
@@ -329,8 +328,6 @@ class Configuration {
|
|||||||
|
|
||||||
final Sanitizer sanitizer;
|
final Sanitizer sanitizer;
|
||||||
|
|
||||||
final String babel;
|
|
||||||
|
|
||||||
final String builderTag;
|
final String builderTag;
|
||||||
|
|
||||||
final List<String> genKernelOptions;
|
final List<String> genKernelOptions;
|
||||||
@@ -385,7 +382,6 @@ class Configuration {
|
|||||||
this.runtime, this.system,
|
this.runtime, this.system,
|
||||||
{NnbdMode? nnbdMode,
|
{NnbdMode? nnbdMode,
|
||||||
Sanitizer? sanitizer,
|
Sanitizer? sanitizer,
|
||||||
String? babel,
|
|
||||||
String? builderTag,
|
String? builderTag,
|
||||||
List<String>? genKernelOptions,
|
List<String>? genKernelOptions,
|
||||||
List<String>? vmOptions,
|
List<String>? vmOptions,
|
||||||
@@ -408,7 +404,6 @@ class Configuration {
|
|||||||
bool? useQemu})
|
bool? useQemu})
|
||||||
: nnbdMode = nnbdMode ?? NnbdMode.strong,
|
: nnbdMode = nnbdMode ?? NnbdMode.strong,
|
||||||
sanitizer = sanitizer ?? Sanitizer.none,
|
sanitizer = sanitizer ?? Sanitizer.none,
|
||||||
babel = babel ?? "",
|
|
||||||
builderTag = builderTag ?? "",
|
builderTag = builderTag ?? "",
|
||||||
genKernelOptions = genKernelOptions ?? <String>[],
|
genKernelOptions = genKernelOptions ?? <String>[],
|
||||||
vmOptions = vmOptions ?? <String>[],
|
vmOptions = vmOptions ?? <String>[],
|
||||||
@@ -448,7 +443,6 @@ class Configuration {
|
|||||||
this.system, {
|
this.system, {
|
||||||
required this.nnbdMode,
|
required this.nnbdMode,
|
||||||
required this.sanitizer,
|
required this.sanitizer,
|
||||||
required this.babel,
|
|
||||||
required this.builderTag,
|
required this.builderTag,
|
||||||
required this.genKernelOptions,
|
required this.genKernelOptions,
|
||||||
required this.vmOptions,
|
required this.vmOptions,
|
||||||
@@ -486,7 +480,6 @@ class Configuration {
|
|||||||
System.host,
|
System.host,
|
||||||
nnbdMode: source.nnbdMode,
|
nnbdMode: source.nnbdMode,
|
||||||
sanitizer: source.sanitizer,
|
sanitizer: source.sanitizer,
|
||||||
babel: source.babel,
|
|
||||||
builderTag: source.builderTag,
|
builderTag: source.builderTag,
|
||||||
genKernelOptions: source.genKernelOptions,
|
genKernelOptions: source.genKernelOptions,
|
||||||
vmOptions: source.vmOptions,
|
vmOptions: source.vmOptions,
|
||||||
@@ -523,7 +516,6 @@ class Configuration {
|
|||||||
system == other.system &&
|
system == other.system &&
|
||||||
nnbdMode == other.nnbdMode &&
|
nnbdMode == other.nnbdMode &&
|
||||||
sanitizer == other.sanitizer &&
|
sanitizer == other.sanitizer &&
|
||||||
babel == other.babel &&
|
|
||||||
builderTag == other.builderTag &&
|
builderTag == other.builderTag &&
|
||||||
_listsEqual(genKernelOptions, other.genKernelOptions) &&
|
_listsEqual(genKernelOptions, other.genKernelOptions) &&
|
||||||
_listsEqual(vmOptions, other.vmOptions) &&
|
_listsEqual(vmOptions, other.vmOptions) &&
|
||||||
@@ -575,7 +567,6 @@ class Configuration {
|
|||||||
runtime.hashCode ^
|
runtime.hashCode ^
|
||||||
system.hashCode ^
|
system.hashCode ^
|
||||||
nnbdMode.hashCode ^
|
nnbdMode.hashCode ^
|
||||||
babel.hashCode ^
|
|
||||||
builderTag.hashCode ^
|
builderTag.hashCode ^
|
||||||
genKernelOptions.join(" & ").hashCode ^
|
genKernelOptions.join(" & ").hashCode ^
|
||||||
vmOptions.join(" & ").hashCode ^
|
vmOptions.join(" & ").hashCode ^
|
||||||
@@ -619,7 +610,6 @@ class Configuration {
|
|||||||
fields.add("$name: [${field.join(", ")}]");
|
fields.add("$name: [${field.join(", ")}]");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (babel.isNotEmpty) fields.add("babel: $babel");
|
|
||||||
if (builderTag.isNotEmpty) fields.add("builder-tag: $builderTag");
|
if (builderTag.isNotEmpty) fields.add("builder-tag: $builderTag");
|
||||||
stringListField("gen-kernel-options", genKernelOptions);
|
stringListField("gen-kernel-options", genKernelOptions);
|
||||||
stringListField("vm-options", vmOptions);
|
stringListField("vm-options", vmOptions);
|
||||||
@@ -676,7 +666,6 @@ class Configuration {
|
|||||||
|
|
||||||
fields.add("nnbd: $nnbdMode ${other.nnbdMode}");
|
fields.add("nnbd: $nnbdMode ${other.nnbdMode}");
|
||||||
fields.add("sanitizer: $sanitizer ${other.sanitizer}");
|
fields.add("sanitizer: $sanitizer ${other.sanitizer}");
|
||||||
stringField("babel", babel, other.babel);
|
|
||||||
stringField("builder-tag", builderTag, other.builderTag);
|
stringField("builder-tag", builderTag, other.builderTag);
|
||||||
stringListField(
|
stringListField(
|
||||||
"gen-kernel-options", genKernelOptions, other.genKernelOptions);
|
"gen-kernel-options", genKernelOptions, other.genKernelOptions);
|
||||||
@@ -865,9 +854,6 @@ class Compiler extends NamedEnum {
|
|||||||
Runtime.firefox,
|
Runtime.firefox,
|
||||||
Runtime.chrome,
|
Runtime.chrome,
|
||||||
Runtime.safari,
|
Runtime.safari,
|
||||||
Runtime.ie9,
|
|
||||||
Runtime.ie10,
|
|
||||||
Runtime.ie11,
|
|
||||||
Runtime.edge,
|
Runtime.edge,
|
||||||
Runtime.chromeOnAndroid,
|
Runtime.chromeOnAndroid,
|
||||||
];
|
];
|
||||||
@@ -1007,9 +993,6 @@ class Runtime extends NamedEnum {
|
|||||||
static const firefox = Runtime._('firefox');
|
static const firefox = Runtime._('firefox');
|
||||||
static const chrome = Runtime._('chrome');
|
static const chrome = Runtime._('chrome');
|
||||||
static const safari = Runtime._('safari');
|
static const safari = Runtime._('safari');
|
||||||
static const ie9 = Runtime._('ie9');
|
|
||||||
static const ie10 = Runtime._('ie10');
|
|
||||||
static const ie11 = Runtime._('ie11');
|
|
||||||
static const edge = Runtime._('edge');
|
static const edge = Runtime._('edge');
|
||||||
static const chromeOnAndroid = Runtime._('chromeOnAndroid');
|
static const chromeOnAndroid = Runtime._('chromeOnAndroid');
|
||||||
static const none = Runtime._('none');
|
static const none = Runtime._('none');
|
||||||
@@ -1026,9 +1009,6 @@ class Runtime extends NamedEnum {
|
|||||||
firefox,
|
firefox,
|
||||||
chrome,
|
chrome,
|
||||||
safari,
|
safari,
|
||||||
ie9,
|
|
||||||
ie10,
|
|
||||||
ie11,
|
|
||||||
edge,
|
edge,
|
||||||
chromeOnAndroid,
|
chromeOnAndroid,
|
||||||
none
|
none
|
||||||
@@ -1043,27 +1023,14 @@ class Runtime extends NamedEnum {
|
|||||||
|
|
||||||
const Runtime._(super.name);
|
const Runtime._(super.name);
|
||||||
|
|
||||||
bool get isBrowser => const [
|
bool get isBrowser =>
|
||||||
ie9,
|
const [edge, safari, chrome, firefox, chromeOnAndroid].contains(this);
|
||||||
ie10,
|
|
||||||
ie11,
|
|
||||||
edge,
|
|
||||||
safari,
|
|
||||||
chrome,
|
|
||||||
firefox,
|
|
||||||
chromeOnAndroid
|
|
||||||
].contains(this);
|
|
||||||
|
|
||||||
bool get isIE => name.startsWith("ie");
|
|
||||||
|
|
||||||
bool get isSafari => name.startsWith("safari");
|
bool get isSafari => name.startsWith("safari");
|
||||||
|
|
||||||
/// Whether this runtime is a command-line JavaScript environment.
|
/// Whether this runtime is a command-line JavaScript environment.
|
||||||
bool get isJSCommandLine => const [d8, jsc, jsshell].contains(this);
|
bool get isJSCommandLine => const [d8, jsc, jsshell].contains(this);
|
||||||
|
|
||||||
/// If the runtime doesn't support `Window.open`, we use iframes instead.
|
|
||||||
bool get requiresIFrame => !const [ie11, ie10].contains(this);
|
|
||||||
|
|
||||||
/// The preferred compiler to use with this runtime if no other compiler is
|
/// The preferred compiler to use with this runtime if no other compiler is
|
||||||
/// specified.
|
/// specified.
|
||||||
Compiler get defaultCompiler {
|
Compiler get defaultCompiler {
|
||||||
@@ -1080,9 +1047,6 @@ class Runtime extends NamedEnum {
|
|||||||
case firefox:
|
case firefox:
|
||||||
case chrome:
|
case chrome:
|
||||||
case safari:
|
case safari:
|
||||||
case ie9:
|
|
||||||
case ie10:
|
|
||||||
case ie11:
|
|
||||||
case edge:
|
case edge:
|
||||||
case chromeOnAndroid:
|
case chromeOnAndroid:
|
||||||
return Compiler.dart2js;
|
return Compiler.dart2js;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -108,14 +108,15 @@ void testNotBoolean() {
|
|||||||
|
|
||||||
void testNotEqual() {
|
void testNotEqual() {
|
||||||
// Test the != operator.
|
// Test the != operator.
|
||||||
var expression = Expression.parse(r"$compiler == dart2js && $runtime != ie9");
|
var expression =
|
||||||
|
Expression.parse(r"$compiler == dart2js && $runtime != safari");
|
||||||
Expect.equals(
|
Expect.equals(
|
||||||
r"$compiler == dart2js && $runtime != ie9", expression.toString());
|
r"$compiler == dart2js && $runtime != safari", expression.toString());
|
||||||
|
|
||||||
// Test BooleanExpression.evaluate().
|
// Test BooleanExpression.evaluate().
|
||||||
var environment = TestEnvironment({
|
var environment = TestEnvironment({
|
||||||
"compiler": "none",
|
"compiler": "none",
|
||||||
"runtime": "ie9",
|
"runtime": "safari",
|
||||||
});
|
});
|
||||||
|
|
||||||
Expect.isFalse(expression.evaluate(environment));
|
Expect.isFalse(expression.evaluate(environment));
|
||||||
@@ -123,7 +124,7 @@ void testNotEqual() {
|
|||||||
Expect.isFalse(expression.evaluate(environment));
|
Expect.isFalse(expression.evaluate(environment));
|
||||||
|
|
||||||
environment["compiler"] = "dart2js";
|
environment["compiler"] = "dart2js";
|
||||||
environment["runtime"] = "ie9";
|
environment["runtime"] = "safari";
|
||||||
Expect.isFalse(expression.evaluate(environment));
|
Expect.isFalse(expression.evaluate(environment));
|
||||||
environment["runtime"] = "chrome";
|
environment["runtime"] = "chrome";
|
||||||
Expect.isTrue(expression.evaluate(environment));
|
Expect.isTrue(expression.evaluate(environment));
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
|
|
||||||
// for details. All rights reserved. Use of this source code is governed by a
|
|
||||||
// BSD-style license that can be found in the LICENSE file.
|
|
||||||
|
|
||||||
|
|
||||||
const babelStandalonePath = arguments[0];
|
|
||||||
load(babelStandalonePath);
|
|
||||||
const inputFilePath = arguments[2];
|
|
||||||
const input = read(inputFilePath);
|
|
||||||
const options = JSON.parse(arguments[1]);
|
|
||||||
const output = Babel.transform(input, options).code;
|
|
||||||
console.log(output);
|
|
||||||
@@ -81,11 +81,6 @@ abstract class Browser {
|
|||||||
var service = WebDriverService.fromRuntime(Runtime.safari);
|
var service = WebDriverService.fromRuntime(Runtime.safari);
|
||||||
browser = Safari(service.port);
|
browser = Safari(service.port);
|
||||||
break;
|
break;
|
||||||
case Runtime.ie9:
|
|
||||||
case Runtime.ie10:
|
|
||||||
case Runtime.ie11:
|
|
||||||
browser = IE(configuration.browserLocation);
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
throw "unreachable";
|
throw "unreachable";
|
||||||
}
|
}
|
||||||
@@ -98,9 +93,6 @@ abstract class Browser {
|
|||||||
'ff',
|
'ff',
|
||||||
'firefox',
|
'firefox',
|
||||||
'chrome',
|
'chrome',
|
||||||
'ie9',
|
|
||||||
'ie10',
|
|
||||||
'ie11'
|
|
||||||
];
|
];
|
||||||
|
|
||||||
static bool requiresFocus(String browserName) {
|
static bool requiresFocus(String browserName) {
|
||||||
@@ -425,87 +417,6 @@ class Chrome extends Browser {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class IE extends Browser {
|
|
||||||
IE(this._binary);
|
|
||||||
|
|
||||||
final String _binary;
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<String> get version async {
|
|
||||||
var args = [
|
|
||||||
"query",
|
|
||||||
"HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Internet Explorer",
|
|
||||||
"/v",
|
|
||||||
"svcVersion"
|
|
||||||
];
|
|
||||||
final result = await Process.run("reg", args);
|
|
||||||
if (result.exitCode != 0) {
|
|
||||||
throw StateError("Could not get the version of internet explorer");
|
|
||||||
}
|
|
||||||
// The string we get back looks like this:
|
|
||||||
// HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer
|
|
||||||
// version REG_SZ 9.0.8112.16421
|
|
||||||
var findString = "REG_SZ";
|
|
||||||
var index = (result.stdout as String).indexOf(findString);
|
|
||||||
if (index > 0) {
|
|
||||||
return (result.stdout as String)
|
|
||||||
.substring(index + findString.length)
|
|
||||||
.trim();
|
|
||||||
}
|
|
||||||
throw StateError("Could not get the version of internet explorer");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Clears the recovery cache and allows popups on localhost if the static
|
|
||||||
// resetBrowserConfiguration flag is set.
|
|
||||||
Future<bool> resetConfiguration() async {
|
|
||||||
if (!Browser.resetBrowserConfiguration) return true;
|
|
||||||
const ieKey = r"HKCU\Software\Microsoft\Internet Explorer";
|
|
||||||
// Turn off popup blocker
|
|
||||||
await _setRegistryKey("$ieKey\\New Windows", "PopupMgr",
|
|
||||||
data: "0", type: "REG_DWORD");
|
|
||||||
// Allow popups from localhost
|
|
||||||
await _setRegistryKey("$ieKey\\New Windows\\Allow", "127.0.0.1");
|
|
||||||
// Disable IE first run wizard
|
|
||||||
await _setRegistryKey("$ieKey\\Main", "DisableFirstRunCustomize",
|
|
||||||
data: "1", type: "REG_DWORD");
|
|
||||||
|
|
||||||
var localAppData = Platform.environment['LOCALAPPDATA'];
|
|
||||||
var dir = Directory("$localAppData\\Microsoft\\"
|
|
||||||
"Internet Explorer\\Recovery");
|
|
||||||
try {
|
|
||||||
dir.delete(recursive: true);
|
|
||||||
return true;
|
|
||||||
} catch (error) {
|
|
||||||
_logEvent("Deleting recovery dir failed with $error");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<bool> start(String url) async {
|
|
||||||
_logEvent("Starting ie browser on: $url");
|
|
||||||
await resetConfiguration();
|
|
||||||
_logEvent("Got version: ${await version}");
|
|
||||||
return startBrowserProcess(_binary, [url]);
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> _setRegistryKey(String key, String value,
|
|
||||||
{String? data, String? type}) async {
|
|
||||||
var args = <String>[
|
|
||||||
"add",
|
|
||||||
key,
|
|
||||||
"/v",
|
|
||||||
value,
|
|
||||||
"/f",
|
|
||||||
if (type != null) ...["/t", type]
|
|
||||||
];
|
|
||||||
var result = await Process.run("reg", args);
|
|
||||||
if (result.exitCode != 0) {
|
|
||||||
_logEvent("Failed to set '$key' to '$value'");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class AndroidChrome extends Browser {
|
class AndroidChrome extends Browser {
|
||||||
static const String viewAction = 'android.intent.action.VIEW';
|
static const String viewAction = 'android.intent.action.VIEW';
|
||||||
static const String mainAction = 'android.intent.action.MAIN';
|
static const String mainAction = 'android.intent.action.MAIN';
|
||||||
@@ -711,7 +622,6 @@ class BrowserTestOutput {
|
|||||||
class BrowserTestRunner {
|
class BrowserTestRunner {
|
||||||
static const int _maxNextTestTimeouts = 10;
|
static const int _maxNextTestTimeouts = 10;
|
||||||
static const Duration _nextTestTimeout = Duration(seconds: 120);
|
static const Duration _nextTestTimeout = Duration(seconds: 120);
|
||||||
static const Duration _restartBrowserInterval = Duration(seconds: 60);
|
|
||||||
|
|
||||||
/// If the queue was recently empty, don't start another browser.
|
/// If the queue was recently empty, don't start another browser.
|
||||||
static const Duration _minNonemptyQueueTime = Duration(seconds: 1);
|
static const Duration _minNonemptyQueueTime = Duration(seconds: 1);
|
||||||
@@ -950,25 +860,6 @@ class BrowserTestRunner {
|
|||||||
// We are currently terminating this browser, don't start a new test.
|
// We are currently terminating this browser, don't start a new test.
|
||||||
if (status.timeout) return null;
|
if (status.timeout) return null;
|
||||||
|
|
||||||
// Restart Internet Explorer if it has been
|
|
||||||
// running for longer than RESTART_BROWSER_INTERVAL. The tests have
|
|
||||||
// had flaky timeouts, and this may help.
|
|
||||||
if ((configuration.runtime == Runtime.ie10 ||
|
|
||||||
configuration.runtime == Runtime.ie11) &&
|
|
||||||
status.timeSinceRestart.elapsed > _restartBrowserInterval) {
|
|
||||||
var id = status.browser.id;
|
|
||||||
// Reset stopwatch so we don't trigger again before restarting.
|
|
||||||
status.timeout = true;
|
|
||||||
status.browser.close().then((_) {
|
|
||||||
// We don't want to start a new browser if we are terminating.
|
|
||||||
if (underTermination) return;
|
|
||||||
removeBrowser(id);
|
|
||||||
requestBrowser();
|
|
||||||
});
|
|
||||||
// Don't send a test to the browser we are restarting.
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
var test = testQueue.removeLast();
|
var test = testQueue.removeLast();
|
||||||
// If our queue isn't empty, try starting more browsers
|
// If our queue isn't empty, try starting more browsers
|
||||||
if (testQueue.isEmpty) {
|
if (testQueue.isEmpty) {
|
||||||
@@ -1306,7 +1197,6 @@ body div {
|
|||||||
var number_div = document.getElementById('number');
|
var number_div = document.getElementById('number');
|
||||||
var executing_div = document.getElementById('currently_executing');
|
var executing_div = document.getElementById('currently_executing');
|
||||||
var error_div = document.getElementById('unhandled_error');
|
var error_div = document.getElementById('unhandled_error');
|
||||||
var use_iframe = ${configuration.runtime.requiresIFrame};
|
|
||||||
var start = new Date();
|
var start = new Date();
|
||||||
|
|
||||||
function newTaskHandler() {
|
function newTaskHandler() {
|
||||||
@@ -1369,21 +1259,10 @@ body div {
|
|||||||
number_of_tests++;
|
number_of_tests++;
|
||||||
number_div.textContent = number_of_tests;
|
number_div.textContent = number_of_tests;
|
||||||
executing_div.textContent = url;
|
executing_div.textContent = url;
|
||||||
if (use_iframe) {
|
if (typeof testing_window != 'undefined') {
|
||||||
embedded_iframe.onload = null;
|
testing_window.close();
|
||||||
embedded_iframe_div.removeChild(embedded_iframe);
|
|
||||||
embedded_iframe = document.createElement('iframe');
|
|
||||||
embedded_iframe.id = "embedded_iframe";
|
|
||||||
embedded_iframe.width='800px';
|
|
||||||
embedded_iframe.height='600px';
|
|
||||||
embedded_iframe_div.appendChild(embedded_iframe);
|
|
||||||
embedded_iframe.src = url;
|
|
||||||
} else {
|
|
||||||
if (typeof testing_window != 'undefined') {
|
|
||||||
testing_window.close();
|
|
||||||
}
|
|
||||||
testing_window = window.open(url);
|
|
||||||
}
|
}
|
||||||
|
testing_window = window.open(url);
|
||||||
test_started = false;
|
test_started = false;
|
||||||
test_completed = false;
|
test_completed = false;
|
||||||
}
|
}
|
||||||
@@ -1472,9 +1351,7 @@ body div {
|
|||||||
function messageHandler(e) {
|
function messageHandler(e) {
|
||||||
var msg = e.data;
|
var msg = e.data;
|
||||||
if (typeof msg != 'string') return;
|
if (typeof msg != 'string') return;
|
||||||
var expectedSource =
|
if (e.source != testing_window) {
|
||||||
use_iframe ? embedded_iframe.contentWindow : testing_window;
|
|
||||||
if (e.source != expectedSource) {
|
|
||||||
reportError("Message received from old test window: " + msg);
|
reportError("Message received from old test window: " + msg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -472,17 +472,11 @@ class Dart2jsCompilerConfiguration extends CompilerConfiguration {
|
|||||||
var inputFile = arguments.last;
|
var inputFile = arguments.last;
|
||||||
var inputFilename = Uri.file(inputFile).pathSegments.last;
|
var inputFilename = Uri.file(inputFile).pathSegments.last;
|
||||||
var out = "$tempDir/${inputFilename.replaceAll('.dart', '.js')}";
|
var out = "$tempDir/${inputFilename.replaceAll('.dart', '.js')}";
|
||||||
var babel = _configuration.babel;
|
|
||||||
var babelOut = out;
|
|
||||||
if (babel.isNotEmpty) {
|
|
||||||
out = out.replaceAll('.js', '.raw.js');
|
|
||||||
}
|
|
||||||
var commands = [
|
var commands = [
|
||||||
computeCompilationCommand(out, compilerArguments, environmentOverrides),
|
computeCompilationCommand(out, compilerArguments, environmentOverrides),
|
||||||
if (babel.isNotEmpty) computeBabelCommand(out, babelOut, babel)
|
|
||||||
];
|
];
|
||||||
|
|
||||||
return CommandArtifact(commands, babelOut, 'application/javascript');
|
return CommandArtifact(commands, out, 'application/javascript');
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -499,22 +493,6 @@ class Dart2jsCompilerConfiguration extends CompilerConfiguration {
|
|||||||
return runtimeConfiguration.dart2jsPreambles(preambleDir)
|
return runtimeConfiguration.dart2jsPreambles(preambleDir)
|
||||||
..add(artifact!.filename);
|
..add(artifact!.filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
Command computeBabelCommand(String input, String output, String options) {
|
|
||||||
var uri = Repository.uri;
|
|
||||||
var babelTransform =
|
|
||||||
uri.resolve('pkg/test_runner/lib/src/babel_transform.js').toFilePath();
|
|
||||||
var babelStandalone =
|
|
||||||
uri.resolve('third_party/babel/babel.min.js').toFilePath();
|
|
||||||
return CompilationCommand(
|
|
||||||
'babel',
|
|
||||||
output,
|
|
||||||
[],
|
|
||||||
_configuration.runtimeConfiguration.d8FileName,
|
|
||||||
[babelTransform, "--", babelStandalone, options, input],
|
|
||||||
{},
|
|
||||||
alwaysCompile: true); // TODO(athom): ensure dependency tracking works.
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Common configuration for dart2wasm-based tools, such as dart2wasm.
|
/// Common configuration for dart2wasm-based tools, such as dart2wasm.
|
||||||
|
|||||||
@@ -183,7 +183,6 @@ class TestConfiguration {
|
|||||||
final String? serviceResponseSizesDirectory;
|
final String? serviceResponseSizesDirectory;
|
||||||
final String outputDirectory;
|
final String outputDirectory;
|
||||||
final String? suiteDirectory;
|
final String? suiteDirectory;
|
||||||
String get babel => configuration.babel;
|
|
||||||
String get builderTag => configuration.builderTag;
|
String get builderTag => configuration.builderTag;
|
||||||
final List<String> reproducingArguments;
|
final List<String> reproducingArguments;
|
||||||
|
|
||||||
@@ -386,15 +385,6 @@ class TestConfiguration {
|
|||||||
'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
|
'/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
|
||||||
System.linux: '/usr/bin/google-chrome'
|
System.linux: '/usr/bin/google-chrome'
|
||||||
},
|
},
|
||||||
Runtime.ie9: {
|
|
||||||
System.win: 'C:\\Program Files\\Internet Explorer\\iexplore.exe'
|
|
||||||
},
|
|
||||||
Runtime.ie10: {
|
|
||||||
System.win: 'C:\\Program Files\\Internet Explorer\\iexplore.exe'
|
|
||||||
},
|
|
||||||
Runtime.ie11: {
|
|
||||||
System.win: 'C:\\Program Files\\Internet Explorer\\iexplore.exe'
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
location = locations[runtime]![System.find(Platform.operatingSystem)];
|
location = locations[runtime]![System.find(Platform.operatingSystem)];
|
||||||
@@ -467,15 +457,6 @@ class TestConfiguration {
|
|||||||
isValid = false;
|
isValid = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (runtime.isIE &&
|
|
||||||
Platform.operatingSystem != 'windows' &&
|
|
||||||
!listStatusFiles &&
|
|
||||||
!listTests) {
|
|
||||||
print("Warning: cannot run Internet Explorer on non-Windows operating"
|
|
||||||
" system.");
|
|
||||||
isValid = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (architecture == Architecture.ia32 && compiler == Compiler.dartkp) {
|
if (architecture == Architecture.ia32 && compiler == Compiler.dartkp) {
|
||||||
print("Warning: IA32 does not support AOT mode.");
|
print("Warning: IA32 does not support AOT mode.");
|
||||||
isValid = false;
|
isValid = false;
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ final _variables = {
|
|||||||
"host_asserts": _Variable.bool((c) => c.enableHostAsserts),
|
"host_asserts": _Variable.bool((c) => c.enableHostAsserts),
|
||||||
"hot_reload": _Variable.bool((c) => c.hotReload),
|
"hot_reload": _Variable.bool((c) => c.hotReload),
|
||||||
"hot_reload_rollback": _Variable.bool((c) => c.hotReloadRollback),
|
"hot_reload_rollback": _Variable.bool((c) => c.hotReloadRollback),
|
||||||
"ie": _Variable.bool((c) => c.runtime.isIE),
|
|
||||||
"jscl": _Variable.bool((c) => c.runtime.isJSCommandLine),
|
"jscl": _Variable.bool((c) => c.runtime.isJSCommandLine),
|
||||||
"minified": _Variable.bool((c) => c.isMinified),
|
"minified": _Variable.bool((c) => c.isMinified),
|
||||||
"mode": _Variable((c) => c.mode.name, Mode.names),
|
"mode": _Variable((c) => c.mode.name, Mode.names),
|
||||||
|
|||||||
@@ -95,9 +95,6 @@ jsshell: Run JavaScript from the command line using Firefox's js-shell.
|
|||||||
firefox:
|
firefox:
|
||||||
chrome:
|
chrome:
|
||||||
safari:
|
safari:
|
||||||
ie9:
|
|
||||||
ie10:
|
|
||||||
ie11:
|
|
||||||
chromeOnAndroid: Run JavaScript in the specified browser.
|
chromeOnAndroid: Run JavaScript in the specified browser.
|
||||||
|
|
||||||
none: No runtime, compile only.''')
|
none: No runtime, compile only.''')
|
||||||
@@ -348,10 +345,6 @@ options. Used to be able to make sane updates to the status files.''',
|
|||||||
..addMultiOption('enable-experiment',
|
..addMultiOption('enable-experiment',
|
||||||
aliases: ['experiments', 'enable_experiment'],
|
aliases: ['experiments', 'enable_experiment'],
|
||||||
help: 'Experiment flags to enable.')
|
help: 'Experiment flags to enable.')
|
||||||
..addOption('babel',
|
|
||||||
help: '''Transforms dart2js output with Babel. The value must be
|
|
||||||
Babel options JSON.''',
|
|
||||||
hide: true)
|
|
||||||
..addFlag('default-suites',
|
..addFlag('default-suites',
|
||||||
hide: true,
|
hide: true,
|
||||||
help: 'Include the default suites in addition to the requested suites.')
|
help: 'Include the default suites in addition to the requested suites.')
|
||||||
@@ -434,7 +427,6 @@ has been specified on the command line.''')
|
|||||||
'vm-options',
|
'vm-options',
|
||||||
'dart2js-options',
|
'dart2js-options',
|
||||||
'enable-experiment',
|
'enable-experiment',
|
||||||
'babel',
|
|
||||||
'builder-tag',
|
'builder-tag',
|
||||||
'use-qemu'
|
'use-qemu'
|
||||||
};
|
};
|
||||||
@@ -808,7 +800,6 @@ has been specified on the command line.''')
|
|||||||
dart2jsOptions: dart2jsOptions,
|
dart2jsOptions: dart2jsOptions,
|
||||||
ddcOptions: ddcOptions,
|
ddcOptions: ddcOptions,
|
||||||
experiments: experiments,
|
experiments: experiments,
|
||||||
babel: data['babel'] as String?,
|
|
||||||
builderTag: data["builder-tag"] as String?,
|
builderTag: data["builder-tag"] as String?,
|
||||||
useQemu: data["use-qemu"] as bool);
|
useQemu: data["use-qemu"] as bool);
|
||||||
addConfiguration(configuration);
|
addConfiguration(configuration);
|
||||||
|
|||||||
@@ -577,12 +577,6 @@ class CommandExecutorImpl implements CommandExecutor {
|
|||||||
adbDevicePool!.releaseDevice(device);
|
adbDevicePool!.releaseDevice(device);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (command is CompilationCommand &&
|
|
||||||
command.displayName == 'babel') {
|
|
||||||
return RunningProcess(command, timeout,
|
|
||||||
configuration: globalConfiguration,
|
|
||||||
outputFile: io.File(command.outputFile))
|
|
||||||
.run();
|
|
||||||
} else if (command is ProcessCommand) {
|
} else if (command is ProcessCommand) {
|
||||||
return RunningProcess(command, timeout,
|
return RunningProcess(command, timeout,
|
||||||
configuration: globalConfiguration)
|
configuration: globalConfiguration)
|
||||||
|
|||||||
@@ -24,9 +24,6 @@ abstract class RuntimeConfiguration {
|
|||||||
case Runtime.chrome:
|
case Runtime.chrome:
|
||||||
case Runtime.chromeOnAndroid:
|
case Runtime.chromeOnAndroid:
|
||||||
case Runtime.firefox:
|
case Runtime.firefox:
|
||||||
case Runtime.ie11:
|
|
||||||
case Runtime.ie10:
|
|
||||||
case Runtime.ie9:
|
|
||||||
case Runtime.safari:
|
case Runtime.safari:
|
||||||
// TODO(ahe): Replace this with one or more browser runtimes.
|
// TODO(ahe): Replace this with one or more browser runtimes.
|
||||||
return DummyRuntimeConfiguration();
|
return DummyRuntimeConfiguration();
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ final _combinations = {
|
|||||||
'compiler': 'none'
|
'compiler': 'none'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'runtimes': ['chrome', 'ff', 'ie11', 'ie10'],
|
'runtimes': ['chrome', 'ff'],
|
||||||
'modes': ['release'],
|
'modes': ['release'],
|
||||||
'archs': ['ia32'],
|
'archs': ['ia32'],
|
||||||
'compiler': 'dart2js'
|
'compiler': 'dart2js'
|
||||||
|
|||||||
@@ -106,15 +106,7 @@ Future testConfigurations(List<TestConfiguration> configurations) async {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (configuration.runtime.isIE) {
|
if (configuration.runtime.isSafari) {
|
||||||
// NOTE: We've experienced random timeouts of tests on ie9/ie10. The
|
|
||||||
// underlying issue has not been determined yet. Our current hypothesis
|
|
||||||
// is that windows does not handle the IE processes independently.
|
|
||||||
// If we have more than one browser and kill a browser we are seeing
|
|
||||||
// issues with starting up a new browser just after killing the hanging
|
|
||||||
// browser.
|
|
||||||
maxBrowserProcesses = 1;
|
|
||||||
} else if (configuration.runtime.isSafari) {
|
|
||||||
// Safari does not allow us to run from a fresh profile, so we can only
|
// Safari does not allow us to run from a fresh profile, so we can only
|
||||||
// use one browser. Additionally, you can not start two simulators
|
// use one browser. Additionally, you can not start two simulators
|
||||||
// for mobile safari simultaneously.
|
// for mobile safari simultaneously.
|
||||||
|
|||||||
@@ -341,8 +341,6 @@ class TestingServers {
|
|||||||
// Allow loading from http://*:$allowedPort in browsers.
|
// Allow loading from http://*:$allowedPort in browsers.
|
||||||
allowedOrigin = '${origin.scheme}://${origin.host}:$allowedPort';
|
allowedOrigin = '${origin.scheme}://${origin.host}:$allowedPort';
|
||||||
} else {
|
} else {
|
||||||
// IE10 appears to be bugged and is not sending the Origin header
|
|
||||||
// when making CORS requests to the same domain but different port.
|
|
||||||
allowedOrigin = '*';
|
allowedOrigin = '*';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -355,8 +353,8 @@ class TestingServers {
|
|||||||
}
|
}
|
||||||
if (useContentSecurityPolicy) {
|
if (useContentSecurityPolicy) {
|
||||||
// Chrome respects the standardized Content-Security-Policy header,
|
// Chrome respects the standardized Content-Security-Policy header,
|
||||||
// whereas Firefox and IE10 use X-Content-Security-Policy. Safari
|
// whereas Firefox uses X-Content-Security-Policy. Safari still uses the
|
||||||
// still uses the WebKit- prefixed version.
|
// WebKit- prefixed version.
|
||||||
var contentHeaderValue = [
|
var contentHeaderValue = [
|
||||||
"script-src 'self'",
|
"script-src 'self'",
|
||||||
"object-src 'self'",
|
"object-src 'self'",
|
||||||
|
|||||||
@@ -11,5 +11,5 @@
|
|||||||
# custom elements are not supported on old browsers, we don't
|
# custom elements are not supported on old browsers, we don't
|
||||||
# intend for observatory to work on old browser versions, so
|
# intend for observatory to work on old browser versions, so
|
||||||
# skipping.
|
# skipping.
|
||||||
[ $runtime == ff || $runtime == ie10 || $runtime == ie11 || $runtime == safari ]
|
[ $runtime == ff || $runtime == safari ]
|
||||||
*: SkipByDesign
|
*: SkipByDesign
|
||||||
|
|||||||
@@ -163,17 +163,6 @@ LibTest/html/IFrameElement/onTouchLeave_A01_t01: SkipByDesign # TouchEvent const
|
|||||||
LibTest/html/IFrameElement/onTouchMove_A01_t01: SkipByDesign # TouchEvent constructor not exposed in FF
|
LibTest/html/IFrameElement/onTouchMove_A01_t01: SkipByDesign # TouchEvent constructor not exposed in FF
|
||||||
LibTest/html/IFrameElement/onTouchStart_A01_t01: SkipByDesign # TouchEvent constructor not exposed in FF
|
LibTest/html/IFrameElement/onTouchStart_A01_t01: SkipByDesign # TouchEvent constructor not exposed in FF
|
||||||
|
|
||||||
[ $compiler == dart2js && $runtime == ie11 ]
|
|
||||||
LibTest/collection/ListBase/ListBase_class_A01_t04: SkipSlow # slow babeljs transformation
|
|
||||||
LibTest/collection/ListBase/ListBase_class_A01_t05: SkipSlow # slow babeljs transformation
|
|
||||||
LibTest/collection/ListBase/ListBase_class_A01_t06: SkipSlow # slow babeljs transformation
|
|
||||||
LibTest/collection/ListMixin/ListMixin_class_A01_t04: SkipSlow # slow babeljs transformation
|
|
||||||
LibTest/collection/ListMixin/ListMixin_class_A01_t05: SkipSlow # slow babeljs transformation
|
|
||||||
LibTest/collection/ListMixin/ListMixin_class_A01_t06: SkipSlow # slow babeljs transformation
|
|
||||||
LibTest/core/List/List_class_A01_t04: SkipSlow # slow babeljs transformation
|
|
||||||
LibTest/core/List/List_class_A01_t05: SkipSlow # slow babeljs transformation
|
|
||||||
LibTest/core/List/List_class_A01_t06: SkipSlow # slow babeljs transformation
|
|
||||||
|
|
||||||
[ $compiler == dart2js && $runtime == safari ]
|
[ $compiler == dart2js && $runtime == safari ]
|
||||||
LibTest/html/Element/isContentEditable_A01_t01: Skip # 98% fails in Safari, evades flake detection https://github.com/dart-lang/sdk/issues/50718
|
LibTest/html/Element/isContentEditable_A01_t01: Skip # 98% fails in Safari, evades flake detection https://github.com/dart-lang/sdk/issues/50718
|
||||||
LibTest/html/Element/isContentEditable_A02_t01: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718
|
LibTest/html/Element/isContentEditable_A02_t01: Skip # evades flake detection https://github.com/dart-lang/sdk/issues/50718
|
||||||
|
|||||||
@@ -36,10 +36,6 @@ isolate/package_config_getter_test: SkipByDesign # AOT mode doesn't preserve pac
|
|||||||
convert/streamed_conversion_utf8_decode_test: Slow, Pass # Issue 12029
|
convert/streamed_conversion_utf8_decode_test: Slow, Pass # Issue 12029
|
||||||
mirrors/mirrors_reader_test: Slow, Pass # Issue 16589
|
mirrors/mirrors_reader_test: Slow, Pass # Issue 16589
|
||||||
|
|
||||||
[ $runtime == ie11 ]
|
|
||||||
html/request_animation_frame_test: Skip # Times out. Issue 22167
|
|
||||||
html/transition_event_test: Skip # Times out. Issue 22167
|
|
||||||
|
|
||||||
[ $runtime == safari ]
|
[ $runtime == safari ]
|
||||||
html/indexeddb_1_test/functional: Skip # Times out. Issue 21433
|
html/indexeddb_1_test/functional: Skip # Times out. Issue 21433
|
||||||
html/indexeddb_3_test: Skip # Times out 1 out of 10.
|
html/indexeddb_3_test: Skip # Times out 1 out of 10.
|
||||||
|
|||||||
@@ -346,12 +346,6 @@
|
|||||||
"use-sdk": true
|
"use-sdk": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dart2js-win-ie11": {
|
|
||||||
"options": {
|
|
||||||
"babel": "{\"presets\":[\"es2015\"]}",
|
|
||||||
"use-sdk": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"dart2js-win-edge": {
|
"dart2js-win-edge": {
|
||||||
"options": {
|
"options": {
|
||||||
"use-sdk": true
|
"use-sdk": true
|
||||||
|
|||||||
Reference in New Issue
Block a user