github/workflows: Improve MSYS2-based CI builds.
Install the mingw variant of Python since it behaves more like a 'real' Windows CPython than the msys2 variant: os.name == 'nt', not 'posix'. Note that os.sep is still '/' though so we don't actually need to skip the import_file test. This way one single Python version can be used both for running run-tests.py and getting the expected test output. Signed-off-by: stijn <stijn@ignitron.net>
This commit is contained in:
parent
233f5ce661
commit
a0c7bf12d2
|
@ -108,16 +108,6 @@ jobs:
|
|||
run:
|
||||
shell: msys2 {0}
|
||||
steps:
|
||||
- name: Get Python path
|
||||
id: python_path
|
||||
shell: python
|
||||
run: |
|
||||
import os
|
||||
import sys
|
||||
output = f"python={os.fspath(sys.executable)}"
|
||||
print(output)
|
||||
with open(os.environ["GITHUB_OUTPUT"], "w") as f:
|
||||
f.write(output)
|
||||
- uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: ${{ matrix.sys }}
|
||||
|
@ -126,7 +116,7 @@ jobs:
|
|||
make
|
||||
mingw-w64-${{ matrix.env }}-gcc
|
||||
pkg-config
|
||||
python3
|
||||
mingw-w64-${{ matrix.env }}-python3
|
||||
git
|
||||
diffutils
|
||||
- uses: actions/checkout@v4
|
||||
|
@ -138,8 +128,7 @@ jobs:
|
|||
run: make -C ports/windows -j2 VARIANT=${{ matrix.variant }}
|
||||
- name: Run tests
|
||||
id: test
|
||||
# msys python breaks tests so we need to use "real" windows python
|
||||
run: MICROPY_CPYTHON3=$(cygpath "${{ steps.python_path.outputs.python }}") make -C ports/windows test_full VARIANT=${{ matrix.variant }}
|
||||
run: make -C ports/windows test_full VARIANT=${{ matrix.variant }}
|
||||
- name: Print failures
|
||||
if: failure() && steps.test.conclusion == 'failure'
|
||||
working-directory: tests
|
||||
|
|
|
@ -101,6 +101,9 @@ include $(TOP)/py/mkrules.mk
|
|||
|
||||
.PHONY: test test_full
|
||||
|
||||
# Note for recent gcc versions like 13.2:
|
||||
# - mingw64-x86_64 gcc builds will pass the math_domain_special test
|
||||
# - mingw64-ucrt64 gcc builds will pass all of the below tests
|
||||
RUN_TESTS_SKIP += -e math_fun -e float2int_double -e float_parse -e math_domain_special
|
||||
|
||||
test: $(BUILD)/$(PROG) $(TOP)/tests/run-tests.py
|
||||
|
|
|
@ -45,7 +45,7 @@ Install MSYS2 from http://repo.msys2.org/distrib, start the msys2.exe shell and
|
|||
install the build tools:
|
||||
|
||||
pacman -Syuu
|
||||
pacman -S make mingw-w64-x86_64-gcc pkg-config python3
|
||||
pacman -S make mingw-w64-x86_64-gcc pkg-config mingw-w64-x86_64-python3
|
||||
|
||||
Start the mingw64.exe shell and build:
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
import sysconfig
|
||||
import platform
|
||||
import argparse
|
||||
import inspect
|
||||
|
@ -583,10 +584,6 @@ def run_tests(pyb, tests, args, result_dir, num_threads=1):
|
|||
# fails with stack overflow on Debug builds
|
||||
skip_tests.add("misc/sys_settrace_features.py")
|
||||
|
||||
if os.getenv("MSYSTEM") is not None:
|
||||
# fails due to wrong path separator
|
||||
skip_tests.add("import/import_file.py")
|
||||
|
||||
if upy_float_precision == 0:
|
||||
skip_tests.add("extmod/uctypes_le_float.py")
|
||||
skip_tests.add("extmod/uctypes_native_float.py")
|
||||
|
@ -711,7 +708,9 @@ def run_tests(pyb, tests, args, result_dir, num_threads=1):
|
|||
|
||||
# Some tests use unsupported features on Windows
|
||||
if os.name == "nt":
|
||||
skip_tests.add("import/import_file.py") # works but CPython prints forward slashes
|
||||
if not sysconfig.get_platform().startswith("mingw"):
|
||||
# Works but CPython uses '\' path separator
|
||||
skip_tests.add("import/import_file.py")
|
||||
|
||||
# Some tests are known to fail with native emitter
|
||||
# Remove them from the below when they work
|
||||
|
|
Loading…
Reference in New Issue