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

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

Issue 12609004: Change all File APIs to make the mode and encoding arguments named (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed review comments and changed other use places Created 7 years, 9 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 // '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.directorySync); 21 doItSync(f.directorySync);
22 doItSync(f.lengthSync); 22 doItSync(f.lengthSync);
23 doItSync(f.modifiedSync); 23 doItSync(f.modifiedSync);
24 doItSync(f.fullPathSync); 24 doItSync(f.fullPathSync);
25 doItSync(() => f.openRead().listen(() {}, onError: (e) {})); 25 doItSync(() => f.openRead().listen(() {}, onError: (e) {}));
26 doItSync(f.readAsBytesSync); 26 doItSync(f.readAsBytesSync);
27 doItSync(f.readAsStringSync); 27 doItSync(f.readAsStringSync);
28 doItSync(f.readAsLinesSync); 28 doItSync(f.readAsLinesSync);
29 typeMapping.forEach((k2, v2) { 29 typeMapping.forEach((k2, v2) {
30 doItSync(() => f.openSync(v2)); 30 doItSync(() => f.openSync(mode: v2));
31 doItSync(() => f.openWrite(mode: v2)); 31 doItSync(() => f.openWrite(mode: v2));
32 doItSync(() => f.readAsStringSync(v2)); 32 doItSync(() => f.readAsStringSync(v2));
33 doItSync(() => f.readAsLinesSync(v2)); 33 doItSync(() => f.readAsLinesSync(v2));
34 }); 34 });
35 }); 35 });
36 }); 36 });
37 } 37 }
38 38
39 fuzzAsyncMethods() { 39 fuzzAsyncMethods() {
40 var port = new ReceivePort(); 40 var port = new ReceivePort();
(...skipping 22 matching lines...) Expand all
63 } 63 }
64 64
65 65
66 fuzzSyncRandomAccessMethods() { 66 fuzzSyncRandomAccessMethods() {
67 var d = new Directory(''); 67 var d = new Directory('');
68 var temp = d.createTempSync(); 68 var temp = d.createTempSync();
69 var file = new File('${temp.path}/x'); 69 var file = new File('${temp.path}/x');
70 file.createSync(); 70 file.createSync();
71 var modes = [ FileMode.READ, FileMode.WRITE, FileMode.APPEND ]; 71 var modes = [ FileMode.READ, FileMode.WRITE, FileMode.APPEND ];
72 for (var m in modes) { 72 for (var m in modes) {
73 var opened = file.openSync(m); 73 var opened = file.openSync(mode: m);
74 typeMapping.forEach((k, v) { 74 typeMapping.forEach((k, v) {
75 doItSync(() => opened.setPositionSync(v)); 75 doItSync(() => opened.setPositionSync(v));
76 doItSync(() => opened.truncateSync(v)); 76 doItSync(() => opened.truncateSync(v));
77 doItSync(() => opened.writeByteSync(v)); 77 doItSync(() => opened.writeByteSync(v));
78 }); 78 });
79 for (var p in typePermutations(2)) { 79 for (var p in typePermutations(2)) {
80 doItSync(() => opened.writeStringSync(p[0], p[1])); 80 doItSync(() => opened.writeStringSync(p[0], p[1]));
81 } 81 }
82 for (var p in typePermutations(3)) { 82 for (var p in typePermutations(3)) {
83 doItSync(() => opened.readListSync(p[0], p[1], p[2])); 83 doItSync(() => opened.readListSync(p[0], p[1], p[2]));
84 doItSync(() => opened.writeListSync(p[0], p[1], p[2])); 84 doItSync(() => opened.writeListSync(p[0], p[1], p[2]));
85 } 85 }
86 opened.closeSync(); 86 opened.closeSync();
87 } 87 }
88 temp.deleteSync(recursive: true); 88 temp.deleteSync(recursive: true);
89 } 89 }
90 90
91 fuzzAsyncRandomAccessMethods() { 91 fuzzAsyncRandomAccessMethods() {
92 var d = new Directory(''); 92 var d = new Directory('');
93 var temp = d.createTempSync(); 93 var temp = d.createTempSync();
94 var file = new File('${temp.path}/x'); 94 var file = new File('${temp.path}/x');
95 file.createSync(); 95 file.createSync();
96 var modes = [ FileMode.READ, FileMode.WRITE, FileMode.APPEND ]; 96 var modes = [ FileMode.READ, FileMode.WRITE, FileMode.APPEND ];
97 var futures = []; 97 var futures = [];
98 var openedFiles = []; 98 var openedFiles = [];
99 for (var m in modes) { 99 for (var m in modes) {
100 var opened = file.openSync(m); 100 var opened = file.openSync(mode: m);
101 openedFiles.add(opened); 101 openedFiles.add(opened);
102 typeMapping.forEach((k, v) { 102 typeMapping.forEach((k, v) {
103 futures.add(doItAsync(() => opened.setPosition(v))); 103 futures.add(doItAsync(() => opened.setPosition(v)));
104 futures.add(doItAsync(() => opened.truncate(v))); 104 futures.add(doItAsync(() => opened.truncate(v)));
105 futures.add(doItAsync(() => opened.writeByte(v))); 105 futures.add(doItAsync(() => opened.writeByte(v)));
106 }); 106 });
107 for (var p in typePermutations(2)) { 107 for (var p in typePermutations(2)) {
108 futures.add(doItAsync(() => opened.writeString(p[0], p[1]))); 108 futures.add(doItAsync(() => opened.writeString(p[0], p[1])));
109 } 109 }
110 for (var p in typePermutations(3)) { 110 for (var p in typePermutations(3)) {
111 futures.add(doItAsync(() => opened.readList(p[0], p[1], p[2]))); 111 futures.add(doItAsync(() => opened.readList(p[0], p[1], p[2])));
112 futures.add(doItAsync(() => opened.writeList(p[0], p[1], p[2]))); 112 futures.add(doItAsync(() => opened.writeList(p[0], p[1], p[2])));
113 } 113 }
114 } 114 }
115 Future.wait(futures).then((ignore) { 115 Future.wait(futures).then((ignore) {
116 for (var opened in openedFiles) { 116 for (var opened in openedFiles) {
117 opened.closeSync(); 117 opened.closeSync();
118 } 118 }
119 temp.deleteSync(recursive: true); 119 temp.deleteSync(recursive: true);
120 }); 120 });
121 } 121 }
122 122
123 main() { 123 main() {
124 fuzzSyncMethods(); 124 fuzzSyncMethods();
125 fuzzAsyncMethods(); 125 fuzzAsyncMethods();
126 fuzzSyncRandomAccessMethods(); 126 fuzzSyncRandomAccessMethods();
127 fuzzAsyncRandomAccessMethods(); 127 fuzzAsyncRandomAccessMethods();
128 } 128 }
OLDNEW
« no previous file with comments | « tests/standalone/io/file_error_test.dart ('k') | tests/standalone/io/file_input_stream_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698