Chromium Code Reviews| Index: pkg/front_end/test/fasta/compile_platform_test.dart |
| diff --git a/pkg/front_end/test/fasta/compile_platform_test.dart b/pkg/front_end/test/fasta/compile_platform_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..842fe7cec1c268defc54fcc061eaf26f7d605b3f |
| --- /dev/null |
| +++ b/pkg/front_end/test/fasta/compile_platform_test.dart |
| @@ -0,0 +1,58 @@ |
| +// Copyright (c) 2016, 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.md file. |
| + |
| +library fasta.test.compile_platform_test; |
| + |
| +import 'dart:io'; |
| + |
| +import 'package:async_helper/async_helper.dart'; |
| + |
| +import 'package:expect/expect.dart'; |
| + |
| +import '../../tool/_fasta/compile_platform.dart' show compilePlatform; |
| + |
| +main(List<String> arguments) async { |
| + await asyncTest(() async { |
| + await withTemporyDirectory("compile_platform_test_", (Uri tmp) async { |
| + String patchedSdk = Uri.base |
| + .resolveUri(new Uri.file(Platform.resolvedExecutable)) |
| + .resolve("patched_sdk") |
| + .toFilePath(); |
| + // This first invocation should succeed. |
| + await compilePlatform(<String>[ |
|
Siggi Cherem (dart-lang)
2017/08/24 19:27:02
Alternatively, should we use the public APIs here
ahe
2017/08/25 08:45:51
I think it's a great idea to rewrite tool/_fasta/c
Siggi Cherem (dart-lang)
2017/08/25 14:41:48
OK - I misunderstood, I thought the goal was to ha
|
| + "-v", |
| + patchedSdk, |
| + tmp.resolve("platform.dill").toFilePath(), |
| + tmp.resolve("platform-outline.dill").toFilePath(), |
| + ]); |
| + print("Successfully compiled $patchedSdk.\n\n"); |
| + |
| + try { |
| + // This invocation is expected to throw an exception for now. Patching |
| + // isn't fully implemented yet. |
| + await compilePlatform(<String>[ |
| + "-v", |
| + "sdk/", |
|
Siggi Cherem (dart-lang)
2017/08/24 19:27:02
it might be worth checking first that this folder
ahe
2017/08/25 08:45:51
That will lead to a different error and this test
|
| + tmp.resolve("platform.dill").toFilePath(), |
| + tmp.resolve("platform-outline.dill").toFilePath(), |
| + ]); |
| + } on String catch (e) { |
| + Expect.isTrue( |
| + e.startsWith("A member with disambiguated name '_withType' ")); |
| + print("Failed as expected: $e"); |
| + return; |
| + } |
| + Expect.fail("Test didn't throw expected exception."); |
| + }); |
| + }); |
| +} |
| + |
| +withTemporyDirectory(String prefix, Future f(Uri tmp)) async { |
| + Directory tmp = await Directory.systemTemp.createTemp(prefix); |
| + try { |
| + await f(tmp.uri); |
| + } finally { |
| + await tmp.delete(recursive: true); |
|
Siggi Cherem (dart-lang)
2017/08/24 19:27:02
if we switch to use the public API, we should also
ahe
2017/08/25 08:45:51
Yes, but that wouldn't test the tool. Perhaps we s
Siggi Cherem (dart-lang)
2017/08/25 14:41:48
yes :)
|
| + } |
| +} |