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

Side by Side Diff: tests/standalone/io/zlib_test.dart

Issue 130513003: [ZLIB] Add support for windowBits, memLevel, raw (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Add support for memLevel Created 6 years, 11 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
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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:async'; 5 import 'dart:async';
6 import 'dart:io'; 6 import 'dart:io';
7 7
8 import "package:async_helper/async_helper.dart"; 8 import "package:async_helper/async_helper.dart";
9 import "package:expect/expect.dart"; 9 import "package:expect/expect.dart";
10 10
11 void testZLibDeflate() {
12 test(int level, List<int> expected) {
13 asyncStart();
14 var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
15 var controller = new StreamController(sync: true);
16 controller.stream.transform(new ZLibEncoder(gzip: false, level: level))
17 .fold([], (buffer, data) {
18 buffer.addAll(data);
19 return buffer;
20 })
21 .then((data) {
22 Expect.listEquals(expected, data);
23 asyncEnd();
24 });
25 controller.add(data);
26 controller.close();
27 }
28 test(6, [120, 156, 99, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 175,
29 0, 46]);
30 }
31
32
33 void testZLibDeflateEmpty() { 11 void testZLibDeflateEmpty() {
34 asyncStart(); 12 asyncStart();
35 var controller = new StreamController(sync: true); 13 var controller = new StreamController(sync: true);
36 controller.stream.transform(new ZLibEncoder(gzip: false, level: 6)) 14 controller.stream.transform(new ZLibEncoder(gzip: false, level: 6))
37 .fold([], (buffer, data) { 15 .fold([], (buffer, data) {
38 buffer.addAll(data); 16 buffer.addAll(data);
39 return buffer; 17 return buffer;
40 }) 18 })
41 .then((data) { 19 .then((data) {
42 Expect.listEquals([120, 156, 3, 0, 0, 0, 0, 1], data); 20 Expect.listEquals([120, 156, 3, 0, 0, 0, 0, 1], data);
43 asyncEnd(); 21 asyncEnd();
44 }); 22 });
45 controller.close(); 23 controller.close();
46 } 24 }
47 25
26 void testZLibDeflateEmptyGzip() {
27 asyncStart();
28 var controller = new StreamController(sync: true);
29 controller.stream.transform(new ZLibEncoder(gzip: true, level: 6))
30 .fold([], (buffer, data) {
31 buffer.addAll(data);
32 return buffer;
33 })
34 .then((data) {
35 Expect.listEquals([31, 139, 8, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0,
36 0, 0], data);
37 asyncEnd();
38 });
39 controller.close();
40 }
41
42 void testZLibDeflate() {
43 test(int level, List<int> expected) {
44 asyncStart();
45 var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
46 var controller = new StreamController(sync: true);
47 controller.stream.transform(new ZLibEncoder(gzip: false, level: level))
48 .fold([], (buffer, data) {
49 buffer.addAll(data);
50 return buffer;
51 })
52 .then((data) {
53 Expect.listEquals(expected, data);
54 asyncEnd();
55 });
56 controller.add(data);
57 controller.close();
58 }
59 test(6, [120, 156, 99, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 175,
60 0, 46]);
61 }
48 62
49 void testZLibDeflateGZip() { 63 void testZLibDeflateGZip() {
50 asyncStart(); 64 asyncStart();
51 var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 65 var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
52 var controller = new StreamController(sync: true); 66 var controller = new StreamController(sync: true);
53 controller.stream.transform(new ZLibEncoder(gzip: true)) 67 controller.stream.transform(new ZLibEncoder(gzip: true))
54 .fold([], (buffer, data) { 68 .fold([], (buffer, data) {
55 buffer.addAll(data); 69 buffer.addAll(data);
56 return buffer; 70 return buffer;
57 }) 71 })
58 .then((data) { 72 .then((data) {
59 Expect.equals(30, data.length); 73 Expect.equals(30, data.length);
60 Expect.listEquals([99, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 74 Expect.listEquals([99, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0,
61 70, 215, 108, 69, 10, 0, 0, 0], 75 70, 215, 108, 69, 10, 0, 0, 0],
62 // Skip header, as it can change. 76 // Skip header, as it can change.
63 data.sublist(10)); 77 data.sublist(10));
64 asyncEnd(); 78 asyncEnd();
65 }); 79 });
66 controller.add(data); 80 controller.add(data);
67 controller.close(); 81 controller.close();
68 } 82 }
69 83
84 void testZLibDeflateRaw() {
85 test(int level, List<int> expected) {
86 asyncStart();
87 var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
88 var controller = new StreamController(sync: true);
89 controller.stream.transform(new ZLibEncoder(raw: true, level: level))
90 .fold([], (buffer, data) {
91 buffer.addAll(data);
92 return buffer;
93 })
94 .then((data) {
95 print(data);
96 Expect.listEquals(expected, data);
97 asyncEnd();
98 });
99 controller.add(data);
100 controller.close();
101 }
102 test(6, [99, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0]);
103 }
104
70 void testZLibDeflateInvalidLevel() { 105 void testZLibDeflateInvalidLevel() {
71 test2(gzip, level) { 106 test2(gzip, level) {
72 try { 107 var encoder = new ZLibEncoder(gzip: gzip, level: level);
73 new ZLibEncoder(gzip: gzip, level: level).startChunkedConversion(null); 108 Expect.throws(() => encoder.startChunkedConversion(null));
74 Expect.fail("No exception thrown");
75 } catch (e) {
76 }
77 } 109 }
78 test(level) { 110 test(level) {
79 test2(false, level); 111 test2(false, level);
80 test2(true, level); 112 test2(true, level);
81 test2(9, level); 113 test2(9, level);
82 } 114 }
83 test(-2); 115 test(-2);
84 test(-20); 116 test(-20);
85 test(10); 117 test(10);
86 test(42); 118 test(42);
(...skipping 22 matching lines...) Expand all
109 } 141 }
110 void test(int level) { 142 void test(int level) {
111 test2(false, level); 143 test2(false, level);
112 test2(true, level); 144 test2(true, level);
113 } 145 }
114 for (int i = -1; i < 10; i++) { 146 for (int i = -1; i < 10; i++) {
115 test(i); 147 test(i);
116 } 148 }
117 } 149 }
118 150
151 void testZLibInflateRaw() {
152 test(int level) {
153 asyncStart();
154 var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
155 var controller = new StreamController(sync: true);
156 controller.stream
157 .transform(new ZLibEncoder(raw: true, level: level))
158 .transform(new ZLibDecoder(raw: true))
159 .fold([], (buffer, data) {
160 buffer.addAll(data);
161 return buffer;
162 })
163 .then((inflated) {
164 Expect.listEquals(data, inflated);
165 asyncEnd();
166 });
167 controller.add(data);
168 controller.close();
169 }
170 for (int i = -1; i < 10; i++) {
171 test(i);
172 }
173 }
174
119 void testZLibInflateSync() { 175 void testZLibInflateSync() {
120 test2(bool gzip, int level) { 176 test2(bool gzip, int level) {
121 var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; 177 var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
122 var encoded = new ZLibEncoder(gzip: gzip, level: level).convert(data); 178 var encoded = new ZLibEncoder(gzip: gzip, level: level).convert(data);
123 var decoded = new ZLibDecoder().convert(encoded); 179 var decoded = new ZLibDecoder().convert(encoded);
124 Expect.listEquals(data, decoded); 180 Expect.listEquals(data, decoded);
125 } 181 }
126 void test(int level) { 182 void test(int level) {
127 test2(false, level); 183 test2(false, level);
128 test2(true, level); 184 test2(true, level);
129 } 185 }
130 for (int i = -1; i < 10; i++) { 186 for (int i = -1; i < 10; i++) {
131 test(i); 187 test(i);
132 } 188 }
133 } 189 }
134 190
191 void testZlibInflateThrowsWithSmallerWindow() {
192 var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
193 var encoder = new ZLibEncoder(windowBits: 10);
194 var encodedData = encoder.convert(data);
195 var decoder = new ZLibDecoder(windowBits: 8);
196 Expect.throws(() => decoder.convert(encodedData));
197 }
198
199 void testZlibInflateWithLargerWindow() {
200 test2(bool gzip, int level) {
201 asyncStart();
202 var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
203 var controller = new StreamController(sync: true);
204 controller.stream
205 .transform(new ZLibEncoder(gzip: gzip, level: level, windowBits: 8))
206 .transform(new ZLibDecoder(windowBits: 10))
207 .fold([], (buffer, data) {
208 buffer.addAll(data);
209 return buffer;
210 })
211 .then((inflated) {
212 Expect.listEquals(data, inflated);
213 asyncEnd();
214 });
215 controller.add(data);
216 controller.close();
217 }
218 void test(int level) {
219 test2(false, level);
220 test2(true, level);
221 }
222 for (int i = -1; i < 10; i++) {
223 test(i);
224 }
225 }
226
135 void main() { 227 void main() {
136 asyncStart(); 228 asyncStart();
137 testZLibDeflate(); 229 testZLibDeflate();
138 testZLibDeflateEmpty(); 230 testZLibDeflateEmpty();
231 testZLibDeflateEmptyGzip();
139 testZLibDeflateGZip(); 232 testZLibDeflateGZip();
140 testZLibDeflateInvalidLevel(); 233 testZLibDeflateInvalidLevel();
141 testZLibInflate(); 234 testZLibInflate();
142 testZLibInflateSync(); 235 testZLibInflateSync();
236 testZlibInflateThrowsWithSmallerWindow();
237 testZlibInflateWithLargerWindow();
238 testZLibDeflateRaw();
239 testZLibInflateRaw();
143 asyncEnd(); 240 asyncEnd();
144 } 241 }
OLDNEW
« sdk/lib/io/data_transformer.dart ('K') | « sdk/lib/io/data_transformer.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698