Index: tests/fletch_tests/messages.dart |
diff --git a/tests/fletch_tests/messages.dart b/tests/fletch_tests/messages.dart |
deleted file mode 100644 |
index 61067635510f4793b60989743205788ae447f4dc..0000000000000000000000000000000000000000 |
--- a/tests/fletch_tests/messages.dart |
+++ /dev/null |
@@ -1,234 +0,0 @@ |
-// Copyright (c) 2015, the Dartino 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.md file. |
- |
-/// Messages used by fletch_test_suite.dart to communicate with test.py. |
-library fletch_tests.messages; |
- |
-import 'dart:convert' show |
- JSON; |
- |
-import 'dart:io' as io show stdout; |
- |
-import 'dart:async' show |
- StreamTransformer; |
- |
-StreamTransformer<String, Message> get messageTransformer { |
- return new StreamTransformer<String, Message> |
- .fromHandlers(handleData: (String line, Sink<Message> sink) { |
- sink.add(new Message.fromJson(line)); |
- }); |
-} |
- |
-abstract class Message { |
- const Message(); |
- |
- factory Message.fromJson(String json) { |
- Map<String, dynamic> data = JSON.decode(json); |
- String type = data['type']; |
- switch (type) { |
- case 'InternalErrorMessage': |
- return new InternalErrorMessage.fromJsonData(data); |
- |
- case 'Info': return new Info.fromJsonData(data); |
- case 'ListTests': return const ListTests(); |
- case 'ListTestsReply': return new ListTestsReply.fromJsonData(data); |
- case 'RunTest': return new RunTest.fromJsonData(data); |
- case 'TimedOut': return new TimedOut.fromJsonData(data); |
- case 'TestFailed': return new TestFailed.fromJsonData(data); |
- case 'TestPassed': return new TestPassed.fromJsonData(data); |
- case 'TestStdoutLine': return new TestStdoutLine.fromJsonData(data); |
- } |
- |
- throw "Unknown message: $type"; |
- } |
- |
- String get type; |
- |
- String toString() => "$type()"; |
- |
- Map<String, dynamic> toJson() => <String, dynamic>{'type': type}; |
- |
- void addTo(StringSink sink) { |
- sink.writeln(JSON.encode(this)); |
- } |
-} |
- |
-/// Notify that an error occurred. |
-abstract class ErrorMessage extends Message { |
- final String error; |
- |
- final String stackTrace; |
- |
- const ErrorMessage(this.error, this.stackTrace); |
- |
- ErrorMessage.fromJsonData(Map<String, dynamic> data) |
- : this(data['error'], data['stackTrace']); |
- |
- Map<String, dynamic> toJson() { |
- Map<String, dynamic> result = super.toJson(); |
- result['error'] = '$error'; |
- result['stackTrace'] = stackTrace == null ? null : '$stackTrace'; |
- return result; |
- } |
- |
- String toString() => "$type($error,$stackTrace)"; |
-} |
- |
-/// Notify that an internal error occurred in this framework (there's a bug in |
-/// the framework). |
-class InternalErrorMessage extends ErrorMessage { |
- const InternalErrorMessage(String error, String stackTrace) |
- : super(error, stackTrace); |
- |
- InternalErrorMessage.fromJsonData(Map<String, dynamic> data) |
- : super.fromJsonData(data); |
- |
- String get type => 'InternalErrorMessage'; |
-} |
- |
-/// Request a listing of all tests. |
-class ListTests extends Message { |
- const ListTests(); |
- |
- String get type => 'ListTests'; |
-} |
- |
-/// List of all tests (the response to [ListTests]). |
-class ListTestsReply extends Message { |
- final List<String> tests; |
- |
- const ListTestsReply(this.tests); |
- |
- ListTestsReply.fromJsonData(Map<String, dynamic> data) |
- : this(data['tests']); |
- |
- String get type => 'ListTestsReply'; |
- |
- Map<String, dynamic> toJson() { |
- Map<String, dynamic> result = super.toJson(); |
- result['tests'] = tests; |
- return result; |
- } |
- |
- String toString() => "$type($tests)"; |
-} |
- |
-/// Abstract message with a name. |
-abstract class NamedMessage extends Message { |
- final String name; |
- |
- const NamedMessage(this.name); |
- |
- NamedMessage.fromJsonData(Map<String, dynamic> data) |
- : this(data['name']); |
- |
- Map<String, dynamic> toJson() { |
- Map<String, dynamic> result = super.toJson(); |
- result['name'] = name; |
- return result; |
- } |
- |
- String toString() => "$type($name)"; |
-} |
- |
-/// Request that test [name] is run. |
-class RunTest extends NamedMessage { |
- const RunTest(String name) |
- : super(name); |
- |
- RunTest.fromJsonData(Map<String, dynamic> data) |
- : super.fromJsonData(data); |
- |
- String get type => 'RunTest'; |
-} |
- |
-/// Notify that test [name] timed out. |
-/// |
-/// This message is bi-directional, it is used by test.dart to tell |
-/// fletch_test_suite.dart that a test has timed out, as well as by |
-/// fletch_test_suite.dart to tell test.dart that the test did in fact time out |
-/// (due to interprocess communication, and lack of synchronization, it is |
-/// possible for a test to complete normally before it is terminated). |
-class TimedOut extends NamedMessage { |
- const TimedOut(String name) |
- : super(name); |
- |
- TimedOut.fromJsonData(Map<String, dynamic> data) |
- : super.fromJsonData(data); |
- |
- String get type => 'TimedOut'; |
-} |
- |
-/// Test [name] failed. A possible reply to [RunTest]. |
-class TestFailed extends ErrorMessage implements NamedMessage { |
- final String name; |
- |
- const TestFailed(this.name, String error, String stackTrace) |
- : super(error, stackTrace); |
- |
- TestFailed.fromJsonData(Map<String, dynamic> data) |
- : this(data['name'], data['error'], data['stackTrace']); |
- |
- String get type => 'TestFailed'; |
- |
- Map<String, dynamic> toJson() { |
- Map<String, dynamic> result = super.toJson(); |
- result['name'] = name; |
- return result; |
- } |
- |
- String toString() => "$type($name, $error, $stackTrace)"; |
-} |
- |
-/// Test [name] passed. A possible reply to [RunTest]. |
-class TestPassed extends NamedMessage { |
- const TestPassed(String name) |
- : super(name); |
- |
- TestPassed.fromJsonData(Map<String, dynamic> data) |
- : this(data['name']); |
- |
- String get type => 'TestPassed'; |
-} |
- |
-/// Debug information. |
-class Info extends Message { |
- final String data; |
- |
- const Info(this.data); |
- |
- Info.fromJsonData(Map<String, dynamic> data) |
- : this(data['data']); |
- |
- String get type => 'Info'; |
- |
- Map<String, dynamic> toJson() { |
- Map<String, dynamic> result = super.toJson(); |
- result['data'] = data; |
- return result; |
- } |
- |
- String toString() => "$type('$data')"; |
-} |
- |
-/// A line on stdout from test [name]. |
-class TestStdoutLine extends NamedMessage { |
- final String line; |
- |
- const TestStdoutLine(String name, this.line) |
- : super(name); |
- |
- TestStdoutLine.fromJsonData(Map<String, dynamic> data) |
- : this(data['name'], data['line']); |
- |
- String get type => 'TestStdoutLine'; |
- |
- Map<String, dynamic> toJson() { |
- Map<String, dynamic> result = super.toJson(); |
- result['line'] = line; |
- return result; |
- } |
- |
- String toString() => "$type($name, $line)"; |
-} |