Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e7c7112

Browse files
fix: shell output truncation (tailcallhq#936)
Co-authored-by: Tushar Mathur <[email protected]>
1 parent 8f167c9 commit e7c7112

16 files changed

Lines changed: 783 additions & 105 deletions

crates/forge_app/src/execution_result.rs

Lines changed: 344 additions & 48 deletions
Large diffs are not rendered by default.
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
---
2+
source: crates/forge_app/src/execution_result.rs
3+
expression: to_value(actual)
4+
---
5+
<shell_output>
6+
<metadata>
7+
<command><![CDATA[complex_command]]></command>
8+
<shell>/bin/bash</shell>
9+
<exit_code>0</exit_code>
10+
</metadata>
11+
<full_content_file>
12+
<total_lines>55</total_lines>
13+
<path>/tmp/shell_output.md</path>
14+
<stdout_line_range
15+
start="2"
16+
end="26"
17+
>
18+
</stdout_line_range>
19+
<stderr_line_range
20+
start="27"
21+
end="57"
22+
>
23+
</stderr_line_range>
24+
</full_content_file>
25+
<stdout>
26+
<displayed_lines>20</displayed_lines>
27+
<total_lines>25</total_lines>
28+
<content><![CDATA[stdout line 1
29+
stdout line 2
30+
stdout line 3
31+
stdout line 4
32+
stdout line 5
33+
stdout line 6
34+
stdout line 7
35+
stdout line 8
36+
stdout line 9
37+
stdout line 10
38+
... [5 lines omitted] ...
39+
stdout line 16
40+
stdout line 17
41+
stdout line 18
42+
stdout line 19
43+
stdout line 20
44+
stdout line 21
45+
stdout line 22
46+
stdout line 23
47+
stdout line 24
48+
stdout line 25
49+
]]></content>
50+
<truncation_info>
51+
<head_lines>10</head_lines>
52+
<tail_lines>10</tail_lines>
53+
<omitted_lines>5</omitted_lines>
54+
</truncation_info>
55+
</stdout>
56+
<stderr>
57+
<displayed_lines>20</displayed_lines>
58+
<total_lines>30</total_lines>
59+
<content><![CDATA[stderr line 1
60+
stderr line 2
61+
stderr line 3
62+
stderr line 4
63+
stderr line 5
64+
stderr line 6
65+
stderr line 7
66+
stderr line 8
67+
stderr line 9
68+
stderr line 10
69+
... [10 lines omitted] ...
70+
stderr line 21
71+
stderr line 22
72+
stderr line 23
73+
stderr line 24
74+
stderr line 25
75+
stderr line 26
76+
stderr line 27
77+
stderr line 28
78+
stderr line 29
79+
stderr line 30
80+
]]></content>
81+
<truncation_info>
82+
<head_lines>10</head_lines>
83+
<tail_lines>10</tail_lines>
84+
<omitted_lines>10</omitted_lines>
85+
</truncation_info>
86+
</stderr>
87+
</shell_output>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
source: crates/forge_app/src/execution_result.rs
3+
expression: to_value(actual)
4+
---
5+
<shell_output>
6+
<metadata>
7+
<command><![CDATA[silent_command]]></command>
8+
<shell>/bin/bash</shell>
9+
<exit_code>0</exit_code>
10+
</metadata>
11+
<stdout>
12+
<displayed_lines>0</displayed_lines>
13+
<total_lines>0</total_lines>
14+
<content><![CDATA[]]></content>
15+
</stdout>
16+
<stderr>
17+
<displayed_lines>0</displayed_lines>
18+
<total_lines>0</total_lines>
19+
<content><![CDATA[]]></content>
20+
</stderr>
21+
</shell_output>
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
source: crates/forge_app/src/execution_result.rs
3+
expression: to_value(actual)
4+
---
5+
<shell_output>
6+
<metadata>
7+
<command><![CDATA[boundary_command]]></command>
8+
<shell>/bin/bash</shell>
9+
<exit_code>0</exit_code>
10+
</metadata>
11+
<stdout>
12+
<displayed_lines>40</displayed_lines>
13+
<total_lines>20</total_lines>
14+
<content><![CDATA[stdout line 1
15+
stdout line 2
16+
stdout line 3
17+
stdout line 4
18+
stdout line 5
19+
stdout line 6
20+
stdout line 7
21+
stdout line 8
22+
stdout line 9
23+
stdout line 10
24+
stdout line 11
25+
stdout line 12
26+
stdout line 13
27+
stdout line 14
28+
stdout line 15
29+
stdout line 16
30+
stdout line 17
31+
stdout line 18
32+
stdout line 19
33+
stdout line 20]]></content>
34+
</stdout>
35+
<stderr>
36+
<displayed_lines>0</displayed_lines>
37+
<total_lines>0</total_lines>
38+
<content><![CDATA[]]></content>
39+
</stderr>
40+
</shell_output>
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
source: crates/forge_app/src/execution_result.rs
3+
expression: to_value(actual)
4+
---
5+
<shell_output>
6+
<metadata>
7+
<command><![CDATA[line_test_command]]></command>
8+
<shell>/bin/bash</shell>
9+
<exit_code>0</exit_code>
10+
</metadata>
11+
<stdout>
12+
<displayed_lines>30</displayed_lines>
13+
<total_lines>15</total_lines>
14+
<content><![CDATA[stdout 1
15+
stdout 2
16+
stdout 3
17+
stdout 4
18+
stdout 5
19+
stdout 6
20+
stdout 7
21+
stdout 8
22+
stdout 9
23+
stdout 10
24+
stdout 11
25+
stdout 12
26+
stdout 13
27+
stdout 14
28+
stdout 15]]></content>
29+
</stdout>
30+
<stderr>
31+
<displayed_lines>24</displayed_lines>
32+
<total_lines>12</total_lines>
33+
<content><![CDATA[stderr 1
34+
stderr 2
35+
stderr 3
36+
stderr 4
37+
stderr 5
38+
stderr 6
39+
stderr 7
40+
stderr 8
41+
stderr 9
42+
stderr 10
43+
stderr 11
44+
stderr 12]]></content>
45+
</stderr>
46+
</shell_output>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
---
2+
source: crates/forge_app/src/execution_result.rs
3+
expression: to_value(actual)
4+
---
5+
<shell_output>
6+
<metadata>
7+
<command><![CDATA[echo hello]]></command>
8+
<shell>/bin/bash</shell>
9+
<exit_code>0</exit_code>
10+
</metadata>
11+
<stdout>
12+
<displayed_lines>4</displayed_lines>
13+
<total_lines>2</total_lines>
14+
<content><![CDATA[hello
15+
world]]></content>
16+
</stdout>
17+
<stderr>
18+
<displayed_lines>0</displayed_lines>
19+
<total_lines>0</total_lines>
20+
<content><![CDATA[]]></content>
21+
</stderr>
22+
</shell_output>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
source: crates/forge_app/src/execution_result.rs
3+
expression: to_value(actual)
4+
---
5+
<shell_output>
6+
<metadata>
7+
<command><![CDATA[simple_command]]></command>
8+
<shell>/bin/bash</shell>
9+
<exit_code>0</exit_code>
10+
</metadata>
11+
<stdout>
12+
<displayed_lines>2</displayed_lines>
13+
<total_lines>1</total_lines>
14+
<content><![CDATA[single stdout line]]></content>
15+
</stdout>
16+
<stderr>
17+
<displayed_lines>2</displayed_lines>
18+
<total_lines>1</total_lines>
19+
<content><![CDATA[single stderr line]]></content>
20+
</stderr>
21+
</shell_output>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
source: crates/forge_app/src/execution_result.rs
3+
expression: to_value(actual)
4+
---
5+
<shell_output>
6+
<metadata>
7+
<command><![CDATA[error_command]]></command>
8+
<shell>/bin/bash</shell>
9+
<exit_code>1</exit_code>
10+
</metadata>
11+
<full_content_file>
12+
<total_lines>25</total_lines>
13+
<path>/tmp/shell_output.md</path>
14+
<stderr_line_range
15+
start="2"
16+
end="27"
17+
>
18+
</stderr_line_range>
19+
</full_content_file>
20+
<stdout>
21+
<displayed_lines>0</displayed_lines>
22+
<total_lines>0</total_lines>
23+
<content><![CDATA[]]></content>
24+
</stdout>
25+
<stderr>
26+
<displayed_lines>20</displayed_lines>
27+
<total_lines>25</total_lines>
28+
<content><![CDATA[stderr line 1
29+
stderr line 2
30+
stderr line 3
31+
stderr line 4
32+
stderr line 5
33+
stderr line 6
34+
stderr line 7
35+
stderr line 8
36+
stderr line 9
37+
stderr line 10
38+
... [5 lines omitted] ...
39+
stderr line 16
40+
stderr line 17
41+
stderr line 18
42+
stderr line 19
43+
stderr line 20
44+
stderr line 21
45+
stderr line 22
46+
stderr line 23
47+
stderr line 24
48+
stderr line 25
49+
]]></content>
50+
<truncation_info>
51+
<head_lines>10</head_lines>
52+
<tail_lines>10</tail_lines>
53+
<omitted_lines>5</omitted_lines>
54+
</truncation_info>
55+
</stderr>
56+
</shell_output>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
source: crates/forge_app/src/execution_result.rs
3+
expression: to_value(actual)
4+
---
5+
<shell_output>
6+
<metadata>
7+
<command><![CDATA[long_command]]></command>
8+
<shell>/bin/bash</shell>
9+
<exit_code>0</exit_code>
10+
</metadata>
11+
<full_content_file>
12+
<total_lines>25</total_lines>
13+
<path>/tmp/shell_output.md</path>
14+
<stdout_line_range
15+
start="2"
16+
end="26"
17+
>
18+
</stdout_line_range>
19+
</full_content_file>
20+
<stdout>
21+
<displayed_lines>20</displayed_lines>
22+
<total_lines>25</total_lines>
23+
<content><![CDATA[stdout line 1
24+
stdout line 2
25+
stdout line 3
26+
stdout line 4
27+
stdout line 5
28+
stdout line 6
29+
stdout line 7
30+
stdout line 8
31+
stdout line 9
32+
stdout line 10
33+
... [5 lines omitted] ...
34+
stdout line 16
35+
stdout line 17
36+
stdout line 18
37+
stdout line 19
38+
stdout line 20
39+
stdout line 21
40+
stdout line 22
41+
stdout line 23
42+
stdout line 24
43+
stdout line 25
44+
]]></content>
45+
<truncation_info>
46+
<head_lines>10</head_lines>
47+
<tail_lines>10</tail_lines>
48+
<omitted_lines>5</omitted_lines>
49+
</truncation_info>
50+
</stdout>
51+
<stderr>
52+
<displayed_lines>0</displayed_lines>
53+
<total_lines>0</total_lines>
54+
<content><![CDATA[]]></content>
55+
</stderr>
56+
</shell_output>

crates/forge_app/src/snapshots/forge_app__execution_result__tests__shell_success.snap

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,22 @@
22
source: crates/forge_app/src/execution_result.rs
33
expression: to_value(actual)
44
---
5-
<shell_output
6-
command="ls -la"
7-
exit_code="0"
8-
><![CDATA[<stdout>
9-
total 8
5+
<shell_output>
6+
<metadata>
7+
<command><![CDATA[ls -la]]></command>
8+
<shell>/bin/bash</shell>
9+
<exit_code>0</exit_code>
10+
</metadata>
11+
<stdout>
12+
<displayed_lines>6</displayed_lines>
13+
<total_lines>3</total_lines>
14+
<content><![CDATA[total 8
1015
drwxr-xr-x 2 user user 4096 Jan 1 12:00 .
11-
drwxr-xr-x 10 user user 4096 Jan 1 12:00 ..
12-
</stdout>]]>
16+
drwxr-xr-x 10 user user 4096 Jan 1 12:00 ..]]></content>
17+
</stdout>
18+
<stderr>
19+
<displayed_lines>0</displayed_lines>
20+
<total_lines>0</total_lines>
21+
<content><![CDATA[]]></content>
22+
</stderr>
1323
</shell_output>

0 commit comments

Comments
 (0)