spack/var/spack/repos/builtin.mock/packages/build-warnings/package.py
markus-ferrell d823037c40
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
2023-08-14 13:15:40 -07:00

50 lines
1.7 KiB
Python

# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import sys
from spack.package import *
class BuildWarnings(Package):
"""This package's install fails but only emits warnings."""
homepage = "http://www.example.com/trivial_install"
url = "http://www.unit-test-should-replace-this-url/trivial_install-1.0.tar.gz"
version("1.0", md5="0123456789abcdef0123456789abcdef")
def install(self, spec, prefix):
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()