[SPARK-54561][PYTHON] Support breakpoint() for run-tests.py
#53273
+104
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this pull request?
We hijack the stdin/stdout/stderr in
run-tests.pyso we can supportbreakpoint()in test cases. The users can now write abreakpoint()in a test and debug the program when they userun-tests.py.Why are the changes needed?
It's difficult to debug a failed test. This also lays the foundation to temporarily redirect stderr/stdout to sys.stdout.
Does this PR introduce any user-facing change?
No. The original behavior should be preserved. The performance impact is negligible.
How was this patch tested?
Add a line of
breakpoint()in the test case then run the test with./run-tests --testname="...". The code will hit the breakpoint and bring up pdb. The user can debug the test using pdb interface.Was this patch authored or co-authored using generative AI tooling?
No.