diff options
author | markus-ferrell <116021216+markus-ferrell@users.noreply.github.com> | 2023-08-14 16:15:40 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-14 13:15:40 -0700 |
commit | d823037c408e334621f4759a87256c37ab3e20be (patch) | |
tree | c974619c03f9aef458e6d00cb4622b3a8e07a849 /var/spack/repos/builtin.mock/packages | |
parent | 4d945be955474030a452891e94903e695f5a48c0 (diff) | |
download | spack-d823037c408e334621f4759a87256c37ab3e20be.tar.gz spack-d823037c408e334621f4759a87256c37ab3e20be.tar.bz2 spack-d823037c408e334621f4759a87256c37ab3e20be.tar.xz spack-d823037c408e334621f4759a87256c37ab3e20be.zip |
Windows: enable "spack install" tests (#34696)
* The module-level skip for tests in `cmd.install` on Windows is removed.
A few classes of errors still persist:
* Cdash tests are not working on Windows
* Tests for failed installs are also not working (this will require
investigating bugs in output redirection)
* Environments are not yet supported on Windows
overall though, this enables testing of most basic uses of "spack install"
* Git repositories cached for version lookups were using a layout that
mimicked the URL as much as possible. This was useful for listing the
cache directory and understanding what was present at a glance, but
the paths were overly long on Windows. On all systems, the layout is
now a single directory based on a hash of the Git URL and is shortened
(which ensures a consistent and acceptable length, and also avoids
special characters).
* In particular, this removes util.url.parse_git_url and its associated
test, which were used exclusively for generating the git cache layout
* Bootstrapping is now enabled for unit tests on Windows
Diffstat (limited to 'var/spack/repos/builtin.mock/packages')
3 files changed, 73 insertions, 31 deletions
diff --git a/var/spack/repos/builtin.mock/packages/build-error/package.py b/var/spack/repos/builtin.mock/packages/build-error/package.py index 29342bc5fc..2df3699822 100644 --- a/var/spack/repos/builtin.mock/packages/build-error/package.py +++ b/var/spack/repos/builtin.mock/packages/build-error/package.py @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import sys + from spack.package import * @@ -15,18 +17,38 @@ class BuildError(Package): version("1.0", md5="0123456789abcdef0123456789abcdef") def install(self, spec, prefix): - with open("configure", "w") as f: - f.write( - """#!/bin/sh\n -echo 'checking build system type... x86_64-apple-darwin16.6.0' -echo 'checking host system type... x86_64-apple-darwin16.6.0' -echo 'checking for gcc... /Users/gamblin2/src/spack/lib/spack/env/clang/clang' -echo 'checking whether the C compiler works... yes' -echo 'checking for C compiler default output file name... a.out' -echo 'checking for suffix of executables...' -echo 'configure: error: in /path/to/some/file:' -echo 'configure: error: cannot run C compiled programs.' -exit 1 -""" - ) - configure() + if sys.platform == "win32": + with open("configure.bat", "w") as f: + f.write( + """ + @ECHO off + ECHO checking build system type... x86_64-apple-darwin16.6.0 + ECHO checking host system type... x86_64-apple-darwin16.6.0 + ECHO checking for gcc... /Users/gamblin2/src/spack/lib/spack/env/clang/clang + ECHO checking whether the C compiler works... yes + ECHO checking for C compiler default output file name... a.out + ECHO checking for suffix of executables... + ECHO configure: error: in /path/to/some/file: + ECHO configure: error: cannot run C compiled programs. + EXIT /B 1 + """ + ) + + Executable("configure.bat")("--prefix=%s" % self.prefix) + configure() + else: + with open("configure", "w") as f: + f.write( + """#!/bin/sh\n + echo 'checking build system type... x86_64-apple-darwin16.6.0' + echo 'checking host system type... x86_64-apple-darwin16.6.0' + echo 'checking for gcc... /Users/gamblin2/src/spack/lib/spack/env/clang/clang' + echo 'checking whether the C compiler works... yes' + echo 'checking for C compiler default output file name... a.out' + echo 'checking for suffix of executables...' + echo 'configure: error: in /path/to/some/file:' + echo 'configure: error: cannot run C compiled programs.' + exit 1 + """ + ) + configure() diff --git a/var/spack/repos/builtin.mock/packages/build-warnings/package.py b/var/spack/repos/builtin.mock/packages/build-warnings/package.py index 06026896e2..ce4af309b9 100644 --- a/var/spack/repos/builtin.mock/packages/build-warnings/package.py +++ b/var/spack/repos/builtin.mock/packages/build-warnings/package.py @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import sys + from spack.package import * @@ -15,16 +17,33 @@ class BuildWarnings(Package): version("1.0", md5="0123456789abcdef0123456789abcdef") def install(self, spec, prefix): - with open("configure", "w") as f: - f.write( - """#!/bin/sh\n -echo 'checking for gcc... /Users/gamblin2/src/spack/lib/spack/env/clang/clang' -echo 'checking whether the C compiler works... yes' -echo 'checking for C compiler default output file name... a.out' -echo 'WARNING: ALL CAPITAL WARNING!' -echo 'checking for suffix of executables...' -echo 'foo.c:89: warning: some weird warning!' -exit 1 -""" - ) - configure() + if sys.platform == "win32": + with open("configure.bat", "w") as f: + f.write( + """ + @ECHO off + ECHO 'checking for gcc... /Users/gamblin2/src/spack/lib/spack/env/clang/clang' + ECHO 'checking whether the C compiler works... yes' + ECHO 'checking for C compiler default output file name... a.out' + ECHO 'WARNING: ALL CAPITAL WARNING!' + ECHO 'checking for suffix of executables...' + ECHO 'foo.c:89: warning: some weird warning!' + EXIT /B 1 + """ + ) + + Executable("configure.bat")("--prefix=%s" % self.prefix) + else: + with open("configure", "w") as f: + f.write( + """#!/bin/sh\n + echo 'checking for gcc... /Users/gamblin2/src/spack/lib/spack/env/clang/clang' + echo 'checking whether the C compiler works... yes' + echo 'checking for C compiler default output file name... a.out' + echo 'WARNING: ALL CAPITAL WARNING!' + echo 'checking for suffix of executables...' + echo 'foo.c:89: warning: some weird warning!' + exit 1 + """ + ) + configure() diff --git a/var/spack/repos/builtin.mock/packages/printing-package/package.py b/var/spack/repos/builtin.mock/packages/printing-package/package.py index 9d41e0a3a6..999b78a095 100644 --- a/var/spack/repos/builtin.mock/packages/printing-package/package.py +++ b/var/spack/repos/builtin.mock/packages/printing-package/package.py @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os + from spack.package import * @@ -20,9 +22,8 @@ class PrintingPackage(Package): def install(self, spec, prefix): print("BEFORE INSTALL") - configure("--prefix=%s" % prefix) - make() - make("install") + mkdirp(prefix) + touch(os.path.join(prefix, "dummyfile")) print("AFTER INSTALL") |