Scott & Barry, I'd like to remove the 'env' variable change. We don't want this to be overwritten as it can be fragile [as users env can have incompatible stuff here]
And petscmpiexec relies on env variables - so I'm not using it in the test harness. So I have a branch scott/test-harness-valgrind-v2 (with commits collapsed/fixed) So the following would be the way to use it. make -f gmakefile test VALGRIND=1 Do you have any objections to this? If we want them to be overwritted - then I guess we'll have to namespace them properly. Satish On Wed, 8 Feb 2017, Scott Kruger wrote: > > > Actually Jed's discussion of using env for DIFF had me consider another > solution than the one I had originally came up with. I have both mpiexec and > diff using this new method to give what Barry > wants more directly: > https://bitbucket.org/petsc/petsc/pull-requests/631/ > > > Both of these now work at the makefile level: > > make -f gmakefile test VALGRIND=1 > > MPIEXEC="/sandbox/bsmith/petsc/bin/petscmpiexec -valgrind" make -e -f > gmakefile test > > Note that I am passing the -e flag to make which has > the environment variable override the value in > ${PETSC_ARCH}/lib/conf/petscvariables > This can be dangerous depending on how clean your environment is > because it'll override ALL variables. > > > And from the shell script level: > > runex1.sh -V > > MPIEXEC="/sandbox/bsmith/petsc/bin/petscmpiexec -valgrind" runex1.sh > > > > On 2/7/17 4:42 PM, Barry Smith wrote: > > > > > On Feb 7, 2017, at 5:34 PM, Satish Balay <[email protected]> wrote: > > > > > > We cannot override stuff via env variables in the new test harness. For > > > nightlybuilds > > > I added support to check if PETSC_ARCH has 'valgrind' string in it - and > > > if so - use > > > valgrind. > > > > > > 26646c0bcc29652ef239540b066d00d1c8fc99c7 > > > > > > Perhaps we can force this to use valgrind with: > > > > > > ./config/gmakegentest.py --valgrind=1 > > > > I can't decide at the time I run the tests, but need to decide when I do > > the gmakegentest.py > > > > > > Ok - perhaps the attached patch. > > > > That is one heck of a patch, talk about code duplication resulting in > > endless bugs. > > > > > But then - sometimes gmakefile runs ./config/gmakegentest.py directly > > > [without valgrind] > > > > Fix it properly somehow; currently it is impossible and that is insanely > > horrible. > > > > > > > > Satish > > > > > > ------- > > > > > > > > > On Tue, 7 Feb 2017, Barry Smith wrote: > > > > > > > > > > > Both > > > > > > > > make -f gmakefile test MPIEXEC="/sandbox/bsmith/petsc/bin/petscmpiexec > > > > -valgrind " > > > > > > > > and > > > > > > > > MPIEXEC="/sandbox/bsmith/petsc/bin/petscmpiexec -valgrind " make -f > > > > gmakefile test > > > > > > > > do not appear to use valgrind in the test harness (the old system did). > > > > > > > > How do I run all tests under valgrind automatically? > > > > > > > > > > > > > > > > > > > > not ok dm_impls_plex_tests-ex18_1 > > > > # [0]PETSC ERROR: PetscTrFreeDefault() called from > > > > VecDestroy_MPI() line 18 in /sandbox/bsmith/petsc/src/vec\ > > > > /vec/impls/mpi/pdvec.c > > > > # [0]PETSC ERROR: Block [id=0(32)] at address 0xb54240 is > > > > # corrupted (probably write past end of array) > > > > # [0]PETSC ERROR: Block allocated in VecCreate_MPI_Private() line > > > > # 497 in /sandbox/bsmith/petsc/src/vec/vec/i\ > > > > mpls/mpi/pbvec.c > > > > # [0]PETSC ERROR: --------------------- Error Message > > > > ------------------------------------------------------\ > > > > -------- > > > > # [0]PETSC ERROR: Memory corruption: > > > > # > > > > http://www.mcs.anl.gov/petsc/documentation/installation.html#valgrind > > > > # [0]PETSC ERROR: Corrupted memory > > > > # [0]PETSC ERROR: See > > > > # http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble > > > > # shooting. > > > > # [0]PETSC ERROR: Petsc Development GIT revision: > > > > # v3.7.5-3057-g2d11e0f GIT Date: 2017-02-07 15:39:04 -0600 > > > > # [0]PETSC ERROR: ../ex18 on a arch-single named es by bsmith Tue > > > > # Feb 7 15:46:25 2017 > > > > # [0]PETSC ERROR: Configure options --download-ctetgen > > > > # --download-exodusii --download-hdf5 --download-mpich \ > > > > --download-netcdf PETSC_ARCH=arch-single --with-precision=single > > > > # [0]PETSC ERROR: #1 PetscTrFreeDefault() line 287 in > > > > # /sandbox/bsmith/petsc/src/sys/memory/mtr.c > > > > # [0]PETSC ERROR: #2 VecDestroy_MPI() line 18 in > > > > # /sandbox/bsmith/petsc/src/vec/vec/impls/mpi/pdvec.c > > > > # [0]PETSC ERROR: #3 VecDestroy() line 406 in > > > > # /sandbox/bsmith/petsc/src/vec/vec/interface/vector.c > > > > # [0]PETSC ERROR: #4 DMDestroy() line 681 in > > > > # /sandbox/bsmith/petsc/src/dm/interface/dm.c > > > > # [0]PETSC ERROR: #5 main() line 473 in > > > > # /sandbox/bsmith/petsc/src/dm/impls/plex/examples/tests/ex18.c > > > > # [0]PETSC ERROR: PETSc Option Table entries: > > > > # [0]PETSC ERROR: -dm_view ascii::ascii_info_detail > > > > # [0]PETSC ERROR: -interpolate > > > > > > > > > > > > > > > <val.patch> > > > >
