gnu: dune-istl: Update to 2.7.1.
* gnu/packages/maths.scm (dune-istl): Update to 2.7.1. [arguments]: Parallelize build-tests phase. [source](patches) Remove patch that is no longer needed. * gnu/packages/patches/dune-istl-2.7-fix-non-mpi-tests.patch: Remove file. * gnu/local.mk (dist_patch_DATA): Remove above patch. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
67e6b69916
commit
8159cd08d2
3 changed files with 8 additions and 88 deletions
gnu
|
@ -1002,7 +1002,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
|
%D%/packages/patches/dovecot-trees-support-dovecot-2.3.patch \
|
||||||
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
|
%D%/packages/patches/dstat-fix-crash-when-specifying-delay.patch \
|
||||||
%D%/packages/patches/dstat-skip-devices-without-io.patch \
|
%D%/packages/patches/dstat-skip-devices-without-io.patch \
|
||||||
%D%/packages/patches/dune-istl-2.7-fix-non-mpi-tests.patch \
|
|
||||||
%D%/packages/patches/dvd+rw-tools-add-include.patch \
|
%D%/packages/patches/dvd+rw-tools-add-include.patch \
|
||||||
%D%/packages/patches/dynaconf-unvendor-deps.patch \
|
%D%/packages/patches/dynaconf-unvendor-deps.patch \
|
||||||
%D%/packages/patches/ecl-16-format-directive-limit.patch \
|
%D%/packages/patches/ecl-16-format-directive-limit.patch \
|
||||||
|
|
|
@ -6526,7 +6526,7 @@ This package contains the basic DUNE grid classes.")
|
||||||
(define-public dune-istl
|
(define-public dune-istl
|
||||||
(package
|
(package
|
||||||
(name "dune-istl")
|
(name "dune-istl")
|
||||||
(version "2.7.0")
|
(version "2.7.1")
|
||||||
(source
|
(source
|
||||||
(origin
|
(origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
|
@ -6534,8 +6534,7 @@ This package contains the basic DUNE grid classes.")
|
||||||
version "/dune-istl-" version ".tar.gz"))
|
version "/dune-istl-" version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"0gl3wgz5rs6sb4m83440ny45sbx7z7lnbi3gx6r9nm3rvy5j33f9"))
|
"1cy69s1266hvnh8blznlvvkrf8i2g640rc3mf7kp872wgvdz4nb9"))))
|
||||||
(patches (search-patches "dune-istl-2.7-fix-non-mpi-tests.patch"))))
|
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(arguments
|
(arguments
|
||||||
`(#:phases
|
`(#:phases
|
||||||
|
@ -6553,8 +6552,12 @@ This package contains the basic DUNE grid classes.")
|
||||||
":"))
|
":"))
|
||||||
#t)))
|
#t)))
|
||||||
(add-after 'build 'build-tests
|
(add-after 'build 'build-tests
|
||||||
(lambda* (#:key make-flags #:allow-other-keys)
|
(lambda* (#:key make-flags parallel-build? #:allow-other-keys)
|
||||||
(apply invoke "make" "build_tests" make-flags))))))
|
(apply invoke "make" "build_tests"
|
||||||
|
`(,@(if parallel-build?
|
||||||
|
`("-j" ,(number->string (parallel-job-count)))
|
||||||
|
'())
|
||||||
|
,@make-flags)))))))
|
||||||
(inputs
|
(inputs
|
||||||
(list dune-common
|
(list dune-common
|
||||||
;; Optional
|
;; Optional
|
||||||
|
|
|
@ -1,82 +0,0 @@
|
||||||
Fix build of dune-istl's tests
|
|
||||||
|
|
||||||
Patch copied from upstream source repository:
|
|
||||||
|
|
||||||
https://gitlab.dune-project.org/core/dune-istl/-/commit/9eee3462df5a64881c08574f9291e76db398de0a
|
|
||||||
|
|
||||||
From 9eee3462df5a64881c08574f9291e76db398de0a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Felix Gruber <felgru@posteo.net>
|
|
||||||
Date: Sat, 4 Apr 2020 15:27:09 +0200
|
|
||||||
Subject: [PATCH] make tests succeed when MPI is disabled
|
|
||||||
|
|
||||||
When MPI is not available or explicitly disabled with the CMake build
|
|
||||||
option -DCMAKE_IDSABLE_FIND_PACKAGE_MPI=TRUE, some tests were unable to
|
|
||||||
build.
|
|
||||||
|
|
||||||
The tests created from solverfactorytest.cc.in and part of
|
|
||||||
scalarproductstest.cc use Dune::OwnerOverlapCopyCommunication which is
|
|
||||||
defined behind `#if HAVE_MPI` and is thus not available in a non-MPI
|
|
||||||
build. I've thus disabled those tests when MPI is unavailable.
|
|
||||||
|
|
||||||
The matrixmarkettest did not work without MPI, as it contained some code
|
|
||||||
using the wrong template parameters when HAVE_MPI was not set. Those
|
|
||||||
template paramters have been fixed now.
|
|
||||||
|
|
||||||
I've confirmed, that after my changes `make build_tests` succeeds to
|
|
||||||
build all tests and that those tests run without failure.
|
|
||||||
---
|
|
||||||
dune/istl/test/CMakeLists.txt | 3 ++-
|
|
||||||
dune/istl/test/matrixmarkettest.cc | 2 +-
|
|
||||||
dune/istl/test/scalarproductstest.cc | 2 ++
|
|
||||||
3 files changed, 5 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dune/istl/test/CMakeLists.txt b/dune/istl/test/CMakeLists.txt
|
|
||||||
index ffd87969..2c7b2387 100644
|
|
||||||
--- a/dune/istl/test/CMakeLists.txt
|
|
||||||
+++ b/dune/istl/test/CMakeLists.txt
|
|
||||||
@@ -77,7 +77,8 @@ set(DUNE_TEST_FACTORY_BLOCK_SIZES
|
|
||||||
function(add_factory_test BLOCK)
|
|
||||||
STRING(REGEX REPLACE "[^a-zA-Z0-9]" "" BLOCK_CLEAN ${BLOCK})
|
|
||||||
configure_file(solverfactorytest.cc.in solverfactorytest_${BLOCK_CLEAN}.cc)
|
|
||||||
- dune_add_test(SOURCES ${CMAKE_CURRENT_BINARY_DIR}/solverfactorytest_${BLOCK_CLEAN}.cc)
|
|
||||||
+ dune_add_test(SOURCES ${CMAKE_CURRENT_BINARY_DIR}/solverfactorytest_${BLOCK_CLEAN}.cc
|
|
||||||
+ CMAKE_GUARD HAVE_MPI)
|
|
||||||
endfunction(add_factory_test)
|
|
||||||
|
|
||||||
foreach(FIELD_TYPE ${DUNE_TEST_FACTORY_FIELD_TYPES})
|
|
||||||
diff --git a/dune/istl/test/matrixmarkettest.cc b/dune/istl/test/matrixmarkettest.cc
|
|
||||||
index b335afe6..ce30e8ae 100644
|
|
||||||
--- a/dune/istl/test/matrixmarkettest.cc
|
|
||||||
+++ b/dune/istl/test/matrixmarkettest.cc
|
|
||||||
@@ -52,7 +52,7 @@ int testMatrixMarket(int N)
|
|
||||||
storeMatrixMarket(mat, std::string("testmat"), comm);
|
|
||||||
storeMatrixMarket(bv, std::string("testvec"), comm, false);
|
|
||||||
#else
|
|
||||||
- typedef Dune::MatrixAdapter<BCRSMat,BVector,BVector> Operator;
|
|
||||||
+ typedef Dune::MatrixAdapter<Matrix,Vector,Vector> Operator;
|
|
||||||
Operator op(mat);
|
|
||||||
op.apply(bv, cv);
|
|
||||||
|
|
||||||
diff --git a/dune/istl/test/scalarproductstest.cc b/dune/istl/test/scalarproductstest.cc
|
|
||||||
index 452b1d89..f46ce2a9 100644
|
|
||||||
--- a/dune/istl/test/scalarproductstest.cc
|
|
||||||
+++ b/dune/istl/test/scalarproductstest.cc
|
|
||||||
@@ -115,6 +115,7 @@ int main(int argc, char** argv)
|
|
||||||
scalarProductTest<ScalarProduct, Vector>(scalarProduct,numBlocks);
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if HAVE_MPI
|
|
||||||
// Test the ParallelScalarProduct class
|
|
||||||
{
|
|
||||||
using Vector = BlockVector<FieldVector<double,BlockSize> >;
|
|
||||||
@@ -139,6 +140,7 @@ int main(int argc, char** argv)
|
|
||||||
ScalarProduct scalarProduct(communicator,SolverCategory::nonoverlapping);
|
|
||||||
scalarProductTest<ScalarProduct, Vector>(scalarProduct,numBlocks);
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
return t.exit();
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.25.1
|
|
||||||
|
|
Reference in a new issue