MCPcopy Create free account
hub / github.com/deepclause/agentvm / test

Function test

test/network/large-file.test.js:77–204  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

75}
76
77async function test() {
78 console.log("=== Very Large File Download Tests ===\n");
79 console.log("Testing 1MB, 10MB, and 50MB downloads via local HTTP server.");
80 console.log("(Using VM's built-in rate limiting at 256KB/s)\n");
81
82 const PORT = 18080;
83 let server;
84 let vm;
85 let passed = 0;
86 let failed = 0;
87
88 try {
89 // Start local test server
90 console.log("Starting local HTTP server...");
91 server = await createTestServer(PORT);
92
93 // Start VM with network - uses default 256KB/s rate limit
94 console.log("Starting VM...");
95 vm = new AgentVM({ network: true, debug: false });
96 await withTimeout(vm.start(), 15000);
97 console.log("VM Started with network enabled.\n");
98
99 // Test 1: Download 1MB file
100 console.log("Test 1: Download 1MB file");
101 const size1mb = 1 * 1024 * 1024;
102 let start = Date.now();
103 let res = await withTimeout(
104 vm.exec(`rm -f /tmp/*.bin; wget -q -O /tmp/1mb.bin http://192.168.127.1:${PORT}/bytes/${size1mb} && wc -c < /tmp/1mb.bin`),
105 120000 // 2 minute timeout
106 );
107 let elapsed = Date.now() - start;
108 let downloadedSize = parseInt(res.stdout.trim(), 10);
109 if (res.exitCode === 0 && downloadedSize === size1mb) {
110 const speedMbps = (size1mb / 1024 / 1024) / (elapsed / 1000);
111 console.log(` PASS (${elapsed}ms) - Downloaded ${downloadedSize} bytes (${speedMbps.toFixed(2)} MB/s)\n`);
112 passed++;
113 } else {
114 console.log(` FAIL (${elapsed}ms) - Expected ${size1mb} bytes, got: ${res.stdout.trim()}`);
115 console.log(` stderr: ${res.stderr}\n`);
116 failed++;
117 }
118
119 // Test 2: Download 10MB file
120 console.log("Test 2: Download 10MB file");
121 const size10mb = 10 * 1024 * 1024;
122 start = Date.now();
123 res = await withTimeout(
124 vm.exec(`rm -f /tmp/1mb.bin; wget -q -O /tmp/10mb.bin http://192.168.127.1:${PORT}/bytes/${size10mb} && wc -c < /tmp/10mb.bin`),
125 300000 // 5 minute timeout
126 );
127 elapsed = Date.now() - start;
128 downloadedSize = parseInt(res.stdout.trim(), 10);
129 if (res.exitCode === 0 && downloadedSize === size10mb) {
130 const speedMbps = (size10mb / 1024 / 1024) / (elapsed / 1000);
131 console.log(` PASS (${elapsed}ms) - Downloaded ${downloadedSize} bytes (${speedMbps.toFixed(2)} MB/s)\n`);
132 passed++;
133 } else {
134 console.log(` FAIL (${elapsed}ms) - Expected ${size10mb} bytes, got: ${res.stdout.trim()}`);

Callers 1

large-file.test.jsFile · 0.70

Calls 5

createTestServerFunction · 0.85
withTimeoutFunction · 0.70
startMethod · 0.45
execMethod · 0.45
stopMethod · 0.45

Tested by

no test coverage detected