| Index: tests/compiler/dart2js/output_collector.dart
|
| diff --git a/tests/compiler/dart2js/output_collector.dart b/tests/compiler/dart2js/output_collector.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c6bc101a7f8b22f99ba065704aec89a46b69ff7a
|
| --- /dev/null
|
| +++ b/tests/compiler/dart2js/output_collector.dart
|
| @@ -0,0 +1,44 @@
|
| +// 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.
|
| +
|
| +// Output provider that collects the output in string buffers.
|
| +
|
| +library output_collector;
|
| +
|
| +import 'dart:async';
|
| +
|
| +class BufferedEventSink implements EventSink<String> {
|
| + StringBuffer sb = new StringBuffer();
|
| + String text;
|
| +
|
| + void add(String event) {
|
| + sb.write(event);
|
| + }
|
| +
|
| + void addError(errorEvent, [StackTrace stackTrace]) {
|
| + // Do not support this.
|
| + }
|
| +
|
| + void close() {
|
| + text = sb.toString();
|
| + sb = null;
|
| + }
|
| +}
|
| +
|
| +class OutputCollector {
|
| + Map<String, Map<String, BufferedEventSink>> outputMap = {};
|
| +
|
| + EventSink<String> call(String name, String extension) {
|
| + Map<String, BufferedEventSink> sinkMap =
|
| + outputMap.putIfAbsent(extension, () => {});
|
| + return sinkMap.putIfAbsent(name, () => new BufferedEventSink());
|
| + }
|
| +
|
| + String getOutput(String name, String extension) {
|
| + Map<String, BufferedEventSink> sinkMap = outputMap[extension];
|
| + if (sinkMap == null) return null;
|
| + BufferedEventSink sink = sinkMap[name];
|
| + return sink != null ? sink.text : null;
|
| + }
|
| +}
|
|
|