Spaces:
Sleeping
Sleeping
| const log_error = require("../lib/log_error"); | |
| module.exports = registry => { | |
| registry.add_bench('write.tiny', { | |
| name: 'write 30 tiny files', | |
| do: async t => { | |
| for ( let i=0 ; i < 30 ; i++ ) { | |
| await t.write(`tiny_${i}.txt`, 'example\n', { overwrite: true }); | |
| } | |
| } | |
| }); | |
| registry.add_bench('batch.mkdir-and-write', { | |
| name: 'make directories and write', | |
| do: async t => { | |
| const batch = []; | |
| for ( let i=0 ; i < 30 ; i++ ) { | |
| batch.push({ | |
| op: 'mkdir', | |
| path: t.resolve(`dir_${i}`), | |
| }); | |
| batch.push({ | |
| op: 'write', | |
| path: t.resolve(`tiny_${i}.txt`), | |
| }); | |
| } | |
| await t.batch('batch', batch, Array(30).fill('example\n')); | |
| } | |
| }); | |
| registry.add_bench('batch.mkdir-deps.1', { | |
| name: 'make directories and write', | |
| do: async t => { | |
| const batch = []; | |
| const blobs = []; | |
| for ( let j=0 ; j < 3 ; j++ ) { | |
| batch.push({ | |
| op: 'mkdir', | |
| path: t.resolve('dir_root'), | |
| as: 'root', | |
| }) | |
| for ( let i=0 ; i < 10 ; i++ ) { | |
| batch.push({ | |
| op: 'write', | |
| path: `$root/test_${i}.txt` | |
| }); | |
| blobs.push('example\n'); | |
| } | |
| } | |
| await t.batch('batch', batch, blobs); | |
| } | |
| }); | |
| // TODO: write explicit test for multiple directories with the same name | |
| // in a batch so that batch can eventually resolve this situation and not | |
| // do something incredibly silly. | |
| registry.add_bench('batch.mkdir-deps.2', { | |
| name: 'make directories and write', | |
| do: async t => { | |
| const batch = []; | |
| const blobs = []; | |
| for ( let j=0 ; j < 3 ; j++ ) { | |
| batch.push({ | |
| op: 'mkdir', | |
| path: t.resolve(`dir_${j}`), | |
| as: `dir_${j}`, | |
| }) | |
| for ( let k=0 ; k < 3 ; k++ ) { | |
| batch.push({ | |
| op: 'mkdir', | |
| parent: `$dir_${j}`, | |
| path: `subdir_${k}`, | |
| as: `subdir_${j}-${k}`, | |
| }) | |
| for ( let i=0 ; i < 5 ; i++ ) { | |
| batch.push({ | |
| op: 'write', | |
| path: `$subdir_${j}-${k}/test_${i}.txt` | |
| }); | |
| blobs.push('example\n'); | |
| } | |
| } | |
| } | |
| try { | |
| const response = await t.batch('batch', batch, blobs); | |
| console.log('response?', response); | |
| } catch (e) { | |
| log_error(e); | |
| } | |
| } | |
| }); | |
| registry.add_bench('write.batch.tiny', { | |
| name: 'Write 30 tiny files in a batch', | |
| do: async t => { | |
| const batch = []; | |
| for ( let i=0 ; i < 30 ; i++ ) { | |
| batch.push({ | |
| op: 'write', | |
| path: t.resolve(`tiny_${i}.txt`), | |
| }); | |
| } | |
| await t.batch('batch', batch, Array(30).fill('example\n')); | |
| } | |
| }); | |
| // const fiftyMB = Array(50 * 1024 * 1024).map(() => | |
| // String.fromCharCode( | |
| // Math.floor(Math.random() * 26) + 97 | |
| // )); | |
| // registry.add_bench('files.mb50', { | |
| // name: 'write 10 50MB files', | |
| // do: async t => { | |
| // for ( let i=0 ; i < 10 ; i++ ) { | |
| // await t.write(`mb50_${i}.txt`, 'example\n', { overwrite: true }); | |
| // } | |
| // } | |
| // }); | |
| }; |