Index: tools/testing/dart/command.dart |
diff --git a/tools/testing/dart/command.dart b/tools/testing/dart/command.dart |
index e191186234fee1b96aad1d537be351553a014366..585f742971c5c63dd6bac3227a8bb546b0242fe6 100644 |
--- a/tools/testing/dart/command.dart |
+++ b/tools/testing/dart/command.dart |
@@ -40,19 +40,13 @@ class Command { |
static Command compilation( |
String displayName, |
String outputFile, |
- bool neverSkipCompilation, |
List<Uri> bootstrapDependencies, |
String executable, |
List<String> arguments, |
- Map<String, String> environment) { |
- return new CompilationCommand._( |
- displayName, |
- outputFile, |
- neverSkipCompilation, |
- bootstrapDependencies, |
- executable, |
- arguments, |
- environment); |
+ Map<String, String> environment, |
+ {bool alwaysCompile: false}) { |
+ return new CompilationCommand._(displayName, outputFile, alwaysCompile, |
+ bootstrapDependencies, executable, arguments, environment); |
} |
static Command kernelCompilation( |
@@ -157,7 +151,7 @@ class Command { |
String toString() => reproductionCommand; |
- Future<bool> get outputIsUpToDate => new Future.value(false); |
+ bool get outputIsUpToDate => false; |
} |
class ProcessCommand extends Command { |
@@ -214,7 +208,7 @@ class ProcessCommand extends Command { |
return "$env$command"; |
} |
- Future<bool> get outputIsUpToDate => new Future.value(false); |
+ bool get outputIsUpToDate => false; |
/// Arguments that are passed to the process when starting batch mode. |
/// |
@@ -224,71 +218,71 @@ class ProcessCommand extends Command { |
class CompilationCommand extends ProcessCommand { |
final String _outputFile; |
- final bool _neverSkipCompilation; |
+ |
+ /// If true, then the compilation is run even if the input files are older |
+ /// than the output file. |
+ final bool _alwaysCompile; |
final List<Uri> _bootstrapDependencies; |
CompilationCommand._( |
String displayName, |
this._outputFile, |
- this._neverSkipCompilation, |
+ this._alwaysCompile, |
this._bootstrapDependencies, |
String executable, |
List<String> arguments, |
Map<String, String> environmentOverrides) |
: super._(displayName, executable, arguments, environmentOverrides); |
- Future<bool> get outputIsUpToDate { |
- if (_neverSkipCompilation) return new Future.value(false); |
+ bool get outputIsUpToDate { |
+ if (_alwaysCompile) return false; |
- Future<List<Uri>> readDepsFile(String path) { |
+ List<Uri> readDepsFile(String path) { |
var file = new io.File(new Path(path).toNativePath()); |
- if (!file.existsSync()) { |
- return new Future.value(null); |
- } |
- return file.readAsLines().then((List<String> lines) { |
- var dependencies = new List<Uri>(); |
- for (var line in lines) { |
- line = line.trim(); |
- if (line.length > 0) { |
- dependencies.add(Uri.parse(line)); |
- } |
+ if (!file.existsSync()) return null; |
+ |
+ var lines = file.readAsLinesSync(); |
+ var dependencies = <Uri>[]; |
+ for (var line in lines) { |
+ line = line.trim(); |
+ if (line.isNotEmpty) { |
+ dependencies.add(Uri.parse(line)); |
} |
- return dependencies; |
- }); |
+ } |
+ |
+ return dependencies; |
} |
- return readDepsFile("$_outputFile.deps").then((dependencies) { |
- if (dependencies != null) { |
- dependencies.addAll(_bootstrapDependencies); |
- var jsOutputLastModified = TestUtils.lastModifiedCache |
- .getLastModified(new Uri(scheme: 'file', path: _outputFile)); |
- if (jsOutputLastModified != null) { |
- for (var dependency in dependencies) { |
- var dependencyLastModified = |
- TestUtils.lastModifiedCache.getLastModified(dependency); |
- if (dependencyLastModified == null || |
- dependencyLastModified.isAfter(jsOutputLastModified)) { |
- return false; |
- } |
- } |
- return true; |
- } |
+ var dependencies = readDepsFile("$_outputFile.deps"); |
+ if (dependencies == null) return false; |
+ |
+ dependencies.addAll(_bootstrapDependencies); |
+ var jsOutputLastModified = TestUtils.lastModifiedCache |
+ .getLastModified(new Uri(scheme: 'file', path: _outputFile)); |
+ if (jsOutputLastModified == null) return false; |
+ |
+ for (var dependency in dependencies) { |
+ var dependencyLastModified = |
+ TestUtils.lastModifiedCache.getLastModified(dependency); |
+ if (dependencyLastModified == null || |
+ dependencyLastModified.isAfter(jsOutputLastModified)) { |
+ return false; |
} |
- return false; |
- }); |
+ } |
+ return true; |
} |
void _buildHashCode(HashCodeBuilder builder) { |
super._buildHashCode(builder); |
builder.addJson(_outputFile); |
- builder.addJson(_neverSkipCompilation); |
+ builder.addJson(_alwaysCompile); |
builder.addJson(_bootstrapDependencies); |
} |
bool _equal(CompilationCommand other) => |
super._equal(other) && |
_outputFile == other._outputFile && |
- _neverSkipCompilation == other._neverSkipCompilation && |
+ _alwaysCompile == other._alwaysCompile && |
deepJsonCompare(_bootstrapDependencies, other._bootstrapDependencies); |
} |