Bug#877419: [Help] Exclusion did not worked (Was: Bug#877419: Bug#877700: RM: pandas [arm64 armel armhf mips mips64el mipsel s390x] ...)

Ghislain Vaillant ghisvail at gmail.com
Sat Oct 14 09:07:54 UTC 2017


On 14/10/17 07:54, Andreas Tille wrote:
> On Fri, Oct 13, 2017 at 08:00:36PM +0200, Andreas Tille wrote:
>>
>> I might try to pick some of the failed tests from the logs.  I did so
>> once with kind of iterative uploads for python-cogent package by
>> checking the logs of the failing architectures.  If you think the proper
>> way would be to login to each single architecture and build there this
>> would not fit into my time frame I'm willing to spent on this task.
> 
> I treid to approach this by re-using the exclusion mechanism that was
> used before (but not activated) in the rules file of pandas[1]:
> 
>   
> diff --git a/debian/rules b/debian/rules
> index 286e36561..186ae36f1 100755
> --- a/debian/rules
> +++ b/debian/rules
> @@ -24,17 +24,8 @@ UVER_PYSHORT := $(shell echo $(UVER_PY) | sed -e 's,+git.*,,g')
>   
>   MIN_CYTHONVER = 0.23
>   
> -ifneq ($(DEB_HOST_ARCH),amd64)
> -       # obtained by   grep -e 'ERROR:' -e 'FAIL:' pandas-sid.log |awk '{print $2;}' | sed -e 's,^test,,g' | tr '\n' '|'
> -       # on log of failed tests on mips build box on pandas 0.19.2-1
> -       # Majority of them is probably due to a bug in NumPy https://github.com/numpy/numpy/issues/8325
> -       # of incorrectly treating NaT on non-amd64 platforms
> -       # So for stretch release for now disabling those tests on non-amd64
> -    # plot ones are excluded due to seems to be a bug in matplotlib which shows up
> -    # on s390
> -       # EXCLUDE_TESTS_ARCH := --exclude 'test(_frame_from_json_to_json|_misc_example|ArrayNumpyLabelled|DataFrameNumpyLabelled|_resample_timedelta_values|_timestamp_compare|_where_timedelta|ArrayNumpyExcept|_resample_datetime_values|_NaT_cast|_where_datetime|_where_datetime|_datetimelikes_nan|_value_counts_normalized|_agg_dict_parameter_cast_result_dtypes|_boxplot|_boxplot_vertical|_errorbar_plot|_hist_df|_line_area_stacked|_plot|_round_trip_valid_encodings)'
> -    # Try without excludes now that we are so much in the future ;)
> -       EXCLUDE_TESTS_ARCH :=
> +ifeq ($(DEB_HOST_ARCH),$(filter $(DEB_HOST_ARCH), arm64 armel armhf mips mips64el mipsel s390x alpha hppa powerpc ppc64))
> +       EXCLUDE_TESTS_ARCH := --exclude 'test(test_value_counts_normalized|test_resample_timedelta_values|test_resample_datetime_values|test_datetimelikes_nan|test_where_datetime|test_timestamp_compare|test_agg_dict_parameter_cast_result_dtypes|test_NaT_cast|test_where_datetime|test_where_timedelta)'
>   else
>          EXCLUDE_TESTS_ARCH :=
>   endif
> 
> 
> Unfortunately this ends up in:
> 
> ...
> pandas_datareader: None
> usage: pytest.py [options] [file_or_dir] [file_or_dir] [...]
> pytest.py: error: unrecognized arguments: --exclude
>    inifile: /<<PKGBUILDDIR>>/setup.cfg
>    rootdir: /<<PKGBUILDDIR>>
> debian/rules:109: recipe for target 'python-test2.7' failed
> ...
> 
> I confirm that I have not found the --exclude option for pytest.
> 
> I'm not that experienced with pytest.  From some short research I had
> the idea to quilt patch some "slow" markers for the failing tests and
> for the affected architectures ignore those "slow" tests.
> 
> Any better technical idea?

Indeed you could use a custom "slow" marker for it. The corresponding 
patch should be upstreamable too if appropriately motivated.

Ghis



More information about the debian-science-maintainers mailing list