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

Side by Side Diff: pkg/front_end/test/fasta/tool_test.dart

Issue 3003743002: Move tools to tool folder. (Closed)
Patch Set: Created 3 years, 3 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
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 /// Tests the tool `pkg/front_end/tool/fasta`.
Siggi Cherem (dart-lang) 2017/08/23 20:17:35 yay!
ahe 2017/08/24 11:52:02 Acknowledged.
6
7 import "dart:convert";
8
9 import "dart:io";
10
11 import "package:expect/expect.dart";
12
13 import "package:front_end/src/fasta/fasta_codes.dart"
14 show messageFastaUsageShort;
15
16 const String toolPath = "pkg/front_end/tool/fasta";
17
18 const List<String> subtools = const <String>[
19 "abcompile",
20 "analyzer-compile",
21 "compile",
22 "compile-platform",
23 "compile-platform-dartk",
24 "log",
25 "logd",
26 "outline",
27 "parser",
28 "run",
29 "scanner",
30 "dump-partial",
31 "dump-ir",
32 "kernel-service",
33 "testing",
34 "generate-messages",
35 ];
36
37 const List<String> unsafeTools = const <String>[
Siggi Cherem (dart-lang) 2017/08/23 20:17:35 Please document what does it mean for a tool to be
ahe 2017/08/24 11:52:02 Done.
38 "generate-messages",
39 "logd",
40 "testing",
41 ];
42
43 const JsonEncoder prettyJson = const JsonEncoder.withIndent(" ");
44
45 main() {
46 if (!Platform.isMacOS && !Platform.isLinux) {
47 // The tool is a shell script and only works on Mac and Linux.
Siggi Cherem (dart-lang) 2017/08/23 20:17:35 should we replace it with a Dart script?
ahe 2017/08/24 11:52:02 Yes. I've added a TODO to the script.
48 return;
49 }
50 Set<String> testedSubtools = new Set<String>.from(subtools)
51 .difference(new Set<String>.from(unsafeTools));
52 Map<String, Map<String, dynamic>> resultMap =
53 <String, Map<String, dynamic>>{};
54 for (String subtool in testedSubtools) {
55 print("Testing $subtool");
56 ProcessResult result =
57 Process.runSync("/bin/bash", <String>[toolPath, subtool]);
Siggi Cherem (dart-lang) 2017/08/23 20:17:35 should we also run all tools with a good example s
ahe 2017/08/24 11:52:02 For now, I assume that happens as part of our regu
58 resultMap[subtool] = {
59 "exitCode": result.exitCode,
60 "stdout": result.stdout,
61 "stderr": result.stderr,
62 };
63 }
64 Map<String, dynamic> scanner = resultMap["scanner"];
65 Expect.isTrue(scanner["stdout"].startsWith("Reading files took: "));
66 scanner.remove("stdout");
67
68 Map<String, dynamic> kernelService = resultMap["kernel-service"];
69 Expect.isTrue(kernelService["stderr"].startsWith("Usage: dart ["));
70 kernelService.remove("stderr");
71
72 String jsonResult = prettyJson.convert(resultMap);
73 String usage = messageFastaUsageShort.message;
74
75 String jsonExpectation = prettyJson.convert({
76 "abcompile": {
77 "exitCode": 1,
78 "stdout": """[]
79 Expected -DbRoot=/absolute/path/to/other/sdk/repo
80 """,
81 "stderr": "",
82 },
83 "analyzer-compile": {
84 "exitCode": 2,
85 "stdout": "",
86 "stderr": "'analyzer-compile' isn't supported anymore,"
87 " please use 'compile' instead.\n",
88 },
89 "compile": {
90 "exitCode": 1,
91 "stdout": """Usage: compile [options] dartfile
92
93 Compiles a Dart program to the Dill/Kernel IR format.
94
95 $usage
96 Error: No Dart file specified.
97 """,
98 "stderr": "",
99 },
100 "compile-platform": {
101 "exitCode": 1,
102 "stdout": """
103 Usage: compile_platform [options] patched_sdk fullOutput outlineOutput
104
105 Compiles Dart SDK platform to the Dill/Kernel IR format.
106
107 $usage
108 Error: Expected three arguments.
109 """,
110 "stderr": "",
111 },
112 "compile-platform-dartk": {
113 "exitCode": 2,
114 "stdout": "",
115 "stderr": "Usage: compile-platform-dartk file\n",
116 },
117 "log": {
118 "exitCode": 0,
119 "stdout": "",
120 "stderr": "",
121 },
122 "outline": {
123 "exitCode": 1,
124 "stdout": """Usage: outline [options] dartfile
125
126 Creates an outline of a Dart program in the Dill/Kernel IR format.
127
128 $usage
129 Error: No Dart file specified.
130 """,
131 "stderr": "",
132 },
133 "parser": {
134 "exitCode": 0,
135 "stdout": "",
136 "stderr": "",
137 },
138 "run": {
139 "exitCode": 2,
140 "stdout": "",
141 "stderr": "'run' isn't supported anymore,"
142 " please use 'kernel-service' instead.\n",
143 },
144 "scanner": {
145 "exitCode": 0,
146 "stderr": "",
147 },
148 "dump-partial": {
149 "exitCode": 1,
150 "stdout": "usage: pkg/front_end/tool/fasta dump_partial"
151 " partial.dill [extra1.dill] ... [extraN.dill]\n",
152 "stderr": "",
153 },
154 "dump-ir": {
155 "exitCode": 2,
156 "stdout": "",
157 "stderr": "Usage: dump-ir dillfile [output]\n",
158 },
159 "kernel-service": {
160 "exitCode": 255,
161 "stdout": "",
162 },
163 });
164 Expect.stringEquals(jsonExpectation, jsonResult);
165 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698