Some readline-based completion tests that drive input through a pseudo-terminal (test.support.pty_helper.run_pty) fail on DragonFly BSD and illumos, the same way they already fail on FreeBSD (gh-133558):
test.test_pdb.PdbTestReadline.test_multiline_auto_indent
test.test_pdb.PdbTestReadline.test_multiline_indent_completion (hangs)
test.test_sqlite3.test_cli.Completion.test_complete_no_match
On these platforms GNU readline in the pseudo-terminal does not remove the auto-indentation when a backspace is sent, so multi-line input ends up with the wrong indentation, and the sqlite3 completion inserts literal tabs when there is no match.
Verified on VMs (all using the GNU readline backend):
| Platform |
Result |
| Linux |
pass |
| NetBSD 10.1 |
pass |
| OpenBSD 7.9 |
pass |
| FreeBSD 15 |
fail (already skipped, gh-133558) |
| DragonFly 6.4 |
fail |
| illumos (Solaris) |
fail |
This is a platform readline behavior, not a CPython bug, so the fix is to extend the existing FreeBSD skips to DragonFly and Solaris.
Linked PRs
Some readline-based completion tests that drive input through a pseudo-terminal (
test.support.pty_helper.run_pty) fail on DragonFly BSD and illumos, the same way they already fail on FreeBSD (gh-133558):test.test_pdb.PdbTestReadline.test_multiline_auto_indenttest.test_pdb.PdbTestReadline.test_multiline_indent_completion(hangs)test.test_sqlite3.test_cli.Completion.test_complete_no_matchOn these platforms GNU readline in the pseudo-terminal does not remove the auto-indentation when a backspace is sent, so multi-line input ends up with the wrong indentation, and the sqlite3 completion inserts literal tabs when there is no match.
Verified on VMs (all using the GNU readline backend):
This is a platform readline behavior, not a CPython bug, so the fix is to extend the existing FreeBSD skips to DragonFly and Solaris.
Linked PRs