-
-
Notifications
You must be signed in to change notification settings - Fork 636
Fix windows acceptance tests #641
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
Fix windows acceptance tests #641
Conversation
name = "files", | ||
srcs = glob( | ||
include = [ | ||
"*.exe", |
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.
The interpreter was missing from py3_runtime.all_files
on windows
|
||
_WINDOWS_RUNNER_TEMPLATE = """\ | ||
@ECHO OFF | ||
set PATHEXT=.COM;.EXE;.BAT |
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.
The way windows figures out something is executable is through this environment variable.
if is_windows: | ||
newline = "\r\n" | ||
os.environ["HOME"] = tempfile.mkdtemp() | ||
os.environ["LocalAppData"] = tempfile.mkdtemp() |
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.
Bazel requires these variables be set or some flags be explicitly provided. This is easier IMO
|
||
is_windows = "win" in sys.platform | ||
if is_windows: | ||
newline = "\r\n" |
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.
Maybe python has a built in constant for this. Would be nice.
newline.join( | ||
[ | ||
'build --override_repository rules_python="{}"'.format( | ||
rules_python_path.replace("\\", "/") |
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.
Bazel can understand Windows paths with forward slashes.
output = stream.read() | ||
self.assertEqual(output, "Python %python_version%\n") | ||
output = stream.read().strip() | ||
self.assertEqual(output, "Python %python_version%") |
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.
Newline can be different on different system. Better to just strip whitespace.
|
||
# Windows makes use of runfiles for some rules | ||
build --enable_runfiles | ||
startup --windows_enable_symlinks |
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.
This flag is required to enable runfiles on windows
is_windows = "win" in sys.platform | ||
if is_windows: | ||
newline = "\r\n" | ||
os.environ["HOME"] = tempfile.mkdtemp() |
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.
We can use TEST_TMPDIR
provided by Bazel.
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.
Yeah, that'd be much better since it should show up in sandbox paths, making things more debuggable.
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.
os.environ["HOME"] = tempfile.mkdtemp() | |
home = os.path.join(os.environ["TEST_TMPDIR"], "HOME") | |
os.mkdir(home) | |
os.environ["HOME"] = home |
Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: compile zstd if missing Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: buildifier Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: make python_repositories reproducible Signed-off-by: Thulio Ferraz Assis <[email protected]> rename: python_repositories -> python_repository Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: linter Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: make interpreter files publicly visible Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: add files to py_runtime Signed-off-by: Thulio Ferraz Assis <[email protected]> Account for some platforms not having all versions Added windows support to hermetic toolchains (bazel-contrib#628) * Added windows support to hermetic toolchains * Update python/repositories.bzl Co-authored-by: Thulio Ferraz Assis <[email protected]> * Update python/repositories.bzl Co-authored-by: Thulio Ferraz Assis <[email protected]> * Update python/repositories.bzl Co-authored-by: Thulio Ferraz Assis <[email protected]> * Update python/repositories.bzl Co-authored-by: Thulio Ferraz Assis <[email protected]> Co-authored-by: Thulio Ferraz Assis <[email protected]> refactor: simplify logic for release urls Also, added a helper target to print the release hashes. Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: Provide a host platform alias (bazel-contrib#635) * feat: Provide a host platform alias This lets users and repository rules access the interpreter for whatever host the repository is running on. * Apply suggestions from code review Co-authored-by: Thulio Ferraz Assis <[email protected]> fix: files excludes Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: macOS dislikes --recursive Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: buildifier issues Signed-off-by: Thulio Ferraz Assis <[email protected]> Allow previous indygreg releases (bazel-contrib#636) This gives us more python patch versions fix: put back zstd support for older releases Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: hash calculator Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: use hermetic interpreter with pip_parse and pip_install Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: add missing attrs back for zstd Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: expose zstd attributes Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: normalize OS names Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: linting issues Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: support windows in the aliases Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: linting issues Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: windows python.exe instead of python3.exe Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: use consts for OS names Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: always use latest toolchain for test Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: expose versions.bzl Signed-off-by: Thulio Ferraz Assis <[email protected]> refactor: move toolchain tests out of private Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: acceptance tests for the toolchains Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: rewrite test in py to work on windows Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: README example Co-authored-by: UebelAndre <[email protected]> fix: use toolchain to run acceptance tests Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: use matrix for acceptance tests Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: support acceptance_tests on windows Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: alias for pip Signed-off-by: Thulio Ferraz Assis <[email protected]> fix?: include call to windows cmd Signed-off-by: Thulio Ferraz Assis <[email protected]> Fix windows acceptance tests (bazel-contrib#641) * Fix windows acceptance tests * test * todo: remove Co-authored-by: Thulio Ferraz Assis <[email protected]> refactor: polishing Windows testing support Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: unset py2_runtime Signed-off-by: Thulio Ferraz Assis <[email protected]> rename: host -> resolved_interpreter Signed-off-by: Thulio Ferraz Assis <[email protected]> doc: add reference to quirks in python-build-standalone Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: allow a distutils.cfg to be passed Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: buildifier (again) Signed-off-by: Thulio Ferraz Assis <[email protected]> Minor code review suggestions
Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: compile zstd if missing Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: buildifier Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: make python_repositories reproducible Signed-off-by: Thulio Ferraz Assis <[email protected]> rename: python_repositories -> python_repository Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: linter Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: make interpreter files publicly visible Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: add files to py_runtime Signed-off-by: Thulio Ferraz Assis <[email protected]> Account for some platforms not having all versions Added windows support to hermetic toolchains (#628) * Added windows support to hermetic toolchains * Update python/repositories.bzl Co-authored-by: Thulio Ferraz Assis <[email protected]> * Update python/repositories.bzl Co-authored-by: Thulio Ferraz Assis <[email protected]> * Update python/repositories.bzl Co-authored-by: Thulio Ferraz Assis <[email protected]> * Update python/repositories.bzl Co-authored-by: Thulio Ferraz Assis <[email protected]> Co-authored-by: Thulio Ferraz Assis <[email protected]> refactor: simplify logic for release urls Also, added a helper target to print the release hashes. Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: Provide a host platform alias (#635) * feat: Provide a host platform alias This lets users and repository rules access the interpreter for whatever host the repository is running on. * Apply suggestions from code review Co-authored-by: Thulio Ferraz Assis <[email protected]> fix: files excludes Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: macOS dislikes --recursive Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: buildifier issues Signed-off-by: Thulio Ferraz Assis <[email protected]> Allow previous indygreg releases (#636) This gives us more python patch versions fix: put back zstd support for older releases Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: hash calculator Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: use hermetic interpreter with pip_parse and pip_install Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: add missing attrs back for zstd Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: expose zstd attributes Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: normalize OS names Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: linting issues Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: support windows in the aliases Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: linting issues Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: windows python.exe instead of python3.exe Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: use consts for OS names Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: always use latest toolchain for test Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: expose versions.bzl Signed-off-by: Thulio Ferraz Assis <[email protected]> refactor: move toolchain tests out of private Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: acceptance tests for the toolchains Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: rewrite test in py to work on windows Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: README example Co-authored-by: UebelAndre <[email protected]> fix: use toolchain to run acceptance tests Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: use matrix for acceptance tests Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: support acceptance_tests on windows Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: alias for pip Signed-off-by: Thulio Ferraz Assis <[email protected]> fix?: include call to windows cmd Signed-off-by: Thulio Ferraz Assis <[email protected]> Fix windows acceptance tests (#641) * Fix windows acceptance tests * test * todo: remove Co-authored-by: Thulio Ferraz Assis <[email protected]> refactor: polishing Windows testing support Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: unset py2_runtime Signed-off-by: Thulio Ferraz Assis <[email protected]> rename: host -> resolved_interpreter Signed-off-by: Thulio Ferraz Assis <[email protected]> doc: add reference to quirks in python-build-standalone Signed-off-by: Thulio Ferraz Assis <[email protected]> feat: allow a distutils.cfg to be passed Signed-off-by: Thulio Ferraz Assis <[email protected]> fix: buildifier (again) Signed-off-by: Thulio Ferraz Assis <[email protected]> Minor code review suggestions
* feat: cpython toolchains for linux and macos Signed-off-by: Thulio Ferraz Assis <[email protected]> * feat: compile zstd if missing Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: buildifier Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: make python_repositories reproducible Signed-off-by: Thulio Ferraz Assis <[email protected]> * rename: python_repositories -> python_repository Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: linter Signed-off-by: Thulio Ferraz Assis <[email protected]> * feat: make interpreter files publicly visible Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: add files to py_runtime Signed-off-by: Thulio Ferraz Assis <[email protected]> * Account for some platforms not having all versions * Added windows support to hermetic toolchains (#628) * Added windows support to hermetic toolchains * Update python/repositories.bzl Co-authored-by: Thulio Ferraz Assis <[email protected]> * Update python/repositories.bzl Co-authored-by: Thulio Ferraz Assis <[email protected]> * Update python/repositories.bzl Co-authored-by: Thulio Ferraz Assis <[email protected]> * Update python/repositories.bzl Co-authored-by: Thulio Ferraz Assis <[email protected]> Co-authored-by: Thulio Ferraz Assis <[email protected]> * refactor: simplify logic for release urls Also, added a helper target to print the release hashes. Signed-off-by: Thulio Ferraz Assis <[email protected]> * feat: Provide a host platform alias (#635) * feat: Provide a host platform alias This lets users and repository rules access the interpreter for whatever host the repository is running on. * Apply suggestions from code review Co-authored-by: Thulio Ferraz Assis <[email protected]> * fix: files excludes Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: macOS dislikes --recursive Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: buildifier issues Signed-off-by: Thulio Ferraz Assis <[email protected]> * Allow previous indygreg releases (#636) This gives us more python patch versions * fix: put back zstd support for older releases Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: hash calculator Signed-off-by: Thulio Ferraz Assis <[email protected]> * feat: use hermetic interpreter with pip_parse and pip_install Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: add missing attrs back for zstd Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: expose zstd attributes Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: normalize OS names Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: linting issues Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: support windows in the aliases Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: linting issues Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: windows python.exe instead of python3.exe Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: use consts for OS names Signed-off-by: Thulio Ferraz Assis <[email protected]> * feat: always use latest toolchain for test Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: expose versions.bzl Signed-off-by: Thulio Ferraz Assis <[email protected]> * refactor: move toolchain tests out of private Signed-off-by: Thulio Ferraz Assis <[email protected]> * feat: acceptance tests for the toolchains Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: rewrite test in py to work on windows Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: README example Co-authored-by: UebelAndre <[email protected]> * fix: use toolchain to run acceptance tests Signed-off-by: Thulio Ferraz Assis <[email protected]> * feat: use matrix for acceptance tests Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: support acceptance_tests on windows Signed-off-by: Thulio Ferraz Assis <[email protected]> * feat: alias for pip Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix?: include call to windows cmd Signed-off-by: Thulio Ferraz Assis <[email protected]> * Fix windows acceptance tests (#641) * Fix windows acceptance tests * test * todo: remove Co-authored-by: Thulio Ferraz Assis <[email protected]> * refactor: polishing Windows testing support Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: unset py2_runtime Signed-off-by: Thulio Ferraz Assis <[email protected]> * rename: host -> resolved_interpreter Signed-off-by: Thulio Ferraz Assis <[email protected]> * doc: add reference to quirks in python-build-standalone Signed-off-by: Thulio Ferraz Assis <[email protected]> * feat: allow a distutils.cfg to be passed Signed-off-by: Thulio Ferraz Assis <[email protected]> * fix: buildifier (again) Signed-off-by: Thulio Ferraz Assis <[email protected]> * Minor code review suggestions (#642) * Minor code review suggestions * Apply suggestions from code review Co-authored-by: Thulio Ferraz Assis <[email protected]> * fix: depset concat Signed-off-by: Thulio Ferraz Assis <[email protected]> Co-authored-by: Alex Eagle <[email protected]> Co-authored-by: UebelAndre <[email protected]>
PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
Issue Number: N/A
What is the new behavior?
Does this PR introduce a breaking change?
Other information