Commit: patch 9.1.1092: tests: fix expected return code for python 3.13 on Windows

1 view
Skip to first unread message

Christian Brabandt

unread,
Feb 9, 2025, 11:30:18 AM2/9/25
to vim...@googlegroups.com
patch 9.1.1092: tests: fix expected return code for python 3.13 on Windows

Commit: https://github.com/vim/vim/commit/2e4361bd40c302f84f3c699a90dcd0b6f637ec21
Author: Christian Brabandt <c...@256bit.org>
Date: Sun Feb 9 17:18:07 2025 +0100

patch 9.1.1092: tests: fix expected return code for python 3.13 on Windows

Problem: tests: fix expected return code for python 3.13 on Windows
Solution: Check for return code 1 or 123 on Windows

There is a regression with python 3.13 on Windows, that it no longer
prints the requested error code, but instead exits with return code 1,
which breaks the test-suite.

So let's check for either exit code 1 or 123 in tests
Test_terminal_duplicate_eof_arg() and Test_terminal_eof_arg()

This will probably be fixed on the Python side, see the pull request
python/cpython#129901 but in the meantime, let's allow both error codes.

related: #16599
related: python/cpython#129900

Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index b53f0cd53..89a8abc3b 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -944,7 +944,15 @@ func Test_terminal_eof_arg()
call WaitFor({-> getline('$') =~ 'hello'})
call assert_equal('hello', getline('$'))
endif
- call assert_equal(123, bufnr()->term_getjob()->job_info().exitval)
+ let exitval = bufnr()->term_getjob()->job_info().exitval
+ if !has('win32')
+ call assert_equal(123, exitval)
+ else
+ " python 3.13 on Windows returns exit code 1
+ " older versions returned correctly exit code 123
+ " https://github.com/python/cpython/issues/129900
+ call assert_match('1\|123', exitval)
+ endif
%bwipe!
endfunc

@@ -976,7 +984,15 @@ func Test_terminal_duplicate_eof_arg()
call WaitFor({-> getline('$') =~ 'hello'})
call assert_equal('hello', getline('$'))
endif
- call assert_equal(123, bufnr()->term_getjob()->job_info().exitval)
+ let exitval = bufnr()->term_getjob()->job_info().exitval
+ if !has('win32')
+ call assert_equal(123, exitval)
+ else
+ " python 3.13 on Windows returns exit code 1
+ " older versions returned correctly exit code 123
+ " https://github.com/python/cpython/issues/129900
+ call assert_match('1\|123', exitval)
+ endif
%bwipe!
endfunc

diff --git a/src/version.c b/src/version.c
index 040620222..fe43fd447 100644
--- a/src/version.c
+++ b/src/version.c
@@ -704,6 +704,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1092,
/**/
1091,
/**/
Reply all
Reply to author
Forward
0 new messages