Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gh-84461: Use HOSTRUNNER to run regression tests (GH-93694)#93694

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
tiran merged 3 commits intopython:mainfromtiran:gh-84461-regrtest
Jun 11, 2022
Merged
Show file tree
Hide file tree
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
View file
Open in desktop
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
``run_tests.py`` now handles cross compiling env vars correctly and pass
``HOSTRUNNER`` to regression tests.
46 changes: 42 additions & 4 deletionsTools/scripts/run_tests.py
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -8,7 +8,9 @@
"""

import os
import shlex
import sys
import sysconfig
import test.support


Expand All@@ -19,15 +21,37 @@ def is_multiprocess_flag(arg):
def is_resource_use_flag(arg):
return arg.startswith('-u') or arg.startswith('--use')

def is_python_flag(arg):
return arg.startswith('-p') or arg.startswith('--python')


def main(regrtest_args):
args = [sys.executable,
'-u', # Unbuffered stdout and stderr
'-W', 'default', # Warnings set to 'default'
'-bb', # Warnings about bytes/bytearray
'-E', # Ignore environment variables
]

cross_compile = '_PYTHON_HOST_PLATFORM' in os.environ
if (hostrunner := os.environ.get("_PYTHON_HOSTRUNNER")) is None:
hostrunner = sysconfig.get_config_var("HOSTRUNNER")
if cross_compile:
# emulate -E, but keep PYTHONPATH + cross compile env vars, so
# test executable can load correct sysconfigdata file.
keep = {
'_PYTHON_PROJECT_BASE',
'_PYTHON_HOST_PLATFORM',
'_PYTHON_SYSCONFIGDATA_NAME',
'PYTHONPATH'
}
environ = {
name: value for name, value in os.environ.items()
if not name.startswith(('PYTHON', '_PYTHON')) or name in keep
}
else:
environ = os.environ.copy()
args.append("-E")

# Allow user-specified interpreter options to override our defaults.
args.extend(test.support.args_from_interpreter_flags())

Expand All@@ -38,16 +62,30 @@ def main(regrtest_args):
if sys.platform == 'win32':
args.append('-n') # Silence alerts under Windows
if not any(is_multiprocess_flag(arg) for arg in regrtest_args):
args.extend(['-j', '0']) # Use all CPU cores
if cross_compile and hostrunner:
# For now use only one core for cross-compiled builds;
# hostrunner can be expensive.
args.extend(['-j', '1'])
else:
args.extend(['-j', '0']) # Use all CPU cores
if not any(is_resource_use_flag(arg) for arg in regrtest_args):
args.extend(['-u', 'all,-largefile,-audio,-gui'])

if cross_compile and hostrunner:
# If HOSTRUNNER is set and -p/--python option is not given, then
# use hostrunner to execute python binary for tests.
if not any(is_python_flag(arg) for arg in regrtest_args):
buildpython = sysconfig.get_config_var("BUILDPYTHON")
args.extend(["--python", f"{hostrunner} {buildpython}"])

args.extend(regrtest_args)
print(' '.join(args))

print(shlex.join(args))
if sys.platform == 'win32':
from subprocess import call
sys.exit(call(args))
else:
os.execv(sys.executable, args)
os.execve(sys.executable, args, environ)


if __name__ == '__main__':
Expand Down
6 changes: 5 additions & 1 deletionconfigure
View file
Open in desktop

Some generated files are not rendered by default. Learn more abouthow customized files appear on GitHub.

7 changes: 6 additions & 1 deletionconfigure.ac
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -1492,13 +1492,18 @@ then
dnl TODO: support other WASI runtimes
dnl wasmtime starts the proces with "/" as CWD. For OOT builds add the
dnl directory containing _sysconfigdata to PYTHONPATH.
[WASI/*], [HOSTRUNNER='wasmtime run --env PYTHONPATH=$$(realpath --relative-to $(abs_srcdir) $(abs_builddir))/$$(cat pybuilddir.txt) --mapdir /::$(srcdir) --'],
[WASI/*], [HOSTRUNNER='wasmtime run --env PYTHONPATH=/$(shellrealpath --relative-to $(abs_srcdir) $(abs_builddir))/$(shellcat pybuilddir.txt) --mapdir /::$(srcdir) --'],
[HOSTRUNNER='']
)
fi
AC_SUBST([HOSTRUNNER])
AC_MSG_RESULT([$HOSTRUNNER])

if test -n "$HOSTRUNNER"; then
dnl Pass hostrunner variable as env var in order to expand shell expressions.
PYTHON_FOR_BUILD="_PYTHON_HOSTRUNNER='$HOSTRUNNER' $PYTHON_FOR_BUILD"
fi

AC_MSG_RESULT($LDLIBRARY)

# LIBRARY_DEPS, LINK_PYTHON_OBJS and LINK_PYTHON_DEPS variable
Expand Down

[8]ページ先頭

©2009-2025 Movatter.jp