Index: tests/compiler/dart2js/library_env_test.dart |
diff --git a/tests/compiler/dart2js/library_env_test.dart b/tests/compiler/dart2js/library_env_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..56c068c3f0d6d45efbf5c0d829b1ea0c72f5e753 |
--- /dev/null |
+++ b/tests/compiler/dart2js/library_env_test.dart |
@@ -0,0 +1,153 @@ |
+// Copyright (c) 2015, 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. |
+ |
+/// Check that 'dart:' libraries have their corresponding dart.library.X |
+/// environment variable set. |
+ |
+import "dart:io"; |
+ |
+import "dart:async"; |
+ |
+import "memory_source_file_helper.dart"; |
+ |
+import "package:async_helper/async_helper.dart"; |
+ |
+import 'package:expect/expect.dart' show |
+ Expect; |
+ |
+import 'package:compiler/src/elements/elements.dart' show |
+ LibraryElement; |
+ |
+import 'package:compiler/src/null_compiler_output.dart' show |
+ NullCompilerOutput; |
+ |
+import 'package:compiler/compiler_new.dart' show |
+ CompilerInput, |
+ CompilerDiagnostics; |
+ |
+import 'package:sdk_library_metadata/libraries.dart' show |
+ DART2JS_PLATFORM, |
sigurdm
2016/01/13 13:00:48
Import no longer needed
floitsch
2016/01/13 15:34:33
Thanks.
Done.
|
+ LibraryInfo; |
+ |
+const clientPlatform = r''' |
+[dart-spec] |
+spec: 3rd edition. |
+ |
+[features] |
+# No extra features |
+ |
+[libraries] |
+mock.client: mock1.dart |
+mock.shared: mock3.dart |
+collection: collection/collection.dart |
+html: html/dart2js/html_dart2js.dart |
+'''; |
+ |
+const serverPlatform = r''' |
+[dart-spec] |
+spec: 3rd edition. |
+ |
+[features] |
+# No extra features |
+ |
+[libraries] |
+mock.server: mock2.dart |
+mock.shared: mock3.dart |
+collection: collection/collection.dart |
+io: io/io.dart |
+'''; |
+ |
+class DummyCompilerInput implements CompilerInput { |
+ const DummyCompilerInput(); |
+ |
+ readFromUri(uri) async { |
+ if (uri.toString().endsWith("dart_client.platform")) { |
+ return clientPlatform; |
+ } else if (uri.toString().endsWith("dart_server.platform")) { |
+ return serverPlatform; |
+ } else { |
+ throw "should not be needed $uri"; |
+ } |
+ } |
+} |
+ |
+class DummyCompilerDiagnostics implements CompilerDiagnostics { |
+ const DummyCompilerDiagnostics(); |
+ |
+ report(code, uri, begin, end, text, kind) { |
+ throw "should not be needed"; |
+ } |
+} |
+ |
+class CustomCompiler extends CompilerImpl { |
+ CustomCompiler( |
+ options, |
+ environment) |
+ : super( |
+ const DummyCompilerInput(), |
+ const NullCompilerOutput(), |
+ const DummyCompilerDiagnostics(), |
+ Uri.base.resolve("sdk/"), |
+ null, |
+ options, |
+ environment); |
+} |
+ |
+runTest() async { |
+ var compiler = new CustomCompiler( |
+ [], |
+ {}); |
+ |
+ await compiler.setupSdk(); |
+ |
+ // Core libraries are always present. |
+ Expect.equals("true", compiler.fromEnvironment("dart.library.collection")); |
+ // Non-existing entries in the environment return 'null'. |
+ Expect.isNull(compiler.fromEnvironment("not in env")); |
+ // Check for client libraries (default if there are no flags to the compiler). |
+ Expect.equals("true", compiler.fromEnvironment("dart.library.mock.client")); |
+ Expect.equals("true", compiler.fromEnvironment("dart.library.html")); |
+ // Check for shared libraries.. |
+ Expect.equals("true", compiler.fromEnvironment("dart.library.mock.shared")); |
+ // Check server libraries are not present. |
+ Expect.equals(null, compiler.fromEnvironment("dart.library.mock.server")); |
+ Expect.equals(null, compiler.fromEnvironment("dart.library.io")); |
+ |
+ compiler = new CustomCompiler( |
+ ['--categories=Server'], |
+ {}); |
+ |
+ await compiler.setupSdk(); |
+ |
+ // Core libraries are always present. |
+ Expect.equals("true", compiler.fromEnvironment("dart.library.collection")); |
+ // Non-existing entries in the environment return 'null'. |
+ Expect.isNull(compiler.fromEnvironment("not in env")); |
+ // Check client libraries are not present. |
+ Expect.equals(null, compiler.fromEnvironment("dart.library.mock.client")); |
+ Expect.equals(null, compiler.fromEnvironment("dart.library.html")); |
+ // Check for shared libraries.. |
+ Expect.equals("true", compiler.fromEnvironment("dart.library.mock.shared")); |
+ // Check for server libraries. |
+ Expect.equals("true", compiler.fromEnvironment("dart.library.mock.server")); |
+ Expect.equals("true", compiler.fromEnvironment("dart.library.io")); |
+ |
+ // Check that user-defined env-variables win. |
+ compiler = new CustomCompiler( |
+ [], |
+ {'dart.library.collection': "false", |
+ 'dart.library.mock.client': "foo"}); |
+ |
+ await compiler.setupSdk(); |
+ |
+ Expect.equals("false", compiler.fromEnvironment("dart.library.collection")); |
+ Expect.equals("foo", compiler.fromEnvironment("dart.library.mock.client")); |
+} |
+ |
+main() { |
+ asyncStart(); |
+ runTest().then((_) { |
+ asyncEnd(); |
+ }); |
+} |