Hi Peff
On 25/04/2024 02:44, Jeff King wrote:
On Sun, Apr 21, 2024 at 11:52:33PM +0200, Rubén Justo wrote:
+test_expect_success 'unknown command' '
+ test_when_finished "git reset --hard; rm -f command" &&
+ echo W >command &&
+ git add -N command &&
+ git diff command >expect &&
+ cat >>expect <<-EOF &&
+ (1/1) Stage addition [y,n,q,a,d,e,p,?]? Unknown command ${SQ}W${SQ} (use ${SQ}?${SQ} for help)
+ (1/1) Stage addition [y,n,q,a,d,e,p,?]?$SP
+ EOF
+ git add -p -- command <command >actual 2>&1 &&
+ test_cmp expect actual
+'
I got a test failure on Windows CI from this. The test_cmp output looks
like this:
-(1/1) Stage addition [y,n,q,a,d,e,p,?]? Unknown command 'W' (use '?' for help)
-(1/1) Stage addition [y,n,q,a,d,e,p,?]?
+(1/1) Stage addition [y,n,q,a,d,e,p,?]? (1/1) Stage addition [y,n,q,a,d,e,p,?]?
+Unknown command 'W' (use '?' for help)
which makes me suspect a race. Perhaps because the prompt is going to
stdout, but the "Unknown command" message goes to stderr? Maybe we
should keep stdout and stderr separate and check them independently.
Can we change err() to print to stdout? I can't really see the advantage
of separating "normal output" and "error messages" for an interactive
program like this.
Best Wishes
Phillip