This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Title: android: test_distutils fails
Type: behavior Stage: resolved
Components: Tests Versions: Python 3.7, Python 3.6
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: xdegaye Nosy List: Alex.Willmer, dstufft, eric.araujo, python-dev, xdegaye
Priority: normal Keywords: patch

Created on 2016-05-03 14:25 by xdegaye, last changed 2022-04-11 14:58 by admin. This issue is now closed.

File name Uploaded Description Edit
test_output.txt xdegaye, 2016-05-03 14:24 test results
cross-compiled-skip.patch xdegaye, 2016-05-06 08:08 skip some tests when interpreter was cross-compiled review
android-sh-path.patch xdegaye, 2016-05-06 08:15 use /system/bin/sh on android review
android-sh-path_2.patch xdegaye, 2016-05-20 09:41 review
cross-compiled-skip_2.patch xdegaye, 2016-11-04 08:15 review
Messages (7)
msg264732 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016-05-03 14:24
test_distutils fails on an android emulator running an x86 system image at API level 21.

See the attached test_output.txt file.

Some of these failed tests could be skipped, supposing that native compilation of extension modules on android itself (as opposed to using cross-compilation) is not supported.
msg264944 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016-05-06 08:05
The last two failed tests:

are caused by LDFLAGS being set in the environment both when configure is run and when make is run.

Removing LDFLAGS from the environment when running make fixes these tests.
msg264945 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016-05-06 08:08
The attached patch skips some tests when the interpreter was cross-compiled. When the interpreter has been cross-compiled, there is probably no compiler on the host system.
msg264946 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016-05-06 08:15
On android, the shell path is /system/bin/sh. The attached patch fixes this, assuming that there is a platform.android_ver() as per issue #26855: add platform.android_ver() for android. This could be changed for a test on sys.platform if there was a specific sys.platform value for android.

With both patches and the LDFLAGS change on the cross-build system, test_distutils runs fine.
msg265924 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016-05-20 09:41
This new patch adds a dependency to issue #27027.
msg280043 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2016-11-04 08:15
The problem raised in msg264946 has been fixed at changeset 15835311b5e6.

This new cross-compiled-skip_2.patch is not specific to Android and fixes test_distutils when the executables used to build the interpreter do not exist on the platform
where the test is run.  The patch also does:
* Fix a bug in test_run of Lib/distutils/tests/ that was using the values of the 'compiler.executables' dictionary instead of the attributes of 'compiler'.
* Removes test_get_python_inc from as Python.h may not be installed on systems where extension modules are not expected to be built (BTW the comment in the test
points out: "This is not much of a test" :).

With this patch, test_distutils runs fine on the Android emulator.
msg281025 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2016-11-17 08:02
New changeset cea3b621973f by Xavier de Gaye in branch '3.6':
Issue 26931: Skip the test_distutils tests using a compiler executable

New changeset 99d69fd1b24e by Xavier de Gaye in branch 'default':
Issue 26931: Merge 3.6
Date User Action Args
2022-04-11 14:58:30adminsetgithub: 71118
2016-11-17 10:20:45xdegayesetstatus: open -> closed
resolution: fixed
stage: commit review -> resolved
2016-11-17 08:02:57python-devsetnosy: + python-dev
messages: + msg281025
2016-11-16 07:24:43xdegayesetassignee: xdegaye
stage: patch review -> commit review
2016-11-04 08:15:24xdegayesetfiles: + cross-compiled-skip_2.patch
versions: + Python 3.7
messages: + msg280043

dependencies: - add the 'is_android' attribute to
components: + Tests, - Library (Lib), Cross-Build
stage: patch review
2016-05-21 07:06:39xdegayelinkissue26865 dependencies
2016-05-21 06:58:00xdegayesetdependencies: + add the 'is_android' attribute to
2016-05-20 09:41:59xdegayesetfiles: + android-sh-path_2.patch

messages: + msg265924
2016-05-06 08:15:10xdegayesetfiles: + android-sh-path.patch

messages: + msg264946
2016-05-06 08:08:19xdegayesetfiles: + cross-compiled-skip.patch
keywords: + patch
messages: + msg264945
2016-05-06 08:05:00xdegayesetmessages: + msg264944
2016-05-03 14:25:01xdegayecreate