summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicente Bolea <vicente.bolea@kitware.com>2024-08-20 11:46:45 -0400
committerGitHub <noreply@github.com>2024-08-20 10:46:45 -0500
commit6c268234ba2dea75bb4551199fc6663c7f972a2b (patch)
tree7d8b4502e946bc12598259fd54e36cfc61ed8997
parentc1736077bb9e32a99b116f471d12a4941771d9ab (diff)
downloadspack-6c268234ba2dea75bb4551199fc6663c7f972a2b.tar.gz
spack-6c268234ba2dea75bb4551199fc6663c7f972a2b.tar.bz2
spack-6c268234ba2dea75bb4551199fc6663c7f972a2b.tar.xz
spack-6c268234ba2dea75bb4551199fc6663c7f972a2b.zip
paraview: add smoke tests (#45759)
-rw-r--r--var/spack/repos/builtin/packages/paraview/package.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/paraview/package.py b/var/spack/repos/builtin/packages/paraview/package.py
index 8edec4e3f3..e185592972 100644
--- a/var/spack/repos/builtin/packages/paraview/package.py
+++ b/var/spack/repos/builtin/packages/paraview/package.py
@@ -6,6 +6,7 @@
import itertools
import os
import sys
+from subprocess import Popen
from spack.package import *
@@ -706,3 +707,54 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage):
cmake_args.append(self.define_from_variant("VTKOSPRAY_ENABLE_DENOISER", "raytracing"))
return cmake_args
+
+ def test_smoke_test(self):
+ """Simple smoke test for ParaView"""
+ spec = self.spec
+
+ pvserver = Executable(spec["paraview"].prefix.bin.pvserver)
+ pvserver("--help")
+
+ def test_pvpython(self):
+ """Test pvpython"""
+ spec = self.spec
+
+ if "~python" in spec:
+ raise SkipTest("Package must be installed with +python")
+
+ pvpython = Executable(spec["paraview"].prefix.bin.pvpython)
+ pvpython("-c", "import paraview")
+
+ def test_mpi_ensemble(self):
+ """Test MPI ParaView Client/Server ensemble"""
+ spec = self.spec
+
+ if "~mpi" in spec or "~python" in spec:
+ raise SkipTest("Package must be installed with +mpi and +python")
+
+ mpirun = spec["mpi"].prefix.bin.mpirun
+ pvserver = spec["paraview"].prefix.bin.pvserver
+ pvpython = Executable(spec["paraview"].prefix.bin.pvpython)
+
+ with working_dir("smoke_test_build", create=True):
+ with Popen(
+ [mpirun, "-np", "3", pvserver, "--mpi", "--force-offscreen-rendering"]
+ ) as servers:
+ pvpython(
+ "--force-offscreen-rendering",
+ "-c",
+ "from paraview.simple import *;"
+ "Connect('127.0.0.1');"
+ "sphere = Sphere(ThetaResolution=16, PhiResolution=32);"
+ "sphere_remote = servermanager.Fetch(sphere);"
+ "Show(sphere);"
+ "Render()",
+ )
+ servers.terminate()
+
+ @run_after("install")
+ @on_package_attributes(run_tests=True)
+ def build_test(self):
+ self.test_smoke_test()
+ self.test_pvpython()
+ self.test_mpi_ensemble()