GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||
GeezerVison is showing github.com — gh-126554: correct detection of `gcc` for `TestNullDlsym.test_null_dlsym` by petermarko · Pull Request #129872 · python/cpython Conversation
|
|
Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool. If this change has little impact on Python users, wait for a maintainer to apply the |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
Wait, how come the
cc @encukou (I don't remember why we didn't catch this) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
The trace is actually from 3.12.9, but the subprocess call throws exception also in 3.13 and 3.14-rc although I didn't try to run the testsuite in those. I'll rewrite this to catch just |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
gcc for TestNullDlsym.test_null_dlsym
88e485a to
4835b2b
Compare
|
Beautified by adding Meanwhile I retested also 3.13.2, so I guess it's valid for all releases. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Ok, actually there is a way to make it work without a try-except: We need to pass the >>> subprocess.call(["gcc", "--version"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) 0 >>> subprocess.call(["gcc", "--version"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL, shell=True) 1 So, we need to be a bit more careful with the actual return code! So, instead I either indeed suggest using a subprocess.call(["which", "abc"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) # == 1 subprocess.call(["which", "gcc"], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) # == 0 So, let's use the guard. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
In case gcc is not available, it will throw exception and test fails.
So catch the exception to skip the test correctly.
======================================================================
ERROR: test_null_dlsym (test.test_ctypes.test_dlerror.TestNullDlsym.test_null_dlsym)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python3.12/test/test_ctypes/test_dlerror.py", line 61, in test_null_dlsym
retcode = subprocess.call(["gcc", "--version"],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/subprocess.py", line 391, in call
with Popen(*popenargs, **kwargs) as p:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/subprocess.py", line 1028, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.12/subprocess.py", line 1963, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'gcc'
Signed-off-by: Peter Marko <[email protected]>
4835b2b to
2777a08
Compare
There was an error while loading. Please reload this page.
|
There is Perhaps it's time to add a test helper to find gcc/clang, and skip test if it's not available. (But that would be for a new PR.) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thanks @petermarko for the PR, and @encukou for merging it 🌮🎉.. I'm working now to backport this PR to: 3.12, 3.13. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…ull_dlsym` (pythonGH-129872) In case gcc is not available, the test will fail with FileNotFoundError. So catch the exception to skip the test correctly. (cherry picked from commit 978211c) Co-authored-by: Peter Marko <[email protected]> Signed-off-by: Peter Marko <[email protected]>
|
GH-129944 is a backport of this pull request to the 3.13 branch. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thank you for the report & fix, @petermarko! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…ull_dlsym` (pythonGH-129872) In case gcc is not available, the test will fail with FileNotFoundError. So catch the exception to skip the test correctly. (cherry picked from commit 978211c) Co-authored-by: Peter Marko <[email protected]> Signed-off-by: Peter Marko <[email protected]>
|
GH-129945 is a backport of this pull request to the 3.12 branch. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…null_dlsym` (GH-129872) (#129945) gh-126554: correct detection of `gcc` for `TestNullDlsym.test_null_dlsym` (GH-129872) In case gcc is not available, the test will fail with FileNotFoundError. So catch the exception to skip the test correctly. (cherry picked from commit 978211c) Signed-off-by: Peter Marko <[email protected]> Co-authored-by: Peter Marko <[email protected]>
…null_dlsym` (GH-129872) (#129944) gh-126554: correct detection of `gcc` for `TestNullDlsym.test_null_dlsym` (GH-129872) In case gcc is not available, the test will fail with FileNotFoundError. So catch the exception to skip the test correctly. (cherry picked from commit 978211c) Signed-off-by: Peter Marko <[email protected]> Co-authored-by: Peter Marko <[email protected]>
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.