mirror of
https://github.com/HeyPuter/puter.git
synced 2025-02-02 23:28:39 +08:00
121 lines
3.8 KiB
JavaScript
121 lines
3.8 KiB
JavaScript
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 });
|
|
// }
|
|
// }
|
|
// });
|
|
}; |