diff options
author | Steve Dower <steve.dower@microsoft.com> | 2022-04-29 14:06:45 +0100 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2022-04-30 09:06:15 -0400 |
commit | d7a7f8970a7497b12b78577a66e2a0f26944363a (patch) | |
tree | fa8c51e838959d9c6aaaea90c00765b9e1c9a5bc /tests/test_parser.py | |
parent | 329403bd7b3637854dd71cf1d46d084644289985 (diff) | |
download | python-coveragepy-git-d7a7f8970a7497b12b78577a66e2a0f26944363a.tar.gz |
build: Build and test tweaks to help with cross-compilation
For context, I've been testing whether a range of popular libraries are going to work on Windows ARM64. (This requires compiling on a regular x64 machine and then copying the wheel to an ARM64 one for testing.)
The good news is, coverage seems to be just fine without any changes. However, because of a few assumptions in the test suite about always testing an in-place build, I had to make some tweaks to be able to run tests. My proposed tweaks should be fine for current uses, but they also allow the following:
* support `SETUPTOOLS_EXT_SUFFIX` when building to override the pyd tag on Windows (used with `setup.py build_ext -L <path>` to point at [pythonarm64](https://www.nuget.org/packages/pythonarm64/) import libraries to do the cross-compile)
* allow `COVERAGE_INSTALL_ARGS` to override how the tests install coverage into a venv (allows to point at a wheel rather than rebuilding from the sources)
* allow `python igor.py remove_extension --from-install` to delete the extension module from `site-packages` rather than only the source tree
* other changes to allow removing the `coverage` directory from the source tree before tests so that the installed copy will be used instead.
I've tested these on my own Windows ARM64 machine, though unfortunately there aren't any available on CI services yet. If you wanted to start releasing (preview) wheels for win-arm64 you can, but there's no support (yet) in `cibuildwheel` or `build` to do it (because those tools don't really have a concept of cross-compilation for Windows at all... yet ;-) ).
For the linter
Diffstat (limited to 'tests/test_parser.py')
-rw-r--r-- | tests/test_parser.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/tests/test_parser.py b/tests/test_parser.py index 2393ccd1..29c93035 100644 --- a/tests/test_parser.py +++ b/tests/test_parser.py @@ -510,8 +510,9 @@ def test_ast_dump(): # Run the AST_DUMP code to make sure it doesn't fail, with some light # assertions. Use parser.py as the test code since it is the longest file, # and fitting, since it's the AST_DUMP code. + import coverage.parser files = [ - os.path.join(TESTS_DIR, "../coverage/parser.py"), + coverage.parser.__file__, os.path.join(TESTS_DIR, "stress_phystoken.tok"), ] for fname in files: |