mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 15:21:54 +00:00
Delete old tests that aren't used and/or useful any more.
R=efortuna@google.com Review-Url: https://codereview.chromium.org/2976313002 .
This commit is contained in:
parent
7365a24d98
commit
1d8c3af663
|
@ -10,15 +10,13 @@
|
||||||
|
|
||||||
"uris": [
|
"uris": [
|
||||||
".",
|
".",
|
||||||
"../../tests/compiler/dart2js/",
|
"../../tests/compiler/dart2js/"
|
||||||
"../../tests/utils/"
|
|
||||||
],
|
],
|
||||||
|
|
||||||
"exclude": [
|
"exclude": [
|
||||||
"^tests/compiler/dart2js/data/.*",
|
"^tests/compiler/dart2js/data/.*",
|
||||||
"^tests/compiler/dart2js/path with spaces/.*",
|
"^tests/compiler/dart2js/path with spaces/.*",
|
||||||
"^tests/compiler/dart2js/sourcemaps/data/.*",
|
"^tests/compiler/dart2js/sourcemaps/data/.*"
|
||||||
"^tests/utils/dummy\\.dart"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
# Copyright (c) 2013, 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.
|
|
||||||
|
|
||||||
[ $runtime == vm ]
|
|
||||||
# Not supported on the VM
|
|
||||||
*: Skip
|
|
||||||
|
|
||||||
[ $compiler == none]
|
|
||||||
# Not supported on Dartium right now
|
|
||||||
*: Skip
|
|
|
@ -1,24 +0,0 @@
|
||||||
// Copyright (c) 2013, 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.
|
|
||||||
|
|
||||||
library sample_test;
|
|
||||||
|
|
||||||
import 'package:unittest/unittest.dart';
|
|
||||||
import 'package:unittest/html_config.dart';
|
|
||||||
import 'dart:_chrome' as _chrome;
|
|
||||||
|
|
||||||
main() {
|
|
||||||
useHtmlConfiguration();
|
|
||||||
test('access', () {
|
|
||||||
var window = _chrome.app.window;
|
|
||||||
expect(window is _chrome.WindowModule, true);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('fails from browser', () {
|
|
||||||
// APIs should not work in standard browser apps.
|
|
||||||
expect(() {
|
|
||||||
_chrome.app.window.create('IntentionallyMissingFile.html');
|
|
||||||
}, throws);
|
|
||||||
});
|
|
||||||
}
|
|
|
@ -1,203 +0,0 @@
|
||||||
// Copyright (c) 2011, 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.
|
|
||||||
|
|
||||||
part of benchmark_lib;
|
|
||||||
|
|
||||||
/** Accessors for our Singleton variables. */
|
|
||||||
BenchmarkSuite get BENCHMARK_SUITE {
|
|
||||||
if (BenchmarkSuite._ONLY == null) {
|
|
||||||
BenchmarkSuite._ONLY = new BenchmarkSuite._internal();
|
|
||||||
}
|
|
||||||
return BenchmarkSuite._ONLY;
|
|
||||||
}
|
|
||||||
|
|
||||||
BenchmarkView get BENCHMARK_VIEW {
|
|
||||||
if (BenchmarkView._ONLY == null) {
|
|
||||||
BenchmarkView._ONLY = new BenchmarkView._internal();
|
|
||||||
}
|
|
||||||
return BenchmarkView._ONLY;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The superclass from which all benchmarks inherit from. */
|
|
||||||
class BenchmarkBase {
|
|
||||||
/** Benchmark name. */
|
|
||||||
final String name;
|
|
||||||
|
|
||||||
const BenchmarkBase(String name) : this.name = name;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The benchmark code.
|
|
||||||
* This function is not used, if both [warmup] and [exercise] are overwritten.
|
|
||||||
*/
|
|
||||||
void run() {}
|
|
||||||
|
|
||||||
/** Runs a short version of the benchmark. By default invokes [run] once. */
|
|
||||||
void warmup() {
|
|
||||||
run();
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Exercises the benchmark. By default invokes [run] 10 times. */
|
|
||||||
void exercise() {
|
|
||||||
for (int i = 0; i < 10; i++) {
|
|
||||||
run();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Not measured setup code executed prior to the benchmark runs. */
|
|
||||||
void setup() {}
|
|
||||||
|
|
||||||
/** Not measures teardown code executed after the benchmark runs. */
|
|
||||||
void teardown() {}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Measures the score for this benchmark by executing it repeately until
|
|
||||||
* time minimum has been reached.
|
|
||||||
*/
|
|
||||||
static double measureFor(Function f, int timeMinimum) {
|
|
||||||
int time = 0;
|
|
||||||
int iter = 0;
|
|
||||||
Stopwatch watch = new Stopwatch();
|
|
||||||
watch.start();
|
|
||||||
int elapsed = 0;
|
|
||||||
while (elapsed < timeMinimum || iter < 32) {
|
|
||||||
f();
|
|
||||||
elapsed = watch.elapsedMilliseconds;
|
|
||||||
iter++;
|
|
||||||
}
|
|
||||||
return (1000.0 * iter) / elapsed;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Measures the score for the benchmark and returns it.
|
|
||||||
* We measure iterations / sec (so bigger = better!).
|
|
||||||
*/
|
|
||||||
double measure() {
|
|
||||||
setup();
|
|
||||||
// Warmup for at least 1000ms. Discard result.
|
|
||||||
measureFor(() {
|
|
||||||
this.warmup();
|
|
||||||
}, 1000);
|
|
||||||
// Run the benchmark for at least 1000ms.
|
|
||||||
double result = measureFor(() {
|
|
||||||
this.exercise();
|
|
||||||
}, 1000);
|
|
||||||
teardown();
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void report() {
|
|
||||||
num score = measure();
|
|
||||||
Map<String, int> normalizingDict = {'Smoketest': 100};
|
|
||||||
score = score / normalizingDict[name];
|
|
||||||
BENCHMARK_SUITE.updateIndividualScore(name, score);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** The controller class that runs all of the benchmarks. */
|
|
||||||
class BenchmarkSuite {
|
|
||||||
/** The set of benchmarks that have yet to run. */
|
|
||||||
List<Function> benchmarks;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The set of scores from the benchmarks that have already run. (Used for
|
|
||||||
* calculating the Geometric mean).
|
|
||||||
*/
|
|
||||||
List<num> scores;
|
|
||||||
|
|
||||||
/** The total number of benchmarks we will be running. */
|
|
||||||
int totalBenchmarks;
|
|
||||||
|
|
||||||
/** Singleton pattern: There's only one BenchmarkSuite. */
|
|
||||||
static BenchmarkSuite _ONLY = null;
|
|
||||||
|
|
||||||
BenchmarkSuite._internal() {
|
|
||||||
scores = [];
|
|
||||||
benchmarks = [() => Smoketest.main()];
|
|
||||||
totalBenchmarks = benchmarks.length;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Run all of the benchmarks that we have in our benchmarks list. */
|
|
||||||
runBenchmarks() {
|
|
||||||
runBenchmarksHelper(benchmarks);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Run the remaining benchmarks in our list. We chain the calls providing
|
|
||||||
* little breaks for the main page to gain control, so we don't force the
|
|
||||||
* entire page to hang the whole time.
|
|
||||||
*/
|
|
||||||
runBenchmarksHelper(List<Function> remainingBenchmarks) {
|
|
||||||
// Remove the last benchmark, and run it.
|
|
||||||
var benchmark = remainingBenchmarks.removeLast();
|
|
||||||
benchmark();
|
|
||||||
if (remainingBenchmarks.length > 0) {
|
|
||||||
/* Provide small breaks between each benchmark, so that the browser
|
|
||||||
doesn't get unhappy about long running scripts, and so the user
|
|
||||||
can regain control of the UI to kill the page as needed. */
|
|
||||||
new Timer(const Duration(milliseconds: 25),
|
|
||||||
() => runBenchmarksHelper(remainingBenchmarks));
|
|
||||||
} else if (remainingBenchmarks.length == 0) {
|
|
||||||
// We've run all of the benchmarks. Update the page with the score.
|
|
||||||
BENCHMARK_VIEW.setScore(geometricMean(scores));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Store the results of a single benchmark run. */
|
|
||||||
updateIndividualScore(String name, num score) {
|
|
||||||
scores.add(score);
|
|
||||||
BENCHMARK_VIEW.incrementProgress(name, score, totalBenchmarks);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Computes the geometric mean of a set of numbers. */
|
|
||||||
geometricMean(numbers) {
|
|
||||||
num log = 0;
|
|
||||||
for (num n in numbers) {
|
|
||||||
log += Math.log(n);
|
|
||||||
}
|
|
||||||
return Math.pow(Math.E, log / numbers.length);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Controls how results are displayed to the user, by updating the HTML. */
|
|
||||||
class BenchmarkView {
|
|
||||||
/** The number of benchmarks that have finished executing. */
|
|
||||||
int numCompleted = 0;
|
|
||||||
|
|
||||||
/** Singleton pattern: There's only one BenchmarkSuite. */
|
|
||||||
static BenchmarkView _ONLY = null;
|
|
||||||
|
|
||||||
BenchmarkView._internal();
|
|
||||||
|
|
||||||
/** Update the page HTML to show the calculated score. */
|
|
||||||
setScore(num score) {
|
|
||||||
String newScore = formatScore(score * 100.0);
|
|
||||||
Element body = document.queryAll("body")[0];
|
|
||||||
body.nodes
|
|
||||||
.add(new Element.html("<p id='testResultScore'>Score: $newScore</p>"));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the page HTML to show how much progress we've made through the
|
|
||||||
* benchmarks.
|
|
||||||
*/
|
|
||||||
incrementProgress(String name, num score, num totalBenchmarks) {
|
|
||||||
String newScore = formatScore(score * 100.0);
|
|
||||||
numCompleted++;
|
|
||||||
// Slightly incorrect (truncating) percentage, but this is just to show
|
|
||||||
// the user we're making progress.
|
|
||||||
num percentage = 100 * numCompleted ~/ totalBenchmarks;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Rounds the score to have at least three significant digits (hopefully)
|
|
||||||
* helping readability of the scores.
|
|
||||||
*/
|
|
||||||
String formatScore(num value) {
|
|
||||||
if (value > 100) {
|
|
||||||
return value.toStringAsFixed(0);
|
|
||||||
} else {
|
|
||||||
return value.toStringAsFixed(2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
// Copyright (c) 2012, 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.
|
|
||||||
|
|
||||||
library benchmark_lib;
|
|
||||||
|
|
||||||
import 'dart:async';
|
|
||||||
import 'dart:html';
|
|
||||||
import 'dart:math' as Math;
|
|
||||||
|
|
||||||
import 'smoketest_lib.dart';
|
|
||||||
part 'benchmark_base.dart';
|
|
|
@ -1,12 +0,0 @@
|
||||||
# Copyright (c) 2011, 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.
|
|
||||||
|
|
||||||
[ $runtime == vm || $runtime == dart_precompiled ]
|
|
||||||
*: Skip
|
|
||||||
|
|
||||||
[ $compiler == dart2js && $runtime == none ]
|
|
||||||
*: Fail, Pass # TODO(ahe): Triage these tests.
|
|
||||||
|
|
||||||
[ $compiler == dart2analyzer && $builder_tag == strong ]
|
|
||||||
*: Skip # Issue 28649
|
|
|
@ -1,29 +0,0 @@
|
||||||
// Copyright (c) 2011, 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.
|
|
||||||
|
|
||||||
library benchmarksmoketest;
|
|
||||||
|
|
||||||
// Tests that benchmark classes used in perf testing are not broken.
|
|
||||||
import 'benchmark_lib.dart';
|
|
||||||
import 'dart:async';
|
|
||||||
import 'dart:html';
|
|
||||||
import 'package:expect/expect.dart';
|
|
||||||
import 'package:unittest/unittest.dart';
|
|
||||||
import 'package:unittest/html_config.dart';
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
useHtmlConfiguration();
|
|
||||||
|
|
||||||
test('performanceTesting', () {
|
|
||||||
Timer.run(BENCHMARK_SUITE.runBenchmarks);
|
|
||||||
Timer.run(expectAsync(testForCompletion));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
testForCompletion() {
|
|
||||||
Element element = document.query('#testResultScore');
|
|
||||||
RegExp re = new RegExp('Score: [0-9]+');
|
|
||||||
print(element.text);
|
|
||||||
Expect.isTrue(re.hasMatch(element.text));
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
// Copyright (c) 2011, 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.
|
|
||||||
|
|
||||||
library smoketest_lib;
|
|
||||||
|
|
||||||
import 'benchmark_lib.dart';
|
|
||||||
import 'dart:html';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is a sample no-op benchmark to ensure that dart2js has not dramatically
|
|
||||||
* broken Firefox.
|
|
||||||
*/
|
|
||||||
class Smoketest extends BenchmarkBase {
|
|
||||||
const Smoketest() : super("Smoketest");
|
|
||||||
|
|
||||||
void run() {}
|
|
||||||
|
|
||||||
static void main() {
|
|
||||||
new Smoketest().report();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void log(String str) {
|
|
||||||
print(str);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -5,18 +5,19 @@
|
||||||
// Smoke test of the dart2js compiler API.
|
// Smoke test of the dart2js compiler API.
|
||||||
library analyze_only;
|
library analyze_only;
|
||||||
|
|
||||||
import "package:expect/expect.dart";
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import "package:async_helper/async_helper.dart";
|
|
||||||
|
|
||||||
import '../../utils/dummy_compiler_test.dart' as dummy;
|
import 'package:async_helper/async_helper.dart';
|
||||||
|
import 'package:expect/expect.dart';
|
||||||
|
|
||||||
import 'package:compiler/compiler_new.dart';
|
import 'package:compiler/compiler_new.dart';
|
||||||
import 'package:compiler/src/options.dart';
|
|
||||||
import 'package:compiler/src/commandline_options.dart';
|
import 'package:compiler/src/commandline_options.dart';
|
||||||
import 'package:compiler/src/diagnostics/messages.dart'
|
import 'package:compiler/src/diagnostics/messages.dart'
|
||||||
show MessageKind, MessageTemplate;
|
show MessageKind, MessageTemplate;
|
||||||
import 'package:compiler/src/old_to_new_api.dart';
|
import 'package:compiler/src/old_to_new_api.dart';
|
||||||
|
import 'package:compiler/src/options.dart';
|
||||||
|
|
||||||
|
import 'dummy_compiler_test.dart' as dummy;
|
||||||
import 'output_collector.dart';
|
import 'output_collector.dart';
|
||||||
|
|
||||||
runCompiler(String main, List<String> options,
|
runCompiler(String main, List<String> options,
|
||||||
|
|
|
@ -6,11 +6,11 @@
|
||||||
library dummy_compiler;
|
library dummy_compiler;
|
||||||
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import "package:async_helper/async_helper.dart";
|
|
||||||
|
|
||||||
|
import 'package:async_helper/async_helper.dart';
|
||||||
import 'package:compiler/compiler.dart';
|
import 'package:compiler/compiler.dart';
|
||||||
|
|
||||||
import '../compiler/dart2js/mock_libraries.dart';
|
import 'mock_libraries.dart';
|
||||||
|
|
||||||
String libProvider(Uri uri) {
|
String libProvider(Uri uri) {
|
||||||
if (uri.path.endsWith(".platform")) {
|
if (uri.path.endsWith(".platform")) {
|
|
@ -4,12 +4,14 @@
|
||||||
|
|
||||||
// Test of "recursive" imports using the dart2js compiler API.
|
// Test of "recursive" imports using the dart2js compiler API.
|
||||||
|
|
||||||
import "package:expect/expect.dart";
|
|
||||||
import "package:async_helper/async_helper.dart";
|
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'dummy_compiler_test.dart';
|
|
||||||
|
import 'package:expect/expect.dart';
|
||||||
|
import 'package:async_helper/async_helper.dart';
|
||||||
import 'package:compiler/compiler.dart';
|
import 'package:compiler/compiler.dart';
|
||||||
|
|
||||||
|
import 'dummy_compiler_test.dart';
|
||||||
|
|
||||||
const String RECURSIVE_MAIN = """
|
const String RECURSIVE_MAIN = """
|
||||||
library fisk;
|
library fisk;
|
||||||
import 'recurse/fisk.dart';
|
import 'recurse/fisk.dart';
|
|
@ -1,17 +0,0 @@
|
||||||
# Copyright (c) 2017, 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.
|
|
||||||
|
|
||||||
analyzer:
|
|
||||||
strong-mode: true
|
|
||||||
|
|
||||||
language:
|
|
||||||
enableSuperMixins: false
|
|
||||||
|
|
||||||
errors:
|
|
||||||
todo: ignore
|
|
||||||
|
|
||||||
deprecated_member_use: ignore
|
|
||||||
|
|
||||||
exclude:
|
|
||||||
- dummy.dart
|
|
|
@ -1,12 +0,0 @@
|
||||||
// Copyright (c) 2012, 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.
|
|
||||||
|
|
||||||
// Test to ensure that dart2js is free of warnings.
|
|
||||||
|
|
||||||
// ignore: UNUSED_IMPORT
|
|
||||||
import 'package:compiler/src/dart2js.dart' as dart2js;
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
// Do nothing.
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
// Copyright (c) 2011, 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.
|
|
||||||
|
|
||||||
// A dummy library for testing dartdoc name references.
|
|
||||||
library dummy;
|
|
||||||
|
|
||||||
topLevelMethod() => null;
|
|
||||||
|
|
||||||
class Class {
|
|
||||||
Class() => null;
|
|
||||||
Class.namedConstructor() => null;
|
|
||||||
method(param) => null;
|
|
||||||
get getterOnly => null;
|
|
||||||
get getterAndSetter => null;
|
|
||||||
set getterAndSetter(val) => null;
|
|
||||||
set setterOnly(val) => null;
|
|
||||||
}
|
|
|
@ -1,53 +0,0 @@
|
||||||
// Copyright (c) 2011, 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.
|
|
||||||
|
|
||||||
library test_utils;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Removes eight spaces of leading indentation from a multiline string.
|
|
||||||
*
|
|
||||||
* Note that this is very sensitive to how the literals are styled. They should
|
|
||||||
* be:
|
|
||||||
* '''
|
|
||||||
* Text starts on own line. Lines up with subsequent lines.
|
|
||||||
* Lines are indented exactly 8 characters from the left margin.
|
|
||||||
* Close is on the same line.'''
|
|
||||||
*
|
|
||||||
* This does nothing if text is only a single line.
|
|
||||||
*/
|
|
||||||
// TODO(nweiz): Make this auto-detect the indentation level from the first
|
|
||||||
// non-whitespace line.
|
|
||||||
String cleanUpLiteral(String text) {
|
|
||||||
var lines = text.split('\n');
|
|
||||||
if (lines.length <= 1) return text;
|
|
||||||
|
|
||||||
for (var j = 0; j < lines.length; j++) {
|
|
||||||
if (lines[j].length > 8) {
|
|
||||||
lines[j] = lines[j].substring(8, lines[j].length);
|
|
||||||
} else {
|
|
||||||
lines[j] = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return lines.join('\n');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Indents each line of [text] so that, when passed to [cleanUpLiteral], it will
|
|
||||||
* produce output identical to [text].
|
|
||||||
*
|
|
||||||
* This is useful for literals that need to include newlines but can't be
|
|
||||||
* conveniently represented as multi-line strings.
|
|
||||||
*/
|
|
||||||
// TODO(nweiz): Once cleanUpLiteral is fixed, get rid of this.
|
|
||||||
String indentLiteral(String text) {
|
|
||||||
var lines = text.split('\n');
|
|
||||||
if (lines.length <= 1) return text;
|
|
||||||
|
|
||||||
for (var i = 0; i < lines.length; i++) {
|
|
||||||
lines[i] = " ${lines[i]}";
|
|
||||||
}
|
|
||||||
|
|
||||||
return lines.join("\n");
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
# Copyright (c) 2012, 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.
|
|
||||||
|
|
||||||
[ $compiler == dart2js ]
|
|
||||||
dummy_compiler_test: Slow, Pass
|
|
||||||
|
|
||||||
[ $compiler == dart2js ]
|
|
||||||
recursive_import_test: Slow, Pass
|
|
||||||
|
|
||||||
[ $compiler == dart2js && $browser ]
|
|
||||||
*: Skip
|
|
||||||
|
|
||||||
[ ($compiler == none || $compiler == precompiler) && $runtime != vm ]
|
|
||||||
dart2js_test: SkipByDesign # Uses dart:io.
|
|
||||||
|
|
||||||
[ $compiler == dart2js && $mode == debug ]
|
|
||||||
dummy_compiler_test: Slow, Pass
|
|
||||||
|
|
||||||
[ $compiler == dart2analyzer && $builder_tag == strong ]
|
|
||||||
*: Skip # Issue 28649
|
|
||||||
|
|
||||||
[ $hot_reload || $hot_reload_rollback ]
|
|
||||||
recursive_import_test: Skip # Running dart2js under frequent reloads is slow.
|
|
||||||
dummy_compiler_test: Skip # Running dart2js under frequent reloads is slow.
|
|
||||||
|
|
||||||
[ $builder_tag == asan ]
|
|
||||||
recursive_import_test: Skip # Issue 27441
|
|
||||||
|
|
||||||
[ ($compiler == dartk || $compiler == dartkp) && $mode == debug ]
|
|
||||||
dummy_compiler_test: Slow, Pass
|
|
||||||
recursive_import_test: Slow, Pass
|
|
|
@ -1,5 +0,0 @@
|
||||||
name: browser_tests
|
|
||||||
dependencies:
|
|
||||||
html: any
|
|
||||||
unittest: any
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
// Copyright (c) 2013, 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.
|
|
||||||
|
|
||||||
library testrunner_test;
|
|
||||||
|
|
||||||
import 'package:unittest/unittest.dart';
|
|
||||||
|
|
||||||
foo(bool x) => x;
|
|
||||||
|
|
||||||
main() {
|
|
||||||
group('group1', () {
|
|
||||||
test('test1', () {
|
|
||||||
expect(true, isFalse);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
group('group2', () {
|
|
||||||
test('test2', () {
|
|
||||||
foo(3);
|
|
||||||
expect(true, isTrue);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>Testdriver tests</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<script type="application/dart" src="browser_test.dart"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
// Copyright (c) 2013, 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.
|
|
||||||
|
|
||||||
library testrunner_test;
|
|
||||||
|
|
||||||
import 'dart:async';
|
|
||||||
import 'dart:io';
|
|
||||||
import 'package:unittest/unittest.dart';
|
|
||||||
|
|
||||||
main() {
|
|
||||||
var get = (String what, int code, String text) {
|
|
||||||
var c = new Completer();
|
|
||||||
HttpClient client = new HttpClient();
|
|
||||||
client
|
|
||||||
.getUrl(Uri.parse("http://127.0.0.1:3456/$what"))
|
|
||||||
.then((HttpClientRequest request) {
|
|
||||||
// Prepare the request then call close on it to send it.
|
|
||||||
return request.close();
|
|
||||||
}).then((HttpClientResponse response) {
|
|
||||||
// Process the response.
|
|
||||||
expect(response.statusCode, code);
|
|
||||||
var sb = new StringBuffer();
|
|
||||||
response.transform(UTF8.decoder).listen((data) {
|
|
||||||
sb.write(data);
|
|
||||||
}, onDone: () {
|
|
||||||
expect(sb.toString(), text);
|
|
||||||
c.complete();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
return c.future;
|
|
||||||
};
|
|
||||||
test('test1', () {
|
|
||||||
return get('test.txt', 200, "Hello world!\n");
|
|
||||||
});
|
|
||||||
test('test2', () {
|
|
||||||
return get('fail.txt', 404, "");
|
|
||||||
});
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
name: layout_tests
|
|
||||||
dependencies:
|
|
||||||
html: any
|
|
||||||
unittest: any
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
// Copyright (c) 2013, 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.
|
|
||||||
|
|
||||||
library testrunner_test;
|
|
||||||
|
|
||||||
import 'dart:html';
|
|
||||||
import 'package:unittest/unittest.dart';
|
|
||||||
|
|
||||||
main() {
|
|
||||||
test("layout", () {
|
|
||||||
var lbl = new LabelElement();
|
|
||||||
lbl.text = 'Hello Dart!';
|
|
||||||
document.body.nodes.add(lbl);
|
|
||||||
});
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<title>Testdriver tests</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<script type="application/dart" src="browser_test.dart"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
// Copyright (c) 2013, 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.
|
|
||||||
|
|
||||||
library testrunner_test;
|
|
||||||
|
|
||||||
import 'package:unittest/unittest.dart';
|
|
||||||
|
|
||||||
foo(bool x) => x;
|
|
||||||
|
|
||||||
main() {
|
|
||||||
group('group1', () {
|
|
||||||
test('test1', () {
|
|
||||||
expect(true, isFalse);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
group('group2', () {
|
|
||||||
test('test2', () {
|
|
||||||
foo(3);
|
|
||||||
expect(true, isTrue);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
// Copyright (c) 2013, 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.
|
|
||||||
|
|
||||||
library testrunner_test;
|
|
||||||
|
|
||||||
import 'package:unittest/unittest.dart';
|
|
||||||
|
|
||||||
main() {
|
|
||||||
group('foo', () {
|
|
||||||
test('bar', () {
|
|
||||||
expect(true, isTrue);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
name: non_browser_tests
|
|
||||||
dependencies:
|
|
||||||
unittest: any
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
name: non_browser_tests
|
|
||||||
dependencies:
|
|
||||||
unittest: any
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Hello world!
|
|
|
@ -1 +0,0 @@
|
||||||
--checked
|
|
|
@ -1,574 +0,0 @@
|
||||||
// Copyright (c) 2013, 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.
|
|
||||||
|
|
||||||
library testrunner_test;
|
|
||||||
|
|
||||||
import 'dart:async';
|
|
||||||
import 'dart:io';
|
|
||||||
import 'package:unittest/unittest.dart';
|
|
||||||
|
|
||||||
var dart;
|
|
||||||
var debug = false;
|
|
||||||
|
|
||||||
Future runTestrunner(
|
|
||||||
command, List<String> args, List<String> stdout, List<String> stderr) {
|
|
||||||
if (debug) {
|
|
||||||
print("Running $command ${args.join(' ')}");
|
|
||||||
}
|
|
||||||
return Process.run(command, args).then((ProcessResult result) {
|
|
||||||
var lineEndings = new RegExp("\r\n|\n");
|
|
||||||
stdout.addAll(result.stdout.trim().split(lineEndings));
|
|
||||||
stderr.addAll(result.stderr.trim().split(lineEndings));
|
|
||||||
}).catchError((e) {
|
|
||||||
stderr.add("Error starting process:");
|
|
||||||
stderr.add(" Command: $command");
|
|
||||||
stderr.add(" Error: ${e}");
|
|
||||||
completer.complete(-1);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Useful utility for debugging test failures.
|
|
||||||
void dump(label, list) {
|
|
||||||
if (!debug) return;
|
|
||||||
print('\n@=[ $label ]=============================\n');
|
|
||||||
for (var i = 0; i < list.length; i++) {
|
|
||||||
print('@ ${list[i]}\n');
|
|
||||||
}
|
|
||||||
print('------------------------------------------\n');
|
|
||||||
}
|
|
||||||
|
|
||||||
int stringCompare(String s1, String s2) => s1.compareTo(s2);
|
|
||||||
|
|
||||||
Future runTest(List<String> args, List<String> expected_stdout,
|
|
||||||
{List<String> expected_stderr, sort: false}) {
|
|
||||||
var stdout = new List<String>();
|
|
||||||
var stderr = new List<String>();
|
|
||||||
for (var i = 0; i < expected_stdout.length; i++) {
|
|
||||||
expected_stdout[i] =
|
|
||||||
expected_stdout[i].replaceAll('/', Platform.pathSeparator);
|
|
||||||
}
|
|
||||||
if (debug) {
|
|
||||||
args.insert(1, "--log=stderr");
|
|
||||||
}
|
|
||||||
var rtn = runTestrunner(dart, args, stdout, stderr);
|
|
||||||
rtn.then((_) {
|
|
||||||
dump('stderr', stderr);
|
|
||||||
dump('stdout', stdout);
|
|
||||||
|
|
||||||
if (expected_stderr != null) {
|
|
||||||
expect(stderr.length, orderedEquals(expected_stderr));
|
|
||||||
}
|
|
||||||
var i, l = 0, matched = 0;
|
|
||||||
if (sort) {
|
|
||||||
stdout.sort(stringCompare);
|
|
||||||
expected_stdout.sort(stringCompare);
|
|
||||||
}
|
|
||||||
for (i = 0; i < stdout.length; i++) {
|
|
||||||
if (!stdout[i].startsWith('@')) {
|
|
||||||
if (expected_stdout.length <= l) {
|
|
||||||
fail("Extra text in output: ${stdout[i]}");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var actual = stdout[i].trim();
|
|
||||||
if (debug) {
|
|
||||||
print("Compare <$actual> and <${expected_stdout[l]}>");
|
|
||||||
}
|
|
||||||
if (expected_stdout[l].startsWith('*')) {
|
|
||||||
expect(actual, endsWith(expected_stdout[l].substring(1)));
|
|
||||||
} else if (expected_stdout[l].startsWith('?')) {
|
|
||||||
var pat = expected_stdout[l].substring(1);
|
|
||||||
if (Platform.operatingSystem == 'windows') {
|
|
||||||
// The joys of Windows...
|
|
||||||
pat = pat.replaceAll('\\', '\\\\');
|
|
||||||
}
|
|
||||||
expect(actual, matches(pat));
|
|
||||||
} else {
|
|
||||||
expect(actual, expected_stdout[l]);
|
|
||||||
}
|
|
||||||
++l;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (l < expected_stdout.length) {
|
|
||||||
fail("Only matched $l of ${expected_stdout.length} lines");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return rtn;
|
|
||||||
}
|
|
||||||
|
|
||||||
// A useful function to quickly disable a group of tests; just
|
|
||||||
// replace group() with skip_group().
|
|
||||||
skip_group(_1, _2) {}
|
|
||||||
|
|
||||||
main() {
|
|
||||||
dart = Platform.executable;
|
|
||||||
var idx = dart.indexOf('dart-sdk');
|
|
||||||
if (idx < 0) {
|
|
||||||
print("Please run using the dart executable from the Dart SDK");
|
|
||||||
exit(-1);
|
|
||||||
}
|
|
||||||
var _ = Platform.pathSeparator;
|
|
||||||
var testrunner = '../../testrunner/testrunner.dart'
|
|
||||||
.replaceAll('/', Platform.pathSeparator);
|
|
||||||
|
|
||||||
group("list tests", () {
|
|
||||||
test('list file', () {
|
|
||||||
return runTest([testrunner, '--list-files', 'non_browser_tests'],
|
|
||||||
['?.*/non_browser_tests/non_browser_test.dart']);
|
|
||||||
});
|
|
||||||
test('list files', () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'--sort',
|
|
||||||
'--list-files',
|
|
||||||
'--test-file-pattern=.dart\$'
|
|
||||||
], [
|
|
||||||
'*browser_tests/web/browser_test.dart',
|
|
||||||
'*http_client_tests/http_client_test.dart',
|
|
||||||
'*layout_tests/web/layout_test.dart',
|
|
||||||
'*non_browser_tests/non_browser_test.dart',
|
|
||||||
'*non_browser_tests/non_browser_toast.dart',
|
|
||||||
'*/testrunner_test.dart'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test('list files', () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--list-files',
|
|
||||||
'--test-file-pattern=.dart\$',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'*non_browser_tests/non_browser_test.dart',
|
|
||||||
'*non_browser_tests/non_browser_toast.dart'
|
|
||||||
], sort: true);
|
|
||||||
});
|
|
||||||
test('list groups', () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--list-groups',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'*non_browser_tests/non_browser_test.dart group1',
|
|
||||||
'*non_browser_tests/non_browser_test.dart group2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test('list tests', () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--list-tests',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'*non_browser_tests/non_browser_test.dart group1 test1',
|
|
||||||
'*non_browser_tests/non_browser_test.dart group2 test2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
group("vm", () {
|
|
||||||
test("vm without timing info", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/non_browser_tests/non_browser_test.dart group1 test1'
|
|
||||||
' Expected: false',
|
|
||||||
'?PASS .*/non_browser_tests/non_browser_test.dart group2 test2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("vm with timing info", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'--time',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL [0-9.]+s .*/non_browser_tests/non_browser_test.dart group1'
|
|
||||||
' test1 Expected: false',
|
|
||||||
'?PASS [0-9.]+s .*/non_browser_tests/non_browser_test.dart group2'
|
|
||||||
' test2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
group("selection", () {
|
|
||||||
test("--include", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'--include=group1',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/non_browser_tests/non_browser_test.dart group1 test1 '
|
|
||||||
'Expected: false'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("--exclude", () {
|
|
||||||
return runTest(
|
|
||||||
[testrunner, '--recurse', '--exclude=group1', 'non_browser_tests'],
|
|
||||||
['?PASS .*/non_browser_tests/non_browser_test.dart group2 test2']);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("test file pattern", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'--test-file-pattern=toast',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'?PASS .*/non_browser_tests/non_browser_toast.dart foo bar'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
group("stop on failure tests", () {
|
|
||||||
test("without stop", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'--sort',
|
|
||||||
'--tasks=1',
|
|
||||||
'--test-file-pattern=.dart\$',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/non_browser_tests/non_browser_test.dart group1 test1 '
|
|
||||||
'Expected: false',
|
|
||||||
'?PASS .*/non_browser_tests/non_browser_test.dart group2 test2',
|
|
||||||
'?PASS .*/non_browser_tests/non_browser_toast.dart foo bar'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test("with stop", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'--sort',
|
|
||||||
'--tasks=1',
|
|
||||||
'--test-file-pattern=.dart\$',
|
|
||||||
'--stop-on-failure',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/non_browser_tests/non_browser_test.dart group1 test1 '
|
|
||||||
'Expected: false',
|
|
||||||
'?PASS .*/non_browser_tests/non_browser_test.dart group2 test2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
group("output control", () {
|
|
||||||
test("summary test", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'--summary',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/non_browser_tests/non_browser_test.dart group1 test1 '
|
|
||||||
'Expected: false',
|
|
||||||
'?PASS .*/non_browser_tests/non_browser_test.dart group2 test2',
|
|
||||||
'',
|
|
||||||
'?.*/non_browser_tests/non_browser_test.dart: '
|
|
||||||
'1 PASSED, 1 FAILED, 0 ERRORS'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('list tests with custom format', () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--list-tests',
|
|
||||||
'--list-format="<FILENAME><TESTNAME>"',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'?.*/non_browser_tests/non_browser_test.dart test1',
|
|
||||||
'?.*/non_browser_tests/non_browser_test.dart test2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("custom message formatting", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'--pass-format=YIPPEE! <GROUPNAME><TESTNAME>',
|
|
||||||
'--fail-format=EPIC FAIL! <GROUPNAME><TESTNAME>',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'EPIC FAIL! group1 test1',
|
|
||||||
'YIPPEE! group2 test2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
test("checked mode test", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'--checked',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/non_browser_tests/non_browser_test.dart group1 test1 '
|
|
||||||
'Expected: false',
|
|
||||||
"?FAIL .*/non_browser_tests/non_browser_test.dart group2 test2 "
|
|
||||||
"Caught type 'int' is not a subtype of type 'bool' of 'x'."
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
group("browser", () {
|
|
||||||
test("native test", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'--runtime=drt-dart',
|
|
||||||
'browser_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/browser_tests/web/browser_test.dart group1 test1 '
|
|
||||||
'Expected: false',
|
|
||||||
'?PASS .*/browser_tests/web/browser_test.dart group2 test2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("compiled test", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'--runtime=drt-js',
|
|
||||||
'browser_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/browser_tests/web/browser_test.dart group1 test1 '
|
|
||||||
'Expected: false',
|
|
||||||
'?PASS .*/browser_tests/web/browser_test.dart group2 test2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
group("textual layout tests", () {
|
|
||||||
group("drt-dart", () {
|
|
||||||
test("no baseline", () {
|
|
||||||
var f = new File("layout_tests/web/layout_test/layout.txt");
|
|
||||||
if (f.existsSync()) {
|
|
||||||
f.deleteSync();
|
|
||||||
}
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-dart',
|
|
||||||
'--recurse',
|
|
||||||
'--layout-text',
|
|
||||||
'layout_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/layout_tests/web/layout_test.dart layout '
|
|
||||||
'No expectation file'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test("create baseline", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-dart',
|
|
||||||
'--recurse',
|
|
||||||
'--layout-text',
|
|
||||||
'--regenerate',
|
|
||||||
'layout_tests'
|
|
||||||
], [
|
|
||||||
'?PASS .*/layout_tests/web/layout_test.dart layout'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test("test baseline", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-dart',
|
|
||||||
'--recurse',
|
|
||||||
'--layout-text',
|
|
||||||
'layout_tests'
|
|
||||||
], [
|
|
||||||
'?PASS .*/layout_tests/web/layout_test.dart layout'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
group("drt-js", () {
|
|
||||||
test("no baseline", () {
|
|
||||||
var f = new File("layout_tests/web/layout_test/layout.txt");
|
|
||||||
if (f.existsSync()) {
|
|
||||||
f.deleteSync();
|
|
||||||
}
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-js',
|
|
||||||
'--recurse',
|
|
||||||
'--layout-text',
|
|
||||||
'layout_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/layout_tests/web/layout_test.dart layout '
|
|
||||||
'No expectation file'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test("create baseline", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-js',
|
|
||||||
'--recurse',
|
|
||||||
'--layout-text',
|
|
||||||
'--regenerate',
|
|
||||||
'layout_tests'
|
|
||||||
], [
|
|
||||||
'?PASS .*/layout_tests/web/layout_test.dart layout'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test("test baseline", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-js',
|
|
||||||
'--recurse',
|
|
||||||
'--layout-text',
|
|
||||||
'layout_tests'
|
|
||||||
], [
|
|
||||||
'?PASS .*/layout_tests/web/layout_test.dart layout'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
group("pixel layout tests", () {
|
|
||||||
group("drt-dart", () {
|
|
||||||
test("no baseline", () {
|
|
||||||
var f = new File("layout_tests/web/layout_test/layout.png");
|
|
||||||
if (f.existsSync()) {
|
|
||||||
f.deleteSync();
|
|
||||||
}
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-dart',
|
|
||||||
'--recurse',
|
|
||||||
'--layout-pixel',
|
|
||||||
'layout_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/layout_tests/web/layout_test.dart layout '
|
|
||||||
'No expectation file'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test("create baseline", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-dart',
|
|
||||||
'--recurse',
|
|
||||||
'--layout-pixel',
|
|
||||||
'--regenerate',
|
|
||||||
'layout_tests'
|
|
||||||
], [
|
|
||||||
'?PASS .*/layout_tests/web/layout_test.dart layout'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test("test baseline", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-dart',
|
|
||||||
'--recurse',
|
|
||||||
'--layout-pixel',
|
|
||||||
'layout_tests'
|
|
||||||
], [
|
|
||||||
'?PASS .*/layout_tests/web/layout_test.dart layout'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
// TODO(gram): Should add a test that changes a byte of the
|
|
||||||
// expectation .png.
|
|
||||||
});
|
|
||||||
group("drt-js", () {
|
|
||||||
test("no baseline", () {
|
|
||||||
var f = new File("layout_tests/web/layout_test/layout.png");
|
|
||||||
if (f.existsSync()) {
|
|
||||||
f.deleteSync();
|
|
||||||
}
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-js',
|
|
||||||
'--recurse',
|
|
||||||
'--layout-pixel',
|
|
||||||
'layout_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/layout_tests/web/layout_test.dart layout '
|
|
||||||
'No expectation file'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test("create baseline", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-js',
|
|
||||||
'--recurse',
|
|
||||||
'--layout-pixel',
|
|
||||||
'--regenerate',
|
|
||||||
'layout_tests'
|
|
||||||
], [
|
|
||||||
'?PASS .*/layout_tests/web/layout_test.dart layout'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test("test baseline", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-js',
|
|
||||||
'--recurse',
|
|
||||||
'--layout-pixel',
|
|
||||||
'layout_tests'
|
|
||||||
], [
|
|
||||||
'?PASS .*/layout_tests/web/layout_test.dart layout'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
group("run in isolate", () {
|
|
||||||
test("vm", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=vm',
|
|
||||||
'--recurse',
|
|
||||||
'--isolate',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/non_browser_tests/non_browser_test.dart group1 test1'
|
|
||||||
' Expected: false',
|
|
||||||
'?PASS .*/non_browser_tests/non_browser_test.dart group2 test2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test("drt-dart", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-dart',
|
|
||||||
'--recurse',
|
|
||||||
'--isolate',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/non_browser_tests/non_browser_test.dart group1 test1'
|
|
||||||
' Expected: false',
|
|
||||||
'?PASS .*/non_browser_tests/non_browser_test.dart group2 test2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
test("drt-js", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--runtime=drt-js',
|
|
||||||
'--recurse',
|
|
||||||
'--isolate',
|
|
||||||
'non_browser_tests'
|
|
||||||
], [
|
|
||||||
'?FAIL .*/non_browser_tests/non_browser_test.dart group1 test1 '
|
|
||||||
'Expected: false',
|
|
||||||
'?PASS .*/non_browser_tests/non_browser_test.dart group2 test2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
group("embedded server", () {
|
|
||||||
test("get test", () {
|
|
||||||
return runTest([
|
|
||||||
testrunner,
|
|
||||||
'--recurse',
|
|
||||||
'--server',
|
|
||||||
'--port=3456',
|
|
||||||
'--root=${Directory.current.path}',
|
|
||||||
'http_client_tests'
|
|
||||||
], [
|
|
||||||
'?PASS .*/http_client_tests/http_client_test.dart test1',
|
|
||||||
'?PASS .*/http_client_tests/http_client_test.dart test2'
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
Loading…
Reference in a new issue