| 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 import 'dart:collection'; | 5 import 'dart:collection'; |
| 6 | 6 |
| 7 import 'package:boolean_selector/boolean_selector.dart'; | 7 import 'package:boolean_selector/boolean_selector.dart'; |
| 8 import 'package:collection/collection.dart'; | 8 import 'package:collection/collection.dart'; |
| 9 | 9 |
| 10 import '../frontend/skip.dart'; | 10 import '../frontend/skip.dart'; |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 skip: skip, | 133 skip: skip, |
| 134 verboseTrace: verboseTrace, | 134 verboseTrace: verboseTrace, |
| 135 skipReason: skipReason, | 135 skipReason: skipReason, |
| 136 tags: tags, | 136 tags: tags, |
| 137 onPlatform: onPlatform, | 137 onPlatform: onPlatform, |
| 138 forTag: forTag); | 138 forTag: forTag); |
| 139 | 139 |
| 140 // If there's no tag-specific metadata, or if none of it applies, just | 140 // If there's no tag-specific metadata, or if none of it applies, just |
| 141 // return the metadata as-is. | 141 // return the metadata as-is. |
| 142 if (forTag == null || tags == null) return _unresolved(); | 142 if (forTag == null || tags == null) return _unresolved(); |
| 143 forTag = new Map.from(forTag); |
| 143 | 144 |
| 144 // Otherwise, resolve the tag-specific components. Doing this eagerly means | 145 // Otherwise, resolve the tag-specific components. Doing this eagerly means |
| 145 // we only have to resolve suite- or group-level tags once, rather than | 146 // we only have to resolve suite- or group-level tags once, rather than |
| 146 // doing it for every test individually. | 147 // doing it for every test individually. |
| 147 var empty = new Metadata._(); | 148 var empty = new Metadata._(); |
| 148 var merged = forTag.keys.toList().fold(empty, (merged, selector) { | 149 var merged = forTag.keys.toList().fold(empty, (merged, selector) { |
| 149 if (!selector.evaluate(tags)) return merged; | 150 if (!selector.evaluate(tags)) return merged; |
| 150 return merged.merge(forTag.remove(selector)); | 151 return merged.merge(forTag.remove(selector)); |
| 151 }); | 152 }); |
| 152 | 153 |
| (...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 _serializeTimeout(Timeout timeout) { | 315 _serializeTimeout(Timeout timeout) { |
| 315 if (timeout == Timeout.none) return 'none'; | 316 if (timeout == Timeout.none) return 'none'; |
| 316 return { | 317 return { |
| 317 'duration': timeout.duration == null | 318 'duration': timeout.duration == null |
| 318 ? null | 319 ? null |
| 319 : timeout.duration.inMicroseconds, | 320 : timeout.duration.inMicroseconds, |
| 320 'scaleFactor': timeout.scaleFactor | 321 'scaleFactor': timeout.scaleFactor |
| 321 }; | 322 }; |
| 322 } | 323 } |
| 323 } | 324 } |
| OLD | NEW |