@@ -34,12 +34,15 @@ function computeIsLittleEndian() {
34
34
}
35
35
36
36
const isLittleEndian = computeIsLittleEndian ( ) ;
37
+ let globalCounter = 0 ;
37
38
38
- function randomFileContents ( bytes = ( ( Math . random ( ) * 128 ) >>> 0 ) + 2056 ) {
39
- let result = new ArrayBuffer ( bytes ) ;
39
+ function randomFileContents ( ) {
40
+ const numBytes = ( globalCounter % 128 ) + 2056 ;
41
+ globalCounter ++ ;
42
+ let result = new ArrayBuffer ( numBytes ) ;
40
43
let view = new Uint8Array ( result ) ;
41
- for ( let i = 0 ; i < bytes ; ++ i )
42
- view [ i ] = ( Math . random ( ) * 255 ) >>> 0 ;
44
+ for ( let i = 0 ; i < numBytes ; ++ i )
45
+ view [ i ] = ( i + globalCounter ) % 255 ;
43
46
return new DataView ( result ) ;
44
47
}
45
48
@@ -112,7 +115,7 @@ class Directory {
112
115
} else {
113
116
yield item ;
114
117
}
115
- }
118
+ }
116
119
}
117
120
118
121
async * forEachDirectoryRecursively ( ) {
@@ -124,7 +127,7 @@ class Directory {
124
127
yield dirItem ;
125
128
126
129
yield item ;
127
- }
130
+ }
128
131
}
129
132
130
133
async fileCount ( ) {
@@ -145,19 +148,22 @@ class Directory {
145
148
async function setupDirectory ( ) {
146
149
const fs = new Directory ;
147
150
let dirs = [ fs ] ;
151
+ let counter = 0 ;
148
152
for ( let dir of dirs ) {
149
- for ( let i = 0 ; i < 8 ; ++ i ) {
150
- if ( dirs . length < 250 && Math . random ( ) >= 0.3 ) {
153
+ for ( let i = 0 ; i < 10 ; ++ i ) {
154
+ if ( dirs . length < 400 && ( counter % 3 ) <= 1 ) {
151
155
dirs . push ( await dir . addDirectory ( `dir-${ i } ` ) ) ;
152
156
}
157
+ counter ++ ;
153
158
}
154
159
}
155
160
156
161
for ( let dir of dirs ) {
157
162
for ( let i = 0 ; i < 5 ; ++ i ) {
158
- if ( Math . random ( ) >= 0.6 ) {
163
+ if ( ( counter % 3 ) === 0 ) {
159
164
await dir . addFile ( `file-${ i } ` , new File ( randomFileContents ( ) ) ) ;
160
165
}
166
+ counter ++ ;
161
167
}
162
168
}
163
169
@@ -178,7 +184,6 @@ class Benchmark {
178
184
let result = await dir . rm ( name ) ;
179
185
if ( ! result )
180
186
throw new Error ( "rm should have returned true" ) ;
181
-
182
187
}
183
188
}
184
189
}
0 commit comments