OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library unittest.backend.platform_selector; | 5 library test.backend.platform_selector; |
6 | 6 |
7 import 'package:source_span/source_span.dart'; | 7 import 'package:source_span/source_span.dart'; |
8 | 8 |
9 import 'operating_system.dart'; | 9 import 'operating_system.dart'; |
10 import 'platform_selector/ast.dart'; | 10 import 'platform_selector/ast.dart'; |
11 import 'platform_selector/evaluator.dart'; | 11 import 'platform_selector/evaluator.dart'; |
12 import 'platform_selector/parser.dart'; | 12 import 'platform_selector/parser.dart'; |
13 import 'platform_selector/visitor.dart'; | 13 import 'platform_selector/visitor.dart'; |
14 import 'test_platform.dart'; | 14 import 'test_platform.dart'; |
15 | 15 |
16 /// The set of all valid variable names. | 16 /// The set of all valid variable names. |
17 final _validVariables = | 17 final _validVariables = |
18 new Set<String>.from(["posix", "dart-vm", "browser", "js", "blink"]) | 18 new Set<String>.from(["posix", "dart-vm", "browser", "js", "blink"]) |
19 ..addAll(TestPlatform.all.map((platform) => platform.identifier)) | 19 ..addAll(TestPlatform.all.map((platform) => platform.identifier)) |
20 ..addAll(OperatingSystem.all.map((os) => os.name)); | 20 ..addAll(OperatingSystem.all.map((os) => os.name)); |
21 | 21 |
22 /// An expression for selecting certain platforms, including operating systems | 22 /// An expression for selecting certain platforms, including operating systems |
23 /// and browsers. | 23 /// and browsers. |
24 /// | 24 /// |
25 /// The syntax is mostly Dart's expression syntax restricted to boolean | 25 /// The syntax is mostly Dart's expression syntax restricted to boolean |
26 /// operations. See [the README][] for full details. | 26 /// operations. See [the README][] for full details. |
27 /// | 27 /// |
28 /// [the README]: https://github.com/dart-lang/unittest/#platform-selector-synta
x | 28 /// [the README]: https://github.com/dart-lang/test/#platform-selector-syntax |
29 abstract class PlatformSelector { | 29 abstract class PlatformSelector { |
30 /// A selector that declares that a test can be run on all platforms. | 30 /// A selector that declares that a test can be run on all platforms. |
31 /// | 31 /// |
32 /// This isn't representable in the platform selector syntax but it is the | 32 /// This isn't representable in the platform selector syntax but it is the |
33 /// default selector. | 33 /// default selector. |
34 static const all = const _AllPlatforms(); | 34 static const all = const _AllPlatforms(); |
35 | 35 |
36 /// Parses [selector]. | 36 /// Parses [selector]. |
37 /// | 37 /// |
38 /// This will throw a [SourceSpanFormatException] if the selector is | 38 /// This will throw a [SourceSpanFormatException] if the selector is |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 /// and it isn't done when parsing to avoid coupling the syntax too tightly to | 94 /// and it isn't done when parsing to avoid coupling the syntax too tightly to |
95 /// the semantics. | 95 /// the semantics. |
96 class _VariableValidator extends RecursiveVisitor { | 96 class _VariableValidator extends RecursiveVisitor { |
97 const _VariableValidator(); | 97 const _VariableValidator(); |
98 | 98 |
99 void visitVariable(VariableNode node) { | 99 void visitVariable(VariableNode node) { |
100 if (_validVariables.contains(node.name)) return; | 100 if (_validVariables.contains(node.name)) return; |
101 throw new SourceSpanFormatException("Undefined variable.", node.span); | 101 throw new SourceSpanFormatException("Undefined variable.", node.span); |
102 } | 102 } |
103 } | 103 } |
OLD | NEW |