Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Correct handling of --fast-ci and --slow-ci options.
  • Loading branch information
freakboy3742 committed Sep 17, 2025
commit 4feeabe58c6cf98af2729b01124f344745476956
11 changes: 8 additions & 3 deletions Apple/__main__.py
Comment thread
freakboy3742 marked this conversation as resolved.
Comment thread
hugovk marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -798,10 +798,15 @@ def test(context: argparse.Namespace, host: str | None = None) -> None:
+ [
"--",
"test",
"-uall",
"--slow-ci" if context.slow else "--fast-ci",
"--single-process",
"--rerun",
"-W",
"--no-randomize",
# Timeout handling requires subprocesses; explicitly setting
# the timeout to -1 disables the faulthandler.
"--timeout=-1",
# Adding Python options requires the use of a subprocess to
# start a new Python interpreter.
"--dont-add-python-opts",
Copy link
Copy Markdown
Member

@mhsmith mhsmith Sep 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

--dont-add-python-opts may reduce the effectiveness of the tests: see #138805 (comment).

However, resolving this in the Android testbed required a fairly significant refactoring, so since this PR doesn't make the iOS situation any worse, it's probably best left to a separate PR.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure I agree it's reducing effectiveness. It's preventing the use of a code branch that would otherwise be invoked as a consequence of using --fast-ci or --slow-ci; if that problem code branch is invoked, the test suite crashes. Using --fast-ci/--slow-ci improves testing consistency; the options that aren't being processed as a result of using this flag weren't being used previously, either.

I agree that the Python options that are enabled by that code branch should be factored into the iOS testbed - but as you have flagged, that would requires a much more substantial refactor, and it can be handled independently.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good. FYI, the reason why I made the Android testbed accept Python options on the command line, rather than hard-coding the options expected by the CPython test suite, is that some of those options might not be appropriate for third-party package tests run by cibuildwheel.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure - that makes sense. I've got some ideas for how this could be managed in the context of the iOS testbed - we can read options out of the Info.plist file to separate test suite options from interpreter options.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I found it simpler not to separate them at all, but to let PyConfig_SetBytesArgv handle both of them at once, just like in a normal Python executable.

]
)

Expand Down
Loading