| // 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. |
| |
| // @dart = 2.9 |
| |
| import 'dart:io'; |
| |
| import 'package:expect/expect.dart'; |
| import 'package:path/path.dart' as p; |
| import 'package:source_maps/source_maps.dart' as sm; |
| |
| void main() async { |
| final binDir = p.dirname(Platform.resolvedExecutable); |
| final sdkDir = p.dirname(binDir); |
| // This test expects to run in a build SDK. |
| Expect.isTrue(binDir.endsWith('bin')); |
| |
| final sdkJsMapDir = |
| p.joinAll([sdkDir, 'lib', 'dev_compiler', 'kernel', 'amd']); |
| final sdkJsMapFile = p.join(sdkJsMapDir, 'dart_sdk.js.map'); |
| |
| final sdkJsMapText = await File(sdkJsMapFile).readAsString(); |
| var mapping = sm.parse(sdkJsMapText) as sm.SingleMapping; |
| |
| var urls = mapping.urls; |
| Expect.isTrue(urls.isNotEmpty); |
| for (var url in urls) { |
| Expect.equals(p.extension(url), '.dart'); |
| Expect.isFalse(p.isAbsolute(url)); |
| var fullPath = p.canonicalize(p.join(sdkJsMapDir, url)); |
| Expect.isTrue(await File(fullPath).exists(), 'Missing file: $fullPath'); |
| } |
| } |