Skip to content

Commit 43aca08

Browse files
fangchenliKevin D Smith
authored and
Kevin D Smith
committed
BLD/CI fix arm64 build pandas-dev#36397 (pandas-dev#36403)
1 parent 41f794e commit 43aca08

20 files changed

+23
-7
lines changed

.travis.yml

+1-5
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ matrix:
4242

4343
- arch: arm64
4444
env:
45-
- JOB="3.7, arm64" PYTEST_WORKERS=8 ENV_FILE="ci/deps/travis-37-arm64.yaml" PATTERN="(not slow and not network and not clipboard)"
45+
- JOB="3.7, arm64" PYTEST_WORKERS=8 ENV_FILE="ci/deps/travis-37-arm64.yaml" PATTERN="(not slow and not network and not clipboard and not arm_slow)"
4646

4747
- env:
4848
- JOB="3.7, locale" ENV_FILE="ci/deps/travis-37-locale.yaml" PATTERN="((not slow and not network and not clipboard) or (single and db))" LOCALE_OVERRIDE="zh_CN.UTF-8" SQL="1"
@@ -58,10 +58,6 @@ matrix:
5858
services:
5959
- mysql
6060
- postgresql
61-
allow_failures:
62-
- arch: arm64
63-
env:
64-
- JOB="3.7, arm64" PYTEST_WORKERS=8 ENV_FILE="ci/deps/travis-37-arm64.yaml" PATTERN="(not slow and not network and not clipboard)"
6561

6662

6763
before_install:

ci/deps/travis-37-arm64.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
name: pandas-dev
22
channels:
3-
- defaults
43
- conda-forge
54
dependencies:
65
- python=3.7.*

ci/setup_env.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,9 @@ else
4242
fi
4343

4444
if [ "${TRAVIS_CPU_ARCH}" == "arm64" ]; then
45+
sudo apt-get update
4546
sudo apt-get -y install xvfb
46-
CONDA_URL="https://github.com/conda-forge/miniforge/releases/download/4.8.2-1/Miniforge3-4.8.2-1-Linux-aarch64.sh"
47+
CONDA_URL="https://github.com/conda-forge/miniforge/releases/download/4.8.5-0/Miniforge3-4.8.5-0-Linux-aarch64.sh"
4748
else
4849
CONDA_URL="https://repo.continuum.io/miniconda/Miniconda3-latest-$CONDA_OS.sh"
4950
fi

pandas/conftest.py

+3
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ def pytest_configure(config):
5555
)
5656
config.addinivalue_line("markers", "high_memory: mark a test as a high-memory only")
5757
config.addinivalue_line("markers", "clipboard: mark a pd.read_clipboard test")
58+
config.addinivalue_line(
59+
"markers", "arm_slow: mark a test as slow for arm64 architecture"
60+
)
5861

5962

6063
def pytest_addoption(parser):

pandas/tests/arithmetic/test_datetime64.py

+1
Original file line numberDiff line numberDiff line change
@@ -749,6 +749,7 @@ class TestDatetime64Arithmetic:
749749
# -------------------------------------------------------------
750750
# Addition/Subtraction of timedelta-like
751751

752+
@pytest.mark.arm_slow
752753
def test_dt64arr_add_timedeltalike_scalar(
753754
self, tz_naive_fixture, two_hours, box_with_array
754755
):

pandas/tests/frame/test_constructors.py

+1
Original file line numberDiff line numberDiff line change
@@ -2588,6 +2588,7 @@ def test_to_frame_with_falsey_names(self):
25882588
result = DataFrame(Series(name=0, dtype=object)).dtypes
25892589
tm.assert_series_equal(result, expected)
25902590

2591+
@pytest.mark.arm_slow
25912592
@pytest.mark.parametrize("dtype", [None, "uint8", "category"])
25922593
def test_constructor_range_dtype(self, dtype):
25932594
expected = DataFrame({"A": [0, 1, 2, 3, 4]}, dtype=dtype or "int64")

pandas/tests/groupby/test_groupby_dropna.py

+1
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ def test_groupby_dropna_multi_index_dataframe_agg(dropna, tuples, outputs):
238238
tm.assert_frame_equal(grouped, expected)
239239

240240

241+
@pytest.mark.arm_slow
241242
@pytest.mark.parametrize(
242243
"datetime1, datetime2",
243244
[

pandas/tests/groupby/transform/test_transform.py

+1
Original file line numberDiff line numberDiff line change
@@ -675,6 +675,7 @@ def test_groupby_cum_skipna(op, skipna, input, exp):
675675
tm.assert_series_equal(expected, result)
676676

677677

678+
@pytest.mark.arm_slow
678679
@pytest.mark.parametrize(
679680
"op, args, targop",
680681
[

pandas/tests/indexes/common.py

+1
Original file line numberDiff line numberDiff line change
@@ -906,6 +906,7 @@ def test_is_unique(self):
906906
index_na_dup = index_na.insert(0, np.nan)
907907
assert index_na_dup.is_unique is False
908908

909+
@pytest.mark.arm_slow
909910
def test_engine_reference_cycle(self):
910911
# GH27585
911912
index = self.create_index()

pandas/tests/indexes/multi/test_duplicates.py

+1
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ def test_duplicated(idx_dup, keep, expected):
241241
tm.assert_numpy_array_equal(result, expected)
242242

243243

244+
@pytest.mark.arm_slow
244245
def test_duplicated_large(keep):
245246
# GH 9125
246247
n, k = 200, 5000

pandas/tests/indexes/multi/test_integrity.py

+1
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ def test_consistency():
118118
assert index.is_unique is False
119119

120120

121+
@pytest.mark.arm_slow
121122
def test_hash_collisions():
122123
# non-smoke test that we don't get hash collisions
123124

pandas/tests/indexes/multi/test_setops.py

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def test_intersection_base(idx, sort, klass):
3737
first.intersection([1, 2, 3], sort=sort)
3838

3939

40+
@pytest.mark.arm_slow
4041
@pytest.mark.parametrize("klass", [MultiIndex, np.array, Series, list])
4142
def test_union_base(idx, sort, klass):
4243
first = idx[::-1]

pandas/tests/indexes/period/test_indexing.py

+1
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ def test_getitem_list_periods(self):
157157
exp = ts.iloc[[1]]
158158
tm.assert_series_equal(ts[[Period("2012-01-02", freq="D")]], exp)
159159

160+
@pytest.mark.arm_slow
160161
def test_getitem_seconds(self):
161162
# GH#6716
162163
didx = date_range(start="2013/01/01 09:00:00", freq="S", periods=4000)

pandas/tests/indexing/interval/test_interval.py

+1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ def test_non_matching(self):
7171
with pytest.raises(KeyError, match="^$"):
7272
s.loc[[-1, 3]]
7373

74+
@pytest.mark.arm_slow
7475
def test_large_series(self):
7576
s = Series(
7677
np.arange(1000000), index=IntervalIndex.from_breaks(np.arange(1000001))

pandas/tests/indexing/multiindex/test_chaining_and_caching.py

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ def test_cache_updating():
4949
assert result == 2
5050

5151

52+
@pytest.mark.arm_slow
5253
def test_indexer_caching():
5354
# GH5727
5455
# make sure that indexers are in the _internal_names_set

pandas/tests/indexing/test_chaining_and_caching.py

+1
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ def test_setitem_chained_setfault(self):
132132
result = df.head()
133133
tm.assert_frame_equal(result, expected)
134134

135+
@pytest.mark.arm_slow
135136
def test_detect_chained_assignment(self):
136137

137138
pd.set_option("chained_assignment", "raise")

pandas/tests/indexing/test_loc.py

+1
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,7 @@ def test_loc_non_unique(self):
785785
expected = DataFrame({"A": [2, 4, 5], "B": [4, 6, 7]}, index=[1, 1, 2])
786786
tm.assert_frame_equal(result, expected)
787787

788+
@pytest.mark.arm_slow
788789
def test_loc_non_unique_memory_error(self):
789790

790791
# GH 4280

pandas/tests/test_sorting.py

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ def test_int64_overflow(self):
6060
assert left[k] == v
6161
assert len(left) == len(right)
6262

63+
@pytest.mark.arm_slow
6364
def test_int64_overflow_moar(self):
6465

6566
# GH9096

pandas/tests/tseries/offsets/test_offsets_properties.py

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
from hypothesis import assume, given, strategies as st
1313
from hypothesis.extra.dateutil import timezones as dateutil_timezones
1414
from hypothesis.extra.pytz import timezones as pytz_timezones
15+
import pytest
1516

1617
import pandas as pd
1718
from pandas import Timestamp
@@ -84,6 +85,7 @@
8485
# Offset-specific behaviour tests
8586

8687

88+
@pytest.mark.arm_slow
8789
@given(gen_random_datetime, gen_yqm_offset)
8890
def test_on_offset_implementations(dt, offset):
8991
assume(not offset.normalize)

pandas/tests/tseries/offsets/test_ticks.py

+1
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ def test_tick_add_sub(cls, n, m):
6464
assert left - right == expected
6565

6666

67+
@pytest.mark.arm_slow
6768
@pytest.mark.parametrize("cls", tick_classes)
6869
@settings(deadline=None)
6970
@example(n=2, m=3)

0 commit comments

Comments
 (0)