Control: severity -1 minor
Control: retitle -1 imperfect/non-upstreamable architecture detection

The sys.maxsize check should catch amd64 vs i386; the directory check is mostly to catch other-32-bit vs i386. All this patch does is allow more rounding error in some tests (because i386 registers and memory are different precisions), so a wrong detection should be mostly harmless.

sysconfig.get_platform() / platform.uname() aren't chroot-safe, which for a tests-only patch in Debian infrastructure, is probably a worse problem:

(i386 chroot on amd64)
>>> import sys;import sysconfig;import platform
>>> sys.maxsize
2147483647
>>> platform.uname()
uname_result(system='Linux', node='rnpalmer-laptop', release='4.19.0-12-amd64', version='#1 SMP Debian 4.19.152-1 (2020-10-18)', machine='x86_64', processor='')
>>> sys.platform
'linux'
>>> sysconfig.get_platform()
'linux-x86_64'
>>> import struct;struct.calcsize("P")
4

I would welcome better (and preferably upstreamable) ways of determining architecture from Python if they actually exist. pandas/statsmodels have several patches that amount to "$feature is broken on $arch - xfail its tests and warn on use".

Reply via email to