summaryrefslogtreecommitdiff
path: root/dev-python/h5py/files/h5py-3.2.1-i686-types.patch
blob: 80bbb112e7bd5c0af4f7e88d3d7ca6b1d912442e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
From 76c9c8c4049943c490556fa888cf7743d1a677e5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Mon, 12 Apr 2021 11:48:16 +0200
Subject: [PATCH] TST: Skip problematic datatypes based on their length

Filter datatypes for tests based on their length rather than keeping
a list of illegal platform+type combinations.  This is more robust
than the previous solution and fixes the test failures with new numpy
versions (1.19.5 is the oldest I have tested) that declare 'float96'
and 'complex192' on i686 rather than 'float128' and 'complex256'.

This fixes the following test failure:

    E       AttributeError: module 'numpy' has no attribute 'float128'

plus, later on (again):

    E   TypeError: Illegal length 24 for complex dtype
---
 h5py/tests/test_dtype.py | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/h5py/tests/test_dtype.py b/h5py/tests/test_dtype.py
index c5fac97e..ec4eda21 100644
--- a/h5py/tests/test_dtype.py
+++ b/h5py/tests/test_dtype.py
@@ -13,8 +13,6 @@ except ImportError:
 
 from .common import ut, TestCase
 
-UNSUPPORTED_LONG_DOUBLE = ('i386', 'i486', 'i586', 'i686', 'ppc64le')
-
 
 class TestVlen(TestCase):
 
@@ -289,13 +287,9 @@ class TestOffsets(TestCase):
                      if (np.issubdtype(f, np.floating) or
                          np.issubdtype(f, np.complexfloating)))
 
-        if platform.machine() in UNSUPPORTED_LONG_DOUBLE:
-            dtype_dset_map = {str(j): d
-                              for j, d in enumerate(dtypes)
-                              if d not in (np.float128, np.complex256)}
-        else:
-            dtype_dset_map = {str(j): d
-                              for j, d in enumerate(dtypes)}
+        dtype_dset_map = {str(j): d
+                          for j, d in enumerate(dtypes)
+                          if d().nbytes in [4, 8, 16, 32]}
 
         fname = self.mktemp()
 
-- 
2.31.1