()
| 3 | const { AgentVM } = require('./src/index'); |
| 4 | |
| 5 | async function test() { |
| 6 | const size = 100 * 1024; // 100KB |
| 7 | const data = crypto.randomBytes(size); |
| 8 | const server = http.createServer((req, res) => { |
| 9 | res.writeHead(200, { 'Content-Length': size }); |
| 10 | res.end(data); |
| 11 | }); |
| 12 | await new Promise(r => server.listen(18888, '127.0.0.1', r)); |
| 13 | console.log('Server started'); |
| 14 | |
| 15 | const vm = new AgentVM({ network: true, debug: false, interactive: true }); |
| 16 | |
| 17 | let output = ''; |
| 18 | vm.onStdout = (d) => { output += new TextDecoder().decode(d); process.stdout.write(new TextDecoder().decode(d)); }; |
| 19 | |
| 20 | await vm.start(); |
| 21 | console.log('VM started, running curl...'); |
| 22 | const start = Date.now(); |
| 23 | await vm.writeToStdin('curl http://192.168.127.1:18888/ -o /tmp/100k.bin && ls -la /tmp/100k.bin && echo DONE\n'); |
| 24 | |
| 25 | // Wait for DONE marker |
| 26 | while (output.indexOf('DONE') === -1) { |
| 27 | await new Promise(r => setTimeout(r, 100)); |
| 28 | } |
| 29 | |
| 30 | console.log('\nCompleted in', Date.now() - start, 'ms'); |
| 31 | console.log('Speed:', Math.round(size / (Date.now() - start)), 'KB/s'); |
| 32 | |
| 33 | await vm.stop(); |
| 34 | server.close(); |
| 35 | } |
| 36 | test().catch(console.error); |
no test coverage detected