vc: improvements for testing (#28887)
This commit is contained in:
parent
206cd94c0b
commit
1500246ab7
@ -10,32 +10,35 @@ class Vc(CMakePackage):
|
||||
"""SIMD Vector Classes for C++"""
|
||||
|
||||
homepage = "https://github.com/VcDevel/Vc"
|
||||
url = "https://github.com/VcDevel/Vc/archive/1.3.0.tar.gz"
|
||||
git = "https://github.com/VcDevel/Vc.git"
|
||||
url = "https://github.com/VcDevel/Vc/archive/refs/tags/1.3.3.tar.gz"
|
||||
|
||||
version("1.4.2", sha256="50d3f151e40b0718666935aa71d299d6370fafa67411f0a9e249fbce3e6e3952")
|
||||
version("1.4.1", sha256="7e8b57ed5ff9eb0835636203898c21302733973ff8eaede5134dd7cb87f915f6")
|
||||
version("1.3.3", sha256="32f1bdd4046a90907a2b63ee39d72ad0e6d0608937f8202d759d7fa0eddd1ec1")
|
||||
version("1.3.0", sha256="2309a19eea136e1f9d5629305b2686e226093e23fe5b27de3d6e3d6084991c3a")
|
||||
version("1.2.0", sha256="9cd7b6363bf40a89e8b1d2b39044b44a4ce3f1fd6672ef3fc45004198ba28a2b")
|
||||
version("1.1.0", sha256="281b4c6152fbda11a4b313a0a0ca18565ee049a86f35f672f1383967fef8f501")
|
||||
|
||||
variant(
|
||||
"build_type",
|
||||
default="RelWithDebInfo",
|
||||
description="The build type to build",
|
||||
values=("Debug", "Release", "RelWithDebug", "RelWithDebInfo", "MinSizeRel"),
|
||||
)
|
||||
|
||||
# Build fails without it when --test is used, can't be type='test':
|
||||
depends_on("virtest")
|
||||
|
||||
def patch(self):
|
||||
tests = FileFilter("tests/CMakeLists.txt")
|
||||
tests.filter(";AVX2", "")
|
||||
tests.filter(".*logarithm.*", "")
|
||||
tests.filter(".*trigonometric.*", "")
|
||||
|
||||
def cmake_args(self):
|
||||
if self.run_tests:
|
||||
return ["-DBUILD_TESTING=ON"]
|
||||
else:
|
||||
return ["-DBUILD_TESTING=OFF"]
|
||||
@run_before("cmake")
|
||||
def fetch_additional_sources(self):
|
||||
"""Starting from 1.4:, the test suite requires both the virtest framework
|
||||
and some test data. Both are intended to be set up as git submodules,
|
||||
but due to the size of the test data (around 300MB), it is more efficient
|
||||
to set those up only as needed.
|
||||
"""
|
||||
if self.run_tests and self.spec.satisfies("@1.4.0:"):
|
||||
git = which("git")
|
||||
with working_dir(join_path(self.stage.source_path, "tests/testdata")):
|
||||
git("clone", "--filter=tree:0", "https://github.com/VcDevel/vc-testdata", ".")
|
||||
# NOTE to maintainers: when adding new versions,
|
||||
# check if the commit hash changed:
|
||||
# https://github.com/VcDevel/Vc/tree/1.4/tests
|
||||
git("fetch", "origin", "9ada1f34d6a41f1b5553d6223f277eae72c039d3")
|
||||
git("checkout", "9ada1f34d6a41f1b5553d6223f277eae72c039d3")
|
||||
with working_dir(join_path(self.stage.source_path, "tests/virtest")):
|
||||
git("clone", "https://github.com/mattkretz/virtest/", ".")
|
||||
# NOTE to maintainers: when adding new versions,
|
||||
# check if the commit hash changed:
|
||||
# https://github.com/VcDevel/Vc/tree/1.4/tests
|
||||
git("checkout", "f7d03ef39fceba168745bd29e1b20af6e7971e04")
|
||||
|
@ -1,33 +0,0 @@
|
||||
# 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 os
|
||||
|
||||
from spack.package import *
|
||||
|
||||
|
||||
class Virtest(CMakePackage):
|
||||
"""Header-only unit test framework, as easy as possible to use"""
|
||||
|
||||
homepage = "https://github.com/mattkretz/virtest"
|
||||
git = "https://github.com/mattkretz/virtest.git"
|
||||
maintainers("bernhardkaindl")
|
||||
|
||||
version("master", branch="master")
|
||||
|
||||
def patch(self):
|
||||
script = FileFilter("tests/CMakeLists.txt")
|
||||
script.filter(
|
||||
r" *\${CMAKE_CTEST_COMMAND} -V -R \${target}",
|
||||
'${CMAKE_CTEST_COMMAND} -V -R "^${target}$"',
|
||||
)
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
env.prepend_path("CPATH", self.prefix.include.vir)
|
||||
|
||||
@run_after("install")
|
||||
def rename_include_for_vc_package(self):
|
||||
with working_dir(self.prefix.include):
|
||||
os.rename("vir", "virtest")
|
Loading…
Reference in New Issue
Block a user