"添加前端模板和运行代码模块"
This commit is contained in:
75
qiming-run_code_rmcp/fixtures/test_js_large_params.js
Normal file
75
qiming-run_code_rmcp/fixtures/test_js_large_params.js
Normal file
@@ -0,0 +1,75 @@
|
||||
// Test JavaScript script with large text parameters to verify "Argument list too long" fix
|
||||
|
||||
// Generate a large text parameter (>2MB) to test the temporary file parameter passing solution
|
||||
function generateLargeText(sizeInMB) {
|
||||
const chunk = "This is a test chunk of text designed to generate large parameters. ".repeat(100);
|
||||
const iterations = Math.ceil((sizeInMB * 1024 * 1024) / chunk.length);
|
||||
|
||||
let result = "";
|
||||
for (let i = 0; i < iterations; i++) {
|
||||
result += chunk + `Iteration ${i}\n`;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// Handler function that processes large text parameters
|
||||
function handler(args) {
|
||||
console.log("Handler function called with large parameters");
|
||||
|
||||
// Test that we received the large text parameter
|
||||
if (!args || !args.largeText) {
|
||||
console.log("ERROR: No largeText parameter found");
|
||||
return { success: false, error: "Missing largeText parameter" };
|
||||
}
|
||||
|
||||
const largeText = args.largeText;
|
||||
console.log("Received large text parameter, length:", largeText.length);
|
||||
console.log("Large text parameter size (MB):", (largeText.length / 1024 / 1024).toFixed(2));
|
||||
|
||||
// Verify the text contains expected content
|
||||
if (largeText.includes("This is a test chunk of text designed to generate large parameters")) {
|
||||
console.log("SUCCESS: Large text parameter contains expected content");
|
||||
|
||||
// Count occurrences of "Iteration" to verify data integrity
|
||||
const iterationCount = (largeText.match(/Iteration \d+/g) || []).length;
|
||||
console.log("Found", iterationCount, "iterations in the text");
|
||||
|
||||
// Return some statistics about the processed data
|
||||
return {
|
||||
success: true,
|
||||
message: "Successfully processed large text parameter",
|
||||
textSize: largeText.length,
|
||||
sizeMB: (largeText.length / 1024 / 1024).toFixed(2),
|
||||
iterationCount: iterationCount,
|
||||
sampleText: largeText.substring(0, 100) + "..."
|
||||
};
|
||||
} else {
|
||||
console.log("ERROR: Large text parameter does not contain expected content");
|
||||
return { success: false, error: "Invalid content in largeText parameter" };
|
||||
}
|
||||
}
|
||||
|
||||
// This part won't be executed when the code is run through the MCP runner
|
||||
if (typeof require !== 'undefined' && require.main === module) {
|
||||
console.log("Running large parameter test directly...");
|
||||
|
||||
// Generate test data (3MB to ensure we exceed the 2MB threshold)
|
||||
const largeText = generateLargeText(3);
|
||||
console.log("Generated test data, size:", (largeText.length / 1024 / 1024).toFixed(2), "MB");
|
||||
|
||||
// Create test arguments
|
||||
const testArgs = {
|
||||
largeText: largeText,
|
||||
additionalParam: "test value",
|
||||
numberParam: 42
|
||||
};
|
||||
|
||||
console.log("Calling handler with large parameters...");
|
||||
const result = handler(testArgs);
|
||||
console.log("Result:", JSON.stringify(result, null, 2));
|
||||
}
|
||||
|
||||
if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
|
||||
module.exports = { handler, generateLargeText };
|
||||
}
|
||||
Reference in New Issue
Block a user