mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-07 08:26:51 +00:00
Merge pull request #1586 from RooVetGit/cte/fix-tests-macos
Fix terminal process unit tests on MacOS
This commit is contained in:
commit
0fafe06e15
1 changed files with 18 additions and 20 deletions
|
|
@ -253,7 +253,7 @@ describe("TerminalProcess with Real Command Output", () => {
|
|||
})
|
||||
|
||||
it("should execute 'echo -n a' and return exactly 'a'", async () => {
|
||||
const { executionTimeUs } = await testTerminalCommand("echo -n a", "a")
|
||||
const { executionTimeUs } = await testTerminalCommand("/bin/echo -n a", "a")
|
||||
console.log(
|
||||
`'echo -n a' execution time: ${executionTimeUs} microseconds (${executionTimeUs / 1000} milliseconds)`,
|
||||
)
|
||||
|
|
@ -274,23 +274,19 @@ describe("TerminalProcess with Real Command Output", () => {
|
|||
)
|
||||
})
|
||||
|
||||
// Configure the number of lines for the base64 test
|
||||
const BASE64_TEST_LINES = 1000000
|
||||
const TEST_LINES = 1_000_000
|
||||
|
||||
it(`should execute 'base64 < /dev/zero | head -n ${BASE64_TEST_LINES}' and verify ${BASE64_TEST_LINES} lines of 'A's`, async () => {
|
||||
// Create an expected output pattern that matches what base64 produces
|
||||
// Each line is 76 'A's followed by a newline
|
||||
const expectedOutput = Array(BASE64_TEST_LINES).fill("A".repeat(76)).join("\n") + "\n"
|
||||
it(`should execute 'yes AAA... | head -n ${TEST_LINES}' and verify ${TEST_LINES} lines of 'A's`, async () => {
|
||||
const expectedOutput = Array(TEST_LINES).fill("A".repeat(76)).join("\n") + "\n"
|
||||
|
||||
// This command will generate BASE64_TEST_LINES lines of base64 encoded zeros
|
||||
// Each line will contain 76 'A' characters (base64 encoding of zeros)
|
||||
// This command will generate 1M lines with 76 'A's each.
|
||||
const { executionTimeUs, capturedOutput } = await testTerminalCommand(
|
||||
`base64 < /dev/zero | head -n ${BASE64_TEST_LINES}`,
|
||||
`yes "${"A".repeat(76)}" | head -n ${TEST_LINES}`,
|
||||
expectedOutput,
|
||||
)
|
||||
|
||||
console.log(
|
||||
`'base64 < /dev/zero | head -n ${BASE64_TEST_LINES}' execution time: ${executionTimeUs} microseconds (${executionTimeUs / 1000} milliseconds)`,
|
||||
`'yes "${"A".repeat(76)}" | head -n ${TEST_LINES}' execution time: ${executionTimeUs} microseconds (${executionTimeUs / 1000} milliseconds)`,
|
||||
)
|
||||
|
||||
// Display a truncated output sample (first 3 lines and last 3 lines)
|
||||
|
|
@ -299,21 +295,23 @@ describe("TerminalProcess with Real Command Output", () => {
|
|||
lines.slice(0, 3).join("\n") +
|
||||
`\n... (truncated ${lines.length - 6} lines) ...\n` +
|
||||
lines.slice(Math.max(0, lines.length - 3), lines.length).join("\n")
|
||||
|
||||
console.log("Output sample (first 3 lines):\n", truncatedOutput)
|
||||
// Verify the output
|
||||
|
||||
// Check if we have BASE64_TEST_LINES lines (may have an empty line at the end)
|
||||
expect(lines.length).toBeGreaterThanOrEqual(BASE64_TEST_LINES)
|
||||
// Verify the output.
|
||||
// Check if we have TEST_LINES lines (may have an empty line at the end).
|
||||
expect(lines.length).toBeGreaterThanOrEqual(TEST_LINES)
|
||||
|
||||
// Sample some lines to verify they contain 76 'A' characters
|
||||
// Sample indices at beginning, 1%, 10%, 50%, and end of the output
|
||||
// Sample some lines to verify they contain 76 'A' characters.
|
||||
// Sample indices at beginning, 1%, 10%, 50%, and end of the output.
|
||||
const sampleIndices = [
|
||||
0,
|
||||
Math.floor(BASE64_TEST_LINES * 0.01),
|
||||
Math.floor(BASE64_TEST_LINES * 0.1),
|
||||
Math.floor(BASE64_TEST_LINES * 0.5),
|
||||
BASE64_TEST_LINES - 1,
|
||||
Math.floor(TEST_LINES * 0.01),
|
||||
Math.floor(TEST_LINES * 0.1),
|
||||
Math.floor(TEST_LINES * 0.5),
|
||||
TEST_LINES - 1,
|
||||
].filter((i) => i < lines.length)
|
||||
|
||||
for (const index of sampleIndices) {
|
||||
expect(lines[index]).toBe("A".repeat(76))
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue