-
Notifications
You must be signed in to change notification settings - Fork 662
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI: add 32-bit Win to CI #2696
CI: add 32-bit Win to CI #2696
Changes from 3 commits
336d3ff
522f9ae
2392c35
d6ea367
0b560f5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
trigger: | ||
# start a new build for every push | ||
batch: False | ||
branches: | ||
include: | ||
- develop | ||
paths: | ||
include: | ||
- '*' | ||
|
||
pr: | ||
branches: | ||
include: | ||
- '*' # must quote since "*" is a YAML reserved character; we want a string | ||
|
||
|
||
jobs: | ||
- job: Windows | ||
condition: and(succeeded(), ne(variables['Build.SourceBranch'], 'refs/heads/master')) # skip for PR merges | ||
pool: | ||
vmImage: 'VS2017-Win2016' | ||
strategy: | ||
maxParallel: 4 | ||
matrix: | ||
Python37-32bit-full: | ||
PYTHON_VERSION: '3.7' | ||
PYTHON_ARCH: 'x86' | ||
BITS: 32 | ||
steps: | ||
- task: UsePythonVersion@0 | ||
inputs: | ||
versionSpec: $(PYTHON_VERSION) | ||
addToPath: true | ||
architecture: $(PYTHON_ARCH) | ||
- script: python -m pip install --upgrade pip setuptools wheel | ||
displayName: 'Install tools' | ||
- script: python -m pip install numpy scipy cython pytest pytest-xdist matplotlib | ||
displayName: 'Install dependencies' | ||
- powershell: | | ||
cd package | ||
python setup.py install | ||
cd ..\testsuite | ||
python setup.py install | ||
cd .. | ||
displayName: 'Build MDAnalysis' | ||
- powershell: | | ||
cd testsuite | ||
pytest .\MDAnalysisTests --disable-pytest-warnings -n 2 | ||
displayName: 'Run MDAnalysis Test Suite' |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -398,6 +398,8 @@ class TestNotWithin(object): | |
def u(): | ||
return mda.Universe(GRO) | ||
|
||
@pytest.mark.skipif(sys.maxsize <= 2**32, | ||
reason="non-kdtree density too large for 32-bit") | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. memory allocation issue specifically, I think |
||
def test_within(self, u): | ||
vers1 = density.notwithin_coordinates_factory(u, 'resname SOL', | ||
'protein', 2, | ||
|
@@ -410,6 +412,8 @@ def test_within(self, u): | |
|
||
assert_equal(vers1, vers2) | ||
|
||
@pytest.mark.skipif(sys.maxsize <= 2**32, | ||
reason="non-kdtree density too large for 32-bit") | ||
def test_not_within(self, u): | ||
vers1 = density.notwithin_coordinates_factory(u, 'resname SOL', | ||
'protein', 2, | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -73,6 +73,8 @@ def test_relative(self): | |
fixed = check_and_fix_long_filename(abspath) | ||
assert fixed == self.filename | ||
|
||
@pytest.mark.skipif(os.name == 'nt' and sys.maxsize <= 2**32, | ||
reason="FileNotFoundError on Win 32-bit") | ||
def test_symlink_dir(self, tmpdir): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Was this also because of not having symlinking privileges, or is it some weirdness with Windows paths and (Just out of interest; I'm not sure hole2 even supports Windows.) |
||
dirname = 'really_'*20 +'long_name' | ||
short_name = self.filename[-20:] | ||
|
@@ -86,6 +88,8 @@ def test_symlink_dir(self, tmpdir): | |
assert os.path.islink(fixed) | ||
assert fixed.endswith(short_name) | ||
|
||
@pytest.mark.skipif(os.name == 'nt' and sys.maxsize <= 2**32, | ||
reason="OSError: symbolic link privilege not held") | ||
def test_symlink_file(self, tmpdir): | ||
long_name = 'a'*10 + self.filename | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -55,7 +55,7 @@ def test_moltypes(self, top): | |
def test_molnums(self, top): | ||
molnums = top.molnums.values | ||
assert_equal(molnums, self.ref_molnums) | ||
assert molnums.dtype == np.int64 | ||
assert molnums.dtype == np.intp | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. While nobody likes changing unit tests to make them pass, I think the proposed approach (from Richard and maybe Lily?) for portability is that integer indexing will now be platform-sized rather than coerced to |
||
|
||
|
||
class TestTPR(TPRAttrs): | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this
astype
necessary? I think it required coercion earlier asresindices
areintp
typically.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've pushed in a commit to remove it--32-bit Windows suite passed locally without it. I didn't have time to run the suite for 64-bit linux as well, but fingers crossed.