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

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

Issue 18496011: Clean up dart:io warnings/errors found by analyzer tests. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 5 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 | « sdk/lib/io/string_transformer.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // 'fuzz' test the file APIs by providing unexpected type arguments. The test 5 // 'fuzz' test the file APIs by providing unexpected type arguments. The test
6 // passes if the VM does not crash. 6 // passes if the VM does not crash.
7 7
8 import 'dart:async'; 8 import 'dart:async';
9 import 'dart:io'; 9 import 'dart:io';
10 import 'dart:isolate'; 10 import 'dart:isolate';
11 11
12 import 'fuzz_support.dart'; 12 import 'fuzz_support.dart';
13 13
14 fuzzSyncMethods() { 14 fuzzSyncMethods() {
15 typeMapping.forEach((k, v) { 15 typeMapping.forEach((k, v) {
16 doItSync(() { 16 doItSync(() {
17 var f = new File(v); 17 var f = new File(v);
18 doItSync(f.existsSync); 18 doItSync(f.existsSync);
19 doItSync(f.createSync); 19 doItSync(f.createSync);
20 doItSync(f.deleteSync); 20 doItSync(f.deleteSync);
21 doItSync(f.lengthSync); 21 doItSync(f.lengthSync);
22 doItSync(f.modifiedSync); 22 doItSync(f.modifiedSync);
23 doItSync(f.fullPathSync); 23 doItSync(f.fullPathSync);
24 doItSync(() => f.openRead().listen(() {}, onError: (e) {})); 24 doItSync(() => f.openRead().listen((_) {}, onError: (e) {}));
25 doItSync(f.readAsBytesSync); 25 doItSync(f.readAsBytesSync);
26 doItSync(f.readAsStringSync); 26 doItSync(f.readAsStringSync);
27 doItSync(f.readAsLinesSync); 27 doItSync(f.readAsLinesSync);
28 typeMapping.forEach((k2, v2) { 28 typeMapping.forEach((k2, v2) {
29 doItSync(() => f.openSync(mode: v2)); 29 doItSync(() => f.openSync(mode: v2));
30 doItSync(() => f.openWrite(mode: v2)); 30 doItSync(() => f.openWrite(mode: v2));
31 doItSync(() => f.readAsStringSync(v2)); 31 doItSync(() => f.readAsStringSync(encoding: v2));
32 doItSync(() => f.readAsLinesSync(v2)); 32 doItSync(() => f.readAsLinesSync(encoding: v2));
33 }); 33 });
34 }); 34 });
35 }); 35 });
36 } 36 }
37 37
38 fuzzAsyncMethods() { 38 fuzzAsyncMethods() {
39 var port = new ReceivePort(); 39 var port = new ReceivePort();
40 var futures = []; 40 var futures = [];
41 typeMapping.forEach((k, v) { 41 typeMapping.forEach((k, v) {
42 doItSync(() { 42 doItSync(() {
43 var f = new File(v); 43 var f = new File(v);
44 futures.add(doItAsync(f.exists)); 44 futures.add(doItAsync(f.exists));
45 futures.add(doItAsync(f.delete)); 45 futures.add(doItAsync(f.delete));
46 futures.add(doItAsync(f.directory)); 46 futures.add(doItAsync(f.directory));
47 futures.add(doItAsync(f.length)); 47 futures.add(doItAsync(f.length));
48 futures.add(doItAsync(f.modified)); 48 futures.add(doItAsync(f.modified));
49 futures.add(doItAsync(f.open)); 49 futures.add(doItAsync(f.open));
50 futures.add(doItAsync(f.fullPath)); 50 futures.add(doItAsync(f.fullPath));
51 futures.add(doItAsync(f.readAsBytes)); 51 futures.add(doItAsync(f.readAsBytes));
52 futures.add(doItAsync(f.readAsLines)); 52 futures.add(doItAsync(f.readAsLines));
53 futures.add(doItAsync(f.readAsString)); 53 futures.add(doItAsync(f.readAsString));
54 typeMapping.forEach((k2, v2) { 54 typeMapping.forEach((k2, v2) {
55 futures.add(doItAsync(() => f.open(v2))); 55 futures.add(doItAsync(() => f.open(mode: v2)));
56 futures.add(doItAsync(() => f.readAsString(v2))); 56 futures.add(doItAsync(() => f.readAsString(encoding: v2)));
57 futures.add(doItAsync(() => f.readAsLines(v2))); 57 futures.add(doItAsync(() => f.readAsLines(encoding: v2)));
58 }); 58 });
59 }); 59 });
60 }); 60 });
61 Future.wait(futures).then((ignore) => port.close()); 61 Future.wait(futures).then((ignore) => port.close());
62 } 62 }
63 63
64 64
65 fuzzSyncRandomAccessMethods() { 65 fuzzSyncRandomAccessMethods() {
66 var d = new Directory(''); 66 var d = new Directory('');
67 var temp = d.createTempSync(); 67 var temp = d.createTempSync();
68 var file = new File('${temp.path}/x'); 68 var file = new File('${temp.path}/x');
69 file.createSync(); 69 file.createSync();
70 var modes = [ FileMode.READ, FileMode.WRITE, FileMode.APPEND ]; 70 var modes = [ FileMode.READ, FileMode.WRITE, FileMode.APPEND ];
71 for (var m in modes) { 71 for (var m in modes) {
72 var opened = file.openSync(mode: m); 72 var opened = file.openSync(mode: m);
73 typeMapping.forEach((k, v) { 73 typeMapping.forEach((k, v) {
74 doItSync(() => opened.setPositionSync(v)); 74 doItSync(() => opened.setPositionSync(v));
75 doItSync(() => opened.truncateSync(v)); 75 doItSync(() => opened.truncateSync(v));
76 doItSync(() => opened.writeByteSync(v)); 76 doItSync(() => opened.writeByteSync(v));
77 }); 77 });
78 for (var p in typePermutations(2)) { 78 for (var p in typePermutations(2)) {
79 doItSync(() => opened.writeStringSync(p[0], p[1])); 79 doItSync(() => opened.writeStringSync(p[0], encoding: p[1]));
80 } 80 }
81 for (var p in typePermutations(3)) { 81 for (var p in typePermutations(3)) {
82 doItSync(() => opened.readIntoSync(p[0], p[1], p[2])); 82 doItSync(() => opened.readIntoSync(p[0], p[1], p[2]));
83 doItSync(() => opened.writeFromSync(p[0], p[1], p[2])); 83 doItSync(() => opened.writeFromSync(p[0], p[1], p[2]));
84 } 84 }
85 opened.closeSync(); 85 opened.closeSync();
86 } 86 }
87 temp.deleteSync(recursive: true); 87 temp.deleteSync(recursive: true);
88 } 88 }
89 89
90 fuzzAsyncRandomAccessMethods() { 90 fuzzAsyncRandomAccessMethods() {
91 var d = new Directory(''); 91 var d = new Directory('');
92 var temp = d.createTempSync(); 92 var temp = d.createTempSync();
93 var file = new File('${temp.path}/x'); 93 var file = new File('${temp.path}/x');
94 file.createSync(); 94 file.createSync();
95 var modes = [ FileMode.READ, FileMode.WRITE, FileMode.APPEND ]; 95 var modes = [ FileMode.READ, FileMode.WRITE, FileMode.APPEND ];
96 var futures = []; 96 var futures = [];
97 var openedFiles = []; 97 var openedFiles = [];
98 for (var m in modes) { 98 for (var m in modes) {
99 var opened = file.openSync(mode: m); 99 var opened = file.openSync(mode: m);
100 openedFiles.add(opened); 100 openedFiles.add(opened);
101 typeMapping.forEach((k, v) { 101 typeMapping.forEach((k, v) {
102 futures.add(doItAsync(() => opened.setPosition(v))); 102 futures.add(doItAsync(() => opened.setPosition(v)));
103 futures.add(doItAsync(() => opened.truncate(v))); 103 futures.add(doItAsync(() => opened.truncate(v)));
104 futures.add(doItAsync(() => opened.writeByte(v))); 104 futures.add(doItAsync(() => opened.writeByte(v)));
105 }); 105 });
106 for (var p in typePermutations(2)) { 106 for (var p in typePermutations(2)) {
107 futures.add(doItAsync(() => opened.writeString(p[0], p[1]))); 107 futures.add(doItAsync(() => opened.writeString(p[0], encoding: p[1])));
108 } 108 }
109 for (var p in typePermutations(3)) { 109 for (var p in typePermutations(3)) {
110 futures.add(doItAsync(() => opened.readInto(p[0], p[1], p[2]))); 110 futures.add(doItAsync(() => opened.readInto(p[0], p[1], p[2])));
111 futures.add(doItAsync(() => opened.writeFrom(p[0], p[1], p[2]))); 111 futures.add(doItAsync(() => opened.writeFrom(p[0], p[1], p[2])));
112 } 112 }
113 } 113 }
114 Future.wait(futures).then((ignore) { 114 Future.wait(futures).then((ignore) {
115 for (var opened in openedFiles) { 115 for (var opened in openedFiles) {
116 opened.closeSync(); 116 opened.closeSync();
117 } 117 }
118 temp.deleteSync(recursive: true); 118 temp.deleteSync(recursive: true);
119 }); 119 });
120 } 120 }
121 121
122 main() { 122 main() {
123 fuzzSyncMethods(); 123 fuzzSyncMethods();
124 fuzzAsyncMethods(); 124 fuzzAsyncMethods();
125 fuzzSyncRandomAccessMethods(); 125 fuzzSyncRandomAccessMethods();
126 fuzzAsyncRandomAccessMethods(); 126 fuzzAsyncRandomAccessMethods();
127 } 127 }
OLDNEW
« no previous file with comments | « sdk/lib/io/string_transformer.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698