kopia lustrzana https://github.com/micropython/micropython
windows: 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>pull/14188/head
rodzic
57de9da352
commit
1513f4753c
|
@ -108,16 +108,6 @@ jobs:
|
||||||
run:
|
run:
|
||||||
shell: msys2 {0}
|
shell: msys2 {0}
|
||||||
steps:
|
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
|
- uses: msys2/setup-msys2@v2
|
||||||
with:
|
with:
|
||||||
msystem: ${{ matrix.sys }}
|
msystem: ${{ matrix.sys }}
|
||||||
|
@ -126,7 +116,7 @@ jobs:
|
||||||
make
|
make
|
||||||
mingw-w64-${{ matrix.env }}-gcc
|
mingw-w64-${{ matrix.env }}-gcc
|
||||||
pkg-config
|
pkg-config
|
||||||
python3
|
mingw-w64-${{ matrix.env }}-python3
|
||||||
git
|
git
|
||||||
diffutils
|
diffutils
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
|
@ -138,8 +128,7 @@ jobs:
|
||||||
run: make -C ports/windows -j2 VARIANT=${{ matrix.variant }}
|
run: make -C ports/windows -j2 VARIANT=${{ matrix.variant }}
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
id: test
|
id: test
|
||||||
# msys python breaks tests so we need to use "real" windows python
|
run: make -C ports/windows test_full VARIANT=${{ matrix.variant }}
|
||||||
run: MICROPY_CPYTHON3=$(cygpath "${{ steps.python_path.outputs.python }}") make -C ports/windows test_full VARIANT=${{ matrix.variant }}
|
|
||||||
- name: Print failures
|
- name: Print failures
|
||||||
if: failure() && steps.test.conclusion == 'failure'
|
if: failure() && steps.test.conclusion == 'failure'
|
||||||
working-directory: tests
|
working-directory: tests
|
||||||
|
|
|
@ -101,6 +101,9 @@ include $(TOP)/py/mkrules.mk
|
||||||
|
|
||||||
.PHONY: test test_full
|
.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
|
RUN_TESTS_SKIP += -e math_fun -e float2int_double -e float_parse -e math_domain_special
|
||||||
|
|
||||||
test: $(BUILD)/$(PROG) $(TOP)/tests/run-tests.py
|
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:
|
install the build tools:
|
||||||
|
|
||||||
pacman -Syuu
|
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:
|
Start the mingw64.exe shell and build:
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
import sysconfig
|
||||||
import platform
|
import platform
|
||||||
import argparse
|
import argparse
|
||||||
import inspect
|
import inspect
|
||||||
|
@ -583,10 +584,6 @@ def run_tests(pyb, tests, args, result_dir, num_threads=1):
|
||||||
# fails with stack overflow on Debug builds
|
# fails with stack overflow on Debug builds
|
||||||
skip_tests.add("misc/sys_settrace_features.py")
|
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:
|
if upy_float_precision == 0:
|
||||||
skip_tests.add("extmod/uctypes_le_float.py")
|
skip_tests.add("extmod/uctypes_le_float.py")
|
||||||
skip_tests.add("extmod/uctypes_native_float.py")
|
skip_tests.add("extmod/uctypes_native_float.py")
|
||||||
|
@ -699,7 +696,9 @@ def run_tests(pyb, tests, args, result_dir, num_threads=1):
|
||||||
|
|
||||||
# Some tests use unsupported features on Windows
|
# Some tests use unsupported features on Windows
|
||||||
if os.name == "nt":
|
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
|
# Some tests are known to fail with native emitter
|
||||||
# Remove them from the below when they work
|
# Remove them from the below when they work
|
||||||
|
|
Ładowanie…
Reference in New Issue