summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorValentin Volkl <valentin.volkl@cern.ch>2023-03-01 14:29:43 +0100
committerGitHub <noreply@github.com>2023-03-01 14:29:43 +0100
commit1500246ab75910f4dd485e216731289713735894 (patch)
tree578f739cc54cdafdf86d393ddeba5530a72a3912 /var
parent206cd94c0bb774b1e913d87f1f84b9f139b5d9fd (diff)
downloadspack-1500246ab75910f4dd485e216731289713735894.tar.gz
spack-1500246ab75910f4dd485e216731289713735894.tar.bz2
spack-1500246ab75910f4dd485e216731289713735894.tar.xz
spack-1500246ab75910f4dd485e216731289713735894.zip
vc: improvements for testing (#28887)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/vc/package.py47
-rw-r--r--var/spack/repos/builtin/packages/virtest/package.py33
2 files changed, 25 insertions, 55 deletions
diff --git a/var/spack/repos/builtin/packages/vc/package.py b/var/spack/repos/builtin/packages/vc/package.py
index 6e44beb40f..3f146372b9 100644
--- a/var/spack/repos/builtin/packages/vc/package.py
+++ b/var/spack/repos/builtin/packages/vc/package.py
@@ -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")
diff --git a/var/spack/repos/builtin/packages/virtest/package.py b/var/spack/repos/builtin/packages/virtest/package.py
deleted file mode 100644
index 960a07b2be..0000000000
--- a/var/spack/repos/builtin/packages/virtest/package.py
+++ /dev/null
@@ -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")