Skip to content

Conversation

@bemoody
Copy link
Collaborator

@bemoody bemoody commented Sep 30, 2021

  1. While running the test suite, set the numpy error handling mode to raise exceptions on arithmetic errors (as opposed to the default behavior of showing a warning, which doesn't cause the test to fail and is difficult to debug.)

  2. In addition to the current matrix of tests, run tests in a 32-bit Debian 10 (oldstable) environment, in order to catch any errors that might result from different default integer sizes (is numpy.dtype(int) an int32 or an int64?) or different FP instruction sets, and also to check backward compatibility with stable versions of numpy/scipy/pandas/matplotlib/requests.

nosetests will invoke the functions setup_module() and
teardown_module(), if defined, before and after running all test cases
within the module.

In general, numpy arithmetic errors (e.g. integer or floating-point
overflow, or division by zero) should not happen under normal
circumstances, and the package should neither assume that these errors
will raise an exception, nor assume that they won't.  Therefore, while
running the test suite, set the numpy error handling mode to "raise"
so the test will fail if such an error occurs.
@bemoody bemoody force-pushed the arch-tests branch 5 times, most recently from b1d119c to bdd41c3 Compare October 1, 2021 14:57
In addition to running the test suite on the "latest" OS images
provided by GitHub, with the latest dependencies installed from pip,
also run the test suite on 32-bit Debian 10 (via Docker), with stable
dependencies installed from Debian.

This should help to catch incompatibilities with older package
versions, as well as errors due to differing CPU architectures.
@bemoody
Copy link
Collaborator Author

bemoody commented Oct 1, 2021

Regarding the i386 tests: GitHub apparently has no problem running i386 containers with docker; however, the actions/checkout@v2 command requires amd64 libc6 and libstdc++6 to be installed in the container. (actions/checkout#334). actions/checkout@v1 doesn't have this issue, though it is obviously lacking some newer features.

Of course it's possible to install amd64 libraries using dpkg --add-architecture amd64 && apt-get update && apt-get install libstdc++6:amd64, after which actions/checkout@v2 will work.

But for purposes of this test I actually prefer not to have any amd64 libraries installed, to be sure we're not inadvertently relying on them and to keep things simpler and faster. So I've used actions/checkout@v1 here, and hopefully that will keep working and/or GitHub will eventually figure out how to fix the above issue.

@tompollard
Copy link
Member

Looks good, thanks!

@tompollard tompollard merged commit 34ea7a2 into master Oct 13, 2021
@tompollard tompollard deleted the arch-tests branch October 13, 2021 16:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants