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

Side by Side Diff: pkg/smoke/test/args_test.dart

Issue 169913004: Adding package:smoke. This CL includes the intial APIs, a mirror-based (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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 | Annotate | Revision Log
« no previous file with comments | « pkg/smoke/pubspec.yaml ('k') | pkg/smoke/test/common.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2014, 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 for [minArgs] and [maxArgs].
6 library smoke.test.args_test;
7
8 import 'package:smoke/smoke.dart' show minArgs, maxArgs, SUPPORTED_ARGS;
9 import 'package:unittest/unittest.dart';
10
11 main() {
12 var a = new A();
13 var instanceMethods = [ a.m1, a.m2, a.m3, a.m4, a.m5, a.m6, a.m7, a.m8, a.m9,
14 a.m10, a.m11, a.m12, a.m13, a.m14, a.m15, a.m16, a.m17, a.m18, a.m19,
15 a.m20, a.m21];
16 group('instance methods', () => checkMethods(instanceMethods));
17 group('static methods', () => checkMethods(staticMethods));
18 group('closures', () => checkMethods(closures));
19 group('top level methods', () => checkMethods(topLevelMethods));
20 }
21
22 checkMethods(List methods) {
23 test('min args', () {
24 expect(methods.map((m) => minArgs(m)), expectedMin);
25 });
26
27 test('max args', () {
28 expect(methods.map((m) => maxArgs(m)), expectedMax);
29 });
30 }
31
32 class A {
33 // required args only
34 static s1() {}
35 static s2(p1) {}
36 static s3(p1, p2) {}
37 static s4(p1, p2, p3) {}
38 static s5(p1, p2, p3, p4) {}
39 static s6(p1, p2, p3, p4, p5) {}
40
41 // optional args only
42 static s7([o1]) {}
43 static s8([o1, o2]) {}
44 static s9([o1, o2, o3]) {}
45 static s10([o1, o2, o3, o4]) {}
46 static s11([o1, o2, o3, o4, o5]) {}
47
48 // 1 required, some optional
49 static s12(p1, [o2]) {}
50 static s13(p1, [o2, o3]) {}
51 static s14(p1, [o2, o3, o4]) {}
52 static s15(p1, [o2, o3, o4, o5]) {}
53
54 // 2 required, some optional
55 static s16(p1, p2, [o3]) {}
56 static s17(p1, p2, [o3, o4]) {}
57 static s18(p1, p2, [o3, o4, o5]) {}
58
59 // 3 required, some optional
60 static s19(p1, p2, p3, [o4]) {}
61 static s20(p1, p2, p3, [o4, o5]) {}
62
63 // 4 required, some optional
64 static s21(p1, p2, p3, p4, [o5]) {}
65
66 m1() {}
67 m2(p1) {}
68 m3(p1, p2) {}
69 m4(p1, p2, p3) {}
70 m5(p1, p2, p3, p4) {}
71 m6(p1, p2, p3, p4, p5) {}
72 m7([o1]) {}
73 m8([o1, o2]) {}
74 m9([o1, o2, o3]) {}
75 m10([o1, o2, o3, o4]) {}
76 m11([o1, o2, o3, o4, o5]) {}
77 m12(p1, [o2]) {}
78 m13(p1, [o2, o3]) {}
79 m14(p1, [o2, o3, o4]) {}
80 m15(p1, [o2, o3, o4, o5]) {}
81 m16(p1, p2, [o3]) {}
82 m17(p1, p2, [o3, o4]) {}
83 m18(p1, p2, [o3, o4, o5]) {}
84 m19(p1, p2, p3, [o4]) {}
85 m20(p1, p2, p3, [o4, o5]) {}
86 m21(p1, p2, p3, p4, [o5]) {}
87 }
88
89 t1() {}
90 t2(p1) {}
91 t3(p1, p2) {}
92 t4(p1, p2, p3) {}
93 t5(p1, p2, p3, p4) {}
94 t6(p1, p2, p3, p4, p5) {}
95 t7([o1]) {}
96 t8([o1, o2]) {}
97 t9([o1, o2, o3]) {}
98 t10([o1, o2, o3, o4]) {}
99 t11([o1, o2, o3, o4, o5]) {}
100 t12(p1, [o2]) {}
101 t13(p1, [o2, o3]) {}
102 t14(p1, [o2, o3, o4]) {}
103 t15(p1, [o2, o3, o4, o5]) {}
104 t16(p1, p2, [o3]) {}
105 t17(p1, p2, [o3, o4]) {}
106 t18(p1, p2, [o3, o4, o5]) {}
107 t19(p1, p2, p3, [o4]) {}
108 t20(p1, p2, p3, [o4, o5]) {}
109 t21(p1, p2, p3, p4, [o5]) {}
110
111 List closures = [
112 () {},
113 (p1) {},
114 (p1, p2) {},
115 (p1, p2, p3) {},
116 (p1, p2, p3, p4) {},
117 (p1, p2, p3, p4, p5) {},
118 ([o1]) {},
119 ([o1, o2]) {},
120 ([o1, o2, o3]) {},
121 ([o1, o2, o3, o4]) {},
122 ([o1, o2, o3, o4, o5]) {},
123 (p1, [o2]) {},
124 (p1, [o2, o3]) {},
125 (p1, [o2, o3, o4]) {},
126 (p1, [o2, o3, o4, o5]) {},
127 (p1, p2, [o3]) {},
128 (p1, p2, [o3, o4]) {},
129 (p1, p2, [o3, o4, o5]) {},
130 (p1, p2, p3, [o4]) {},
131 (p1, p2, p3, [o4, o5]) {},
132 (p1, p2, p3, p4, [o5]) {},
133 ];
134
135 List staticMethods = [ A.s1, A.s2, A.s3, A.s4, A.s5, A.s6, A.s7, A.s8, A.s9,
136 A.s10, A.s11, A.s12, A.s13, A.s14, A.s15, A.s16, A.s17, A.s18, A.s19,
137 A.s20, A.s21];
138
139 List topLevelMethods = [ t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, t12,
140 t13, t14, t15, t16, t17, t18, t19, t20, t21];
141
142 const MIN_NOT_KNOWN = SUPPORTED_ARGS + 1;
143 List expectedMin = const [
144 0, 1, 2, 3, MIN_NOT_KNOWN, MIN_NOT_KNOWN, // required only
145 0, 0, 0, 0, 0, // optional only
146 1, 1, 1, 1, // 1 required
147 2, 2, 2, // 2 required
148 3, 3, // 3 required
149 MIN_NOT_KNOWN // 4 required
150 ];
151
152 const MAX_NOT_KNOWN = -1;
153 List expectedMax = const [
154 0, 1, 2, 3, MAX_NOT_KNOWN, MAX_NOT_KNOWN, // required only
155 1, 2, 3, 3, 3, // optional only
156 2, 3, 3, 3, // 1 required
157 3, 3, 3, // 2 required
158 3, 3, // 3 required
159 MAX_NOT_KNOWN // 4 required
160 ];
OLDNEW
« no previous file with comments | « pkg/smoke/pubspec.yaml ('k') | pkg/smoke/test/common.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698