[petsc-dev] How test system options are handled

Barry Smith bsmith at petsc.dev
Thu Aug 7 20:01:25 CDT 2025


 
  I suggest the PETSc options database check the environmental variable PETSC_OPTIONS_FINAL and have these values added to the options database last (though they shouldn't overwrite values set in the code.)

  I tried

$ make -f ./gmakefile test globsearch="snes_tutorials-ex69_p2p1" EXTRA_OPTIONS="-dm_refine 5 -dm_view hdf5:$PETSC_DIR/sol.h5 -snes_view_solution hdf5:$PETSC_DIR/sol.h5::append -exact_vec_view hdf5:$PETSC_DIR/sol.h5::append -m 2 -n 2 -B 1"

As suggested in guide_to_stokes.md and got back 

Using MAKEFLAGS: -- EXTRA_OPTIONS=-dm_refine 5 -dm_view hdf5:/Users/barrysmith/Src/petsc/sol.h5 -snes_view_solution hdf5:/Users/barrysmith/Src/petsc/sol.h5::append -exact_vec_view hdf5:/Users/barrysmith/Src/petsc/sol.h5::append -m 2 -n 2 -B 1 globsearch=snes_tutorials-ex69_p2p1
         CC arch-main/tests/sys/classes/draw/tests/ex1.o
    CLINKER arch-main/tests/sys/classes/draw/tests/ex1
       TEST arch-main/tests/counts/sys_classes_draw_tests-ex1_1.counts
 ok sys_classes_draw_tests-ex1_1
not ok diff-sys_classes_draw_tests-ex1_1 # Error code: 1
#	0a1,10
#	> WARNING! There are options you set that were not used!
#	> WARNING! could be spelling mistake, etc!
#	> There are 7 unused database options. They are:
#	> Option left: name:-B value: 1 source: command line
#	> Option left: name:-dm_refine value: 5 source: command line
#	> Option left: name:-dm_view value: hdf5:/Users/barrysmith/Src/petsc/sol.h5 source: command line
#	> Option left: name:-exact_vec_view value: hdf5:/Users/barrysmith/Src/petsc/sol.h5::append source: command line
#	> Option left: name:-m value: 2 source: command line
#	> Option left: name:-n value: 2 source: command line
#	> Option left: name:-snes_view_solution value: hdf5:/Users/barrysmith/Src/petsc/sol.h5::append source: command line
         CC arch-main/tests/sys/classes/draw/tests/ex10.o
    CLINKER arch-main/tests/sys/classes/draw/tests/ex10
       TEST arch-main/tests/counts/sys_classes_draw_tests-ex10_1.counts
^Cnot ok sys_classes_draw_tests-ex10_1 # Error code: 1
 ok sys_classes_draw_tests-ex10_1 # SKIP Command failed so no diff

So I expect there is something wrong with the tutorials on the website.

I am mystified how make test can be used to print nice output to the screen since the tests save the output to a file and do a diff. So I would like to know how Matt uses make test in his workflow.

  Barry






> On Aug 7, 2025, at 9:23 AM, Matthew Knepley <knepley at gmail.com> wrote:
> 
> We currently have two kinds of options in the test system. Options that come from the "args" line in the TEST section of the example source, which we will call $args, and options that come from the EXTRA_OPTIONS env var when the test is executed, which we will call $extra_args.
> 
> Right now, in petsc_harness.sh:109, we feed the example executable the arguments
> 
>   $extra_args $args
> 
> This allows us to do things like declare EXTRA_OPTIONS="-fp_trap" for linux-pkgs-dbg, and then allow it to be turned off for certain tests with -fp_trap 0 in the argos line.
> 
> This setup, however, does not allow us to override any options given in $args while running a test, which seems very restrictive. Should we create a third class of options?
> 
>   Thanks,
> 
>       Matt
> 
> --
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener
> 
> https://urldefense.us/v3/__https://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!driNqUZiYcSxMUfDvnEjzHziF9muKitIs39C71QLYYSRpkEy42vH7Klom5eBkF2h7L2kzmzcfr520Sv7hMJgDQ$  <https://urldefense.us/v3/__http://www.cse.buffalo.edu/*knepley/__;fg!!G_uCfscf7eWS!es96ebvWwNhZgW9QAbhKl87uWMsmggCaWnv60yjXuLOqvK4co4KiyvhNTffA2KhyR42saIqyrZ93SWsl1pKX$>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20250807/d3c209bf/attachment.html>


More information about the petsc-dev mailing list