123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- 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 });
- // }
- // }
- // });
- };
|