Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(175)

Side by Side Diff: lib/src/runner/configuration/load.dart

Issue 1717533002: Add new test configuration fields. (Closed) Base URL: git@github.com:dart-lang/test@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/src/runner/configuration.dart ('k') | test/runner/configuration/configuration_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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 import 'dart:io'; 5 import 'dart:io';
6 6
7 import 'package:boolean_selector/boolean_selector.dart'; 7 import 'package:boolean_selector/boolean_selector.dart';
8 import 'package:glob/glob.dart'; 8 import 'package:glob/glob.dart';
9 import 'package:path/path.dart' as p; 9 import 'package:path/path.dart' as p;
10 import 'package:source_span/source_span.dart'; 10 import 'package:source_span/source_span.dart';
11 import 'package:yaml/yaml.dart'; 11 import 'package:yaml/yaml.dart';
12 12
13 import '../../backend/platform_selector.dart';
13 import '../../backend/test_platform.dart'; 14 import '../../backend/test_platform.dart';
14 import '../../frontend/timeout.dart'; 15 import '../../frontend/timeout.dart';
15 import '../../utils.dart'; 16 import '../../utils.dart';
16 import '../configuration.dart'; 17 import '../configuration.dart';
17 import 'values.dart'; 18 import 'values.dart';
18 19
19 /// Loads configuration information from a YAML file at [path]. 20 /// Loads configuration information from a YAML file at [path].
20 /// 21 ///
21 /// Throws a [FormatException] if the configuration is invalid, and a 22 /// Throws a [FormatException] if the configuration is invalid, and a
22 /// [FileSystemException] if it can't be read. 23 /// [FileSystemException] if it can't be read.
(...skipping 29 matching lines...) Expand all
52 : _runnerConfig = runnerConfig; 53 : _runnerConfig = runnerConfig;
53 54
54 /// Loads the configuration in [_document]. 55 /// Loads the configuration in [_document].
55 Configuration load() => _loadTestConfig().merge(_loadRunnerConfig()); 56 Configuration load() => _loadTestConfig().merge(_loadRunnerConfig());
56 57
57 /// Loads test configuration (but not runner configuration). 58 /// Loads test configuration (but not runner configuration).
58 Configuration _loadTestConfig() { 59 Configuration _loadTestConfig() {
59 var verboseTrace = _getBool("verbose_trace"); 60 var verboseTrace = _getBool("verbose_trace");
60 var jsTrace = _getBool("js_trace"); 61 var jsTrace = _getBool("js_trace");
61 62
63 var skip = _getValue("skip", "boolean or string",
64 (value) => value is bool || value is String);
65 var skipReason;
66 if (skip is String) {
67 skipReason = skip;
68 skip = true;
69 }
70
71 var testOn = _parseValue("test_on",
72 (value) => new PlatformSelector.parse(value));
73
62 var timeout = _parseValue("timeout", (value) => new Timeout.parse(value)); 74 var timeout = _parseValue("timeout", (value) => new Timeout.parse(value));
63 75
64 var addTags = _getList("add_tags", (tagNode) { 76 var addTags = _getList("add_tags", (tagNode) {
65 _validate(tagNode, "Tags must be strings.", (value) => value is String); 77 _validate(tagNode, "Tags must be strings.", (value) => value is String);
66 _validate( 78 _validate(
67 tagNode, 79 tagNode,
68 "Invalid tag. Tags must be (optionally hyphenated) Dart identifiers.", 80 "Invalid tag. Tags must be (optionally hyphenated) Dart identifiers.",
69 (value) => value.contains(anchoredHyphenatedIdentifier)); 81 (value) => value.contains(anchoredHyphenatedIdentifier));
70 return tagNode.value; 82 return tagNode.value;
71 }); 83 });
72 84
73 var tags = _getMap("tags", 85 var tags = _getMap("tags",
74 key: (keyNode) => _parseNode(keyNode, "tags key", 86 key: (keyNode) => _parseNode(keyNode, "tags key",
75 (value) => new BooleanSelector.parse(value)), 87 (value) => new BooleanSelector.parse(value)),
76 value: (valueNode) => 88 value: (valueNode) =>
77 _nestedConfig(valueNode, "tag value", runnerConfig: false)); 89 _nestedConfig(valueNode, "tag value", runnerConfig: false));
78 90
79 return new Configuration( 91 return new Configuration(
80 verboseTrace: verboseTrace, 92 verboseTrace: verboseTrace,
81 jsTrace: jsTrace, 93 jsTrace: jsTrace,
94 skip: skip,
95 skipReason: skipReason,
96 testOn: testOn,
82 timeout: timeout, 97 timeout: timeout,
83 addTags: addTags, 98 addTags: addTags,
84 tags: tags); 99 tags: tags);
85 } 100 }
86 101
87 /// Loads runner configuration (but not test configuration). 102 /// Loads runner configuration (but not test configuration).
88 /// 103 ///
89 /// If [_runnerConfig] is `false`, this will error if there are any 104 /// If [_runnerConfig] is `false`, this will error if there are any
90 /// runner-level configuration fields. 105 /// runner-level configuration fields.
91 Configuration _loadRunnerConfig() { 106 Configuration _loadRunnerConfig() {
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 if (!_document.containsKey(field)) return; 276 if (!_document.containsKey(field)) return;
262 _error("$field isn't supported here.", field); 277 _error("$field isn't supported here.", field);
263 } 278 }
264 279
265 /// Throws a [SourceSpanFormatException] with [message] about [field]. 280 /// Throws a [SourceSpanFormatException] with [message] about [field].
266 void _error(String message, String field) { 281 void _error(String message, String field) {
267 throw new SourceSpanFormatException( 282 throw new SourceSpanFormatException(
268 message, _document.nodes[field].span, _source); 283 message, _document.nodes[field].span, _source);
269 } 284 }
270 } 285 }
OLDNEW
« no previous file with comments | « lib/src/runner/configuration.dart ('k') | test/runner/configuration/configuration_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698