Skip to content

bpo-35967: Skip test with uname -p on Android #19577

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 18, 2020
Merged

bpo-35967: Skip test with uname -p on Android #19577

merged 1 commit into from
Apr 18, 2020

Conversation

yan12125
Copy link
Contributor

@yan12125 yan12125 commented Apr 18, 2020

The uname binary on Android does not support -p [1]. Here is a sample
log:

0:06:03 load avg: 0.56 [254/421/8] test_platform failed -- running: test_asyncio (5 min 53 sec)
uname: Unknown option p (see "uname --help")
test test_platform failed -- Traceback (most recent call last):
  File "/data/local/tmp/lib/python3.9/test/test_platform.py", line 170, in test_uname_processor
    proc_res = subprocess.check_output(['uname', '-p'], text=True).strip()
  File "/data/local/tmp/lib/python3.9/subprocess.py", line 420, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/data/local/tmp/lib/python3.9/subprocess.py", line 524, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['uname', '-p']' returned non-zero exit status 1.

[1] https://android.googlesource.com/platform/external/toybox/+/refs/heads/master/toys/posix/uname.c

https://bugs.python.org/issue35967

Automerge-Triggered-By: @jaraco

@jaraco
Copy link
Member

jaraco commented Apr 18, 2020

Thanks for making this change and sorry for the noise.

I think it may be better, rather than skipping the test, to assert the expected behavior. In fact, the way this is written, the test asserts that "uname -p is not used" when in fact it is, but the error is suppressed.

How about this instead:

diff --git a/Lib/test/test_platform.py b/Lib/test/test_platform.py
index 855304a68c..e98a79e3b3 100644
--- a/Lib/test/test_platform.py
+++ b/Lib/test/test_platform.py
@@ -167,8 +167,11 @@ class PlatformTest(unittest.TestCase):
         On some systems, the processor must match the output
         of 'uname -p'. See Issue 35967 for rationale.
         """
-        proc_res = subprocess.check_output(['uname', '-p'], text=True).strip()
-        expect = platform._unknown_as_blank(proc_res)
+        try:
+            proc_res = subprocess.check_output(['uname', '-p'], text=True)
+            expect = platform._unknown_as_blank(proc_res.strip())
+        except (OSError, subprocess.CalledProcessError):
+            expect = ''
         self.assertEqual(platform.uname().processor, expect)
 
     @unittest.skipUnless(sys.platform.startswith('win'), "windows only test")

…ndroid

The uname binary on Android does not support -p [1]. Here is a sample
log:

0:06:03 load avg: 0.56 [254/421/8] test_platform failed -- running: test_asyncio (5 min 53 sec)
uname: Unknown option p (see "uname --help")
test test_platform failed -- Traceback (most recent call last):
  File "/data/local/tmp/lib/python3.9/test/test_platform.py", line 170, in test_uname_processor
    proc_res = subprocess.check_output(['uname', '-p'], text=True).strip()
  File "/data/local/tmp/lib/python3.9/subprocess.py", line 420, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
  File "/data/local/tmp/lib/python3.9/subprocess.py", line 524, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['uname', '-p']' returned non-zero exit status 1.

[1] https://android.googlesource.com/platform/external/toybox/+/refs/heads/master/toys/posix/uname.c
@jaraco
Copy link
Member

jaraco commented Apr 18, 2020

Super! Thanks.

@yan12125
Copy link
Contributor Author

Thanks for the suggestion! Now I understand the test :)

@miss-islington
Copy link
Contributor

@yan12125: Status check is done, and it's a success ✅ .

@miss-islington miss-islington merged commit fb94040 into python:master Apr 18, 2020
@yan12125 yan12125 deleted the android-skip-uname-p-test branch April 18, 2020 14:21
CuriousLearner added a commit to CuriousLearner/cpython that referenced this pull request May 29, 2020
* master: (1985 commits)
  bpo-40179: Fix translation of #elif in Argument Clinic (pythonGH-19364)
  bpo-35967: Skip test with `uname -p` on Android (pythonGH-19577)
  bpo-40257: Improve help for the typing module (pythonGH-19546)
  Fix two typos in multiprocessing (pythonGH-19571)
  bpo-40286: Use random.randbytes() in tests (pythonGH-19575)
  bpo-40286: Makes simpler the relation between randbytes() and getrandbits() (pythonGH-19574)
  bpo-39894: Route calls from pathlib.Path.samefile() to os.stat() via the path accessor (pythonGH-18836)
  bpo-39897: Remove needless `Path(self.parent)` call, which makes `is_mount()` misbehave in `Path` subclasses. (pythonGH-18839)
  bpo-40282: Allow random.getrandbits(0) (pythonGH-19539)
  bpo-40302: UTF-32 encoder SWAB4() macro use a|b rather than a+b (pythonGH-19572)
  bpo-40302: Replace PY_INT64_T with int64_t (pythonGH-19573)
  bpo-40286: Add randbytes() method to random.Random (pythonGH-19527)
  bpo-39901: Move `pathlib.Path.owner()` and `group()` implementations into the path accessor. (pythonGH-18844)
  bpo-40300: Allow empty logging.Formatter.default_msec_format. (pythonGH-19551)
  bpo-40302: Add pycore_byteswap.h header file (pythonGH-19552)
  bpo-40287: Fix SpooledTemporaryFile.seek() return value (pythonGH-19540)
  Minor modernization and readability improvement to the tokenizer example (pythonGH-19558)
  bpo-40294: Fix _asyncio when module is loaded/unloaded multiple times (pythonGH-19542)
  Fix parameter names in assertIn() docs (pythonGH-18829)
  bpo-39793: use the same domain on make_msgid tests (python#18698)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
skip news tests Tests in the Lib/test dir
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants