[petsc-dev] PETSCTEST_VALGRIND

Scott Kruger kruger at txcorp.com
Mon Oct 25 14:18:48 CDT 2021


Adding this as a feature would add some ugly code logic for something
that only affects 2 tests out of the thousands that we have.  

Instead, MR !4500 enables one to filter out that test.  

So:

make -f gmakefile test s='snes_tutorials-ex19_' i='\!*logviewmemory' VALGRIND=1

does every ex19 test *except* for the problematic test.


I might be able to figure out a better way of hard-coding runtime
behavior per test, but I think for now this offers a general-purpose
workaround.



If you still don't like that, you could just create a local modification
to `config/gmakegentest.py`:
    if self.petsc_arch.find('valgrind') >= 0:
      self.conf['PETSCTEST_VALGRIND']=1

to 
    self.conf['PETSCTEST_VALGRIND']=1


This means that the `logviewmemory` test would never be run, but that
might be OK for your needs.

Scott

On 2021-10-25 09:22, Pierre Jolivet did write:
> Hello,
> I think I’m asking too much of test harness, but is there a way to automatically deactivate a test when running with VALGRIND=1 without having to play around with PETSC_RUNNING_ON_VALGRIND in the code?
> I see the variable PETSCTEST_VALGRIND, but it seems rather static and set depending on PETSC_ARCH.
> So even if there is src/snes/tutorials/ex19.c:     requires: defined(PETSC_USE_LOG) !defined(PETSCTEST_VALGRIND), 
> Running make -f gmakefile test s='snes*logviewmemory' VALGRIND=1 on my machine (without valgrind in the PETSC_ARCH) gets the test going.
> 
> Thanks,
> Pierre

-- 
Scott Kruger
Tech-X Corporation               kruger at txcorp.com
5621 Arapahoe Ave, Suite A       Phone: (720) 466-3196
Boulder, CO 80303                Fax:   (303) 448-7756


More information about the petsc-dev mailing list