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

Unified 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 side-by-side diff with in-line comments
Download patch
« sdk/lib/io/data_transformer.dart ('K') | « sdk/lib/io/data_transformer.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/io/zlib_test.dart
diff --git a/tests/standalone/io/zlib_test.dart b/tests/standalone/io/zlib_test.dart
index 5b0fc492e0b1777d5fbd896a2b3b300ee8d410a5..5167032b45d37714edb33cb3557f0d71faaa79f0 100644
--- a/tests/standalone/io/zlib_test.dart
+++ b/tests/standalone/io/zlib_test.dart
@@ -8,28 +8,6 @@ import 'dart:io';
import "package:async_helper/async_helper.dart";
import "package:expect/expect.dart";
-void testZLibDeflate() {
- test(int level, List<int> expected) {
- asyncStart();
- var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
- var controller = new StreamController(sync: true);
- controller.stream.transform(new ZLibEncoder(gzip: false, level: level))
- .fold([], (buffer, data) {
- buffer.addAll(data);
- return buffer;
- })
- .then((data) {
- Expect.listEquals(expected, data);
- asyncEnd();
- });
- controller.add(data);
- controller.close();
- }
- test(6, [120, 156, 99, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 175,
- 0, 46]);
-}
-
-
void testZLibDeflateEmpty() {
asyncStart();
var controller = new StreamController(sync: true);
@@ -45,6 +23,42 @@ void testZLibDeflateEmpty() {
controller.close();
}
+void testZLibDeflateEmptyGzip() {
+ asyncStart();
+ var controller = new StreamController(sync: true);
+ controller.stream.transform(new ZLibEncoder(gzip: true, level: 6))
+ .fold([], (buffer, data) {
+ buffer.addAll(data);
+ return buffer;
+ })
+ .then((data) {
+ Expect.listEquals([31, 139, 8, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0], data);
+ asyncEnd();
+ });
+ controller.close();
+}
+
+void testZLibDeflate() {
+ test(int level, List<int> expected) {
+ asyncStart();
+ var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
+ var controller = new StreamController(sync: true);
+ controller.stream.transform(new ZLibEncoder(gzip: false, level: level))
+ .fold([], (buffer, data) {
+ buffer.addAll(data);
+ return buffer;
+ })
+ .then((data) {
+ Expect.listEquals(expected, data);
+ asyncEnd();
+ });
+ controller.add(data);
+ controller.close();
+ }
+ test(6, [120, 156, 99, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0, 0, 175,
+ 0, 46]);
+}
void testZLibDeflateGZip() {
asyncStart();
@@ -67,13 +81,31 @@ void testZLibDeflateGZip() {
controller.close();
}
+void testZLibDeflateRaw() {
+ test(int level, List<int> expected) {
+ asyncStart();
+ var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
+ var controller = new StreamController(sync: true);
+ controller.stream.transform(new ZLibEncoder(raw: true, level: level))
+ .fold([], (buffer, data) {
+ buffer.addAll(data);
+ return buffer;
+ })
+ .then((data) {
+ print(data);
+ Expect.listEquals(expected, data);
+ asyncEnd();
+ });
+ controller.add(data);
+ controller.close();
+ }
+ test(6, [99, 96, 100, 98, 102, 97, 101, 99, 231, 224, 4, 0]);
+}
+
void testZLibDeflateInvalidLevel() {
test2(gzip, level) {
- try {
- new ZLibEncoder(gzip: gzip, level: level).startChunkedConversion(null);
- Expect.fail("No exception thrown");
- } catch (e) {
- }
+ var encoder = new ZLibEncoder(gzip: gzip, level: level);
+ Expect.throws(() => encoder.startChunkedConversion(null));
}
test(level) {
test2(false, level);
@@ -116,6 +148,30 @@ void testZLibInflate() {
}
}
+void testZLibInflateRaw() {
+ test(int level) {
+ asyncStart();
+ var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
+ var controller = new StreamController(sync: true);
+ controller.stream
+ .transform(new ZLibEncoder(raw: true, level: level))
+ .transform(new ZLibDecoder(raw: true))
+ .fold([], (buffer, data) {
+ buffer.addAll(data);
+ return buffer;
+ })
+ .then((inflated) {
+ Expect.listEquals(data, inflated);
+ asyncEnd();
+ });
+ controller.add(data);
+ controller.close();
+ }
+ for (int i = -1; i < 10; i++) {
+ test(i);
+ }
+}
+
void testZLibInflateSync() {
test2(bool gzip, int level) {
var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
@@ -132,13 +188,54 @@ void testZLibInflateSync() {
}
}
+void testZlibInflateThrowsWithSmallerWindow() {
+ var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
+ var encoder = new ZLibEncoder(windowBits: 10);
+ var encodedData = encoder.convert(data);
+ var decoder = new ZLibDecoder(windowBits: 8);
+ Expect.throws(() => decoder.convert(encodedData));
+}
+
+void testZlibInflateWithLargerWindow() {
+ test2(bool gzip, int level) {
+ asyncStart();
+ var data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
+ var controller = new StreamController(sync: true);
+ controller.stream
+ .transform(new ZLibEncoder(gzip: gzip, level: level, windowBits: 8))
+ .transform(new ZLibDecoder(windowBits: 10))
+ .fold([], (buffer, data) {
+ buffer.addAll(data);
+ return buffer;
+ })
+ .then((inflated) {
+ Expect.listEquals(data, inflated);
+ asyncEnd();
+ });
+ controller.add(data);
+ controller.close();
+ }
+ void test(int level) {
+ test2(false, level);
+ test2(true, level);
+ }
+ for (int i = -1; i < 10; i++) {
+ test(i);
+ }
+}
+
void main() {
asyncStart();
testZLibDeflate();
testZLibDeflateEmpty();
+ testZLibDeflateEmptyGzip();
testZLibDeflateGZip();
testZLibDeflateInvalidLevel();
testZLibInflate();
testZLibInflateSync();
+ testZlibInflateThrowsWithSmallerWindow();
+ testZlibInflateWithLargerWindow();
+ testZLibDeflateRaw();
+ testZLibInflateRaw();
asyncEnd();
}
« 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