| Index: tests/compiler/dart2js/source_map_consistency_helper.dart
|
| diff --git a/tests/compiler/dart2js/source_map_consistency_helper.dart b/tests/compiler/dart2js/source_map_consistency_helper.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3f69eb69bdfd744d8fcbeca57888276471e3d3e8
|
| --- /dev/null
|
| +++ b/tests/compiler/dart2js/source_map_consistency_helper.dart
|
| @@ -0,0 +1,54 @@
|
| +// Copyright (c) 2014, 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.
|
| +
|
| +import 'dart:io';
|
| +import 'dart:convert';
|
| +import 'dart:async';
|
| +
|
| +import 'package:path/path.dart' as path;
|
| +import 'package:expect/expect.dart';
|
| +import 'package:source_maps/source_maps.dart';
|
| +
|
| +checkConsistency(Uri outUri) {
|
| + print('Accessing $outUri');
|
| + File sourceFile = new File.fromUri(outUri);
|
| + Expect.isTrue(sourceFile.existsSync());
|
| + String mapName = getMapReferenceFromJsOutput(sourceFile.readAsStringSync());
|
| + Uri mapUri = outUri.resolve(mapName);
|
| + print('Accessing $mapUri');
|
| + File mapFile = new File.fromUri(mapUri);
|
| + Expect.isTrue(mapFile.existsSync());
|
| + SingleMapping sourceMap = new SingleMapping.fromJson(
|
| + JSON.decode(mapFile.readAsStringSync()));
|
| + Expect.equals(outUri, mapUri.resolve(sourceMap.targetUrl));
|
| +}
|
| +
|
| +String getMapReferenceFromJsOutput(String file) {
|
| + List<String> out = file.split('\n');
|
| + String mapReference = out[out.length - 3]; // #sourceMappingURL=<url>
|
| + Expect.isTrue(mapReference.startsWith('//# sourceMappingURL='));
|
| + return mapReference.substring(mapReference.indexOf('=') + 1);
|
| +}
|
| +
|
| +copyDirectory(Directory sourceDir, Directory destinationDir) {
|
| + sourceDir.listSync().forEach((FileSystemEntity element) {
|
| + String newPath = path.join(destinationDir.path,
|
| + path.basename(element.path));
|
| + if (element is File) {
|
| + element.copySync(newPath);
|
| + } else if (element is Directory) {
|
| + Directory newDestinationDir = new Directory(newPath);
|
| + newDestinationDir.createSync();
|
| + copyDirectory(element, newDestinationDir);
|
| + }
|
| + });
|
| +}
|
| +
|
| +Future<Directory> createTempDir() {
|
| + return Directory.systemTemp
|
| + .createTemp('sourceMap_test-')
|
| + .then((Directory dir) {
|
| + return dir;
|
| + });
|
| +}
|
|
|