summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAcriusWinter <152348900+AcriusWinter@users.noreply.github.com>2024-08-12 14:58:09 -0700
committerGitHub <noreply@github.com>2024-08-12 15:58:09 -0600
commit63e680e4f9fed6385ddf7867ac2c6d0c2112be17 (patch)
tree037e6b12716e4e1f62be4959c1bccce847b5374d
parent27557a133ba2ad5c1fd5c874006f264693b4716b (diff)
downloadspack-63e680e4f9fed6385ddf7867ac2c6d0c2112be17.tar.gz
spack-63e680e4f9fed6385ddf7867ac2c6d0c2112be17.tar.bz2
spack-63e680e4f9fed6385ddf7867ac2c6d0c2112be17.tar.xz
spack-63e680e4f9fed6385ddf7867ac2c6d0c2112be17.zip
c: new test API (#45469)
* c: new test API * gcc: provides('c') * c: bugfix and simplification of the new stand-alone test method --------- Co-authored-by: Tamara Dahlgren <dahlgren1@llnl.gov>
-rw-r--r--etc/spack/defaults/packages.yaml1
-rw-r--r--var/spack/repos/builtin/packages/c/package.py24
-rw-r--r--var/spack/repos/builtin/packages/gcc/package.py1
3 files changed, 14 insertions, 12 deletions
diff --git a/etc/spack/defaults/packages.yaml b/etc/spack/defaults/packages.yaml
index 3056cbb5d5..2f6cf53def 100644
--- a/etc/spack/defaults/packages.yaml
+++ b/etc/spack/defaults/packages.yaml
@@ -20,6 +20,7 @@ packages:
awk: [gawk]
armci: [armcimpi]
blas: [openblas, amdblis]
+ c: [gcc]
cxx: [gcc]
D: [ldc]
daal: [intel-oneapi-daal]
diff --git a/var/spack/repos/builtin/packages/c/package.py b/var/spack/repos/builtin/packages/c/package.py
index d36fbd9ffe..5f1c33c80a 100644
--- a/var/spack/repos/builtin/packages/c/package.py
+++ b/var/spack/repos/builtin/packages/c/package.py
@@ -14,17 +14,17 @@ class C(Package):
homepage = "http://open-std.org/JTC1/SC22/WG14/www/standards"
virtual = True
- def test(self):
- test_source = self.test_suite.current_test_data_dir
+ def test_c(self):
+ """build and run C examples"""
+ cc = which(os.environ["CC"])
+ expected = ["Hello world", "YES!"]
+ test_source = self.test_suite.current_test_data_dir
for test in os.listdir(test_source):
- filepath = test_source.join(test)
- exe_name = "%s.exe" % test
-
- cc_exe = os.environ["CC"]
- cc_opts = ["-o", exe_name, filepath]
- compiled = self.run_test(cc_exe, options=cc_opts, installed=True)
-
- if compiled:
- expected = ["Hello world", "YES!"]
- self.run_test(exe_name, expected=expected)
+ exe_name = f"{test}.exe"
+ with test_part(self, f"test_c_{test}", f"build and run {exe_name}"):
+ filepath = join_path(test_source, test)
+ cc("-o", exe_name, filepath)
+ exe = which(exe_name)
+ out = exe(output=str.split, error=str.split)
+ check_outputs(expected, out)
diff --git a/var/spack/repos/builtin/packages/gcc/package.py b/var/spack/repos/builtin/packages/gcc/package.py
index d57c57526d..d28209f04f 100644
--- a/var/spack/repos/builtin/packages/gcc/package.py
+++ b/var/spack/repos/builtin/packages/gcc/package.py
@@ -34,6 +34,7 @@ class Gcc(AutotoolsPackage, GNUMirrorPackage, CompilerPackage):
license("GPL-2.0-or-later AND LGPL-2.1-or-later")
+ provides("c")
provides("cxx")
provides("fortran")