On 2/6/17 8:42 AM, Satish Balay wrote:
I just tried it - and it doesn't appear to work..

I see. The problem is with the argument inheritance. I broke it when I enabled command-line argument override. The fix will be in the next pull request this week


Should the keyword for 'subtest' be different than 'test:'?

Jed's initial idea was to have it be truly
hierarchical although the parser currently only
supports one level.  Details of how to
do the inheritance gets confusing in practice.

Scott



Satish

-----------------------------------------------------
balay@asterix /home/balay/petsc (next *=)
$ git diff|cat
diff --git a/src/snes/examples/tutorials/ex12.c 
b/src/snes/examples/tutorials/ex12.c
index 71166bf..c097018 100644
--- a/src/snes/examples/tutorials/ex12.c
+++ b/src/snes/examples/tutorials/ex12.c
@@ -1168,10 +1168,8 @@ int main(int argc, char **argv)
     suffix: restart_0
     requires: hdf5
     args: -run_type test -refinement_limit 0.0    -bc_type dirichlet 
-interpolate 1 -petscspace_order 1 -dm_view hdf5:sol.h5 -vec_view 
hdf5:sol.h5::append
-  test:
-    suffix: restart_1
-    requires: hdf5
-    args: -run_type test -refinement_limit 0.0    -bc_type dirichlet 
-interpolate 1 -petscspace_order 1 -f sol.h5 -restart
+    test:
+      args: -run_type test -refinement_limit 0.0    -bc_type dirichlet 
-interpolate 1 -petscspace_order 1 -f sol.h5 -restart
   # Periodicity
   test:
     suffix: periodic_0
balay@asterix /home/balay/petsc (next *=)
$ ./config/gmakegentest.py
balay@asterix /home/balay/petsc (next *=)
$ cat arch-next/tests/src/snes/examples/tutorials/runex12_restart_0.sh
#!/usr/bin/env bash
# This script was created by gmakegentest.py

# PATH for DLLs on windows
PATH="$PATH":"/home/balay/petsc/arch-next/lib"

mpiexec='mpiexec'
exec='../ex12'
testname='runex12_restart_0'
label='snes_tutorials-ex12_restart_0'
runfiles=''
wPETSC_DIR='/home/balay/petsc'
petsc_dir='/home/balay/petsc'
args='-run_type test -refinement_limit 0.0    -bc_type dirichlet -interpolate 1 
-petscspace_order 1 -dm_view hdf5:sol.h5 -vec_view hdf5:sol.h5::append'

. "${petsc_dir}/config/petsc_harness.sh"

# The diff flags come from script arguments
diff_exe="${petsc_dir}/bin/petscdiff ${diff_flags}"


printf "ok ${label} # SKIP PETSC_HAVE_HDF5 requirement not met\n"
total=1; skip=1
petsc_testend "/home/balay/petsc/arch-next/tests"
exit


petsc_testrun "${mpiexec} -n 1 ${exec} ${args}" ex12_restart_0.tmp ${testname}.err 
"${label}" ''

petsc_testrun "${diff_exe} 
/home/balay/petsc/src/snes/examples/tutorials/output/ex12_restart_0.out ex12_restart_0.tmp" 
diff-${testname}.out diff-${testname}.out diff-${label} ""

petsc_testend "/home/balay/petsc/arch-next/tests"
balay@asterix /home/balay/petsc (next *=)
$


On Mon, 6 Feb 2017, Scott Kruger wrote:


The basic idea of running multiple commands within a single shell
script was what I called a subtest (for lack of a better word).
So:


 test:
    suffix: restart
    requires: hdf5
    args: -run_type test -refinement_limit 0.0    -bc_type dirichlet
-interpolate 1 -petscspace_order 1
    test:
        args: -dm_view hdf5:sol.h5 -vec_view hdf5:sol.h5::append
    test:
        args: -f sol.h5 -restart

The args in the subtest inherit from the parent test.  This seems
to be generally useful as a testing idiom in petsc tests as this
example nicely shows.

Each mpiexec would be tested separately and reported separately.
This would give you want you want, and should work as is.


Tobin pointed out that I broke the for loops and some of the subtest
functionality in some of the other feature implementations.  We
have come to consensus (right, Tobin?) on the
desired functionality and implementation.  A pull request
is planned this week.  It doesn't affect this directly, but
should have some minor improvements (like in the reporting).

Scott


On 2/6/17 7:10 AM, Matthew Knepley wrote:
On Mon, Feb 6, 2017 at 1:05 AM, Jed Brown <[email protected]
<mailto:[email protected]>> wrote:

    Barry Smith <[email protected] <mailto:[email protected]>> writes:

  test:
    suffix: restart_0
    requires: hdf5
    args: -run_type test -refinement_limit 0.0    -bc_type dirichlet
    -interpolate 1 -petscspace_order 1 -dm_view hdf5:sol.h5 -vec_view
    hdf5:sol.h5::append

  test:
    suffix: restart_1
    requires: hdf5
    args: -run_type test -refinement_limit 0.0    -bc_type dirichlet
    -interpolate 1 -petscspace_order 1 -f sol.h5 -restart

See a problem?

Should the same run of the example view the files and then load them back
in? versus trying to read in a data file from another run that may not
even have been created before and even if it was, the file was definitely
created  in a different directory?

    So if write only is broken, do you want both to fail?  I think it's
    better to read and write separately, with comparison using h5diff, since
    that independently tests read vs write and establishes backward
    compatibility, which you'd really like the test system to make you deal
    with explicitly.


I know the test is broken, but I did already mail the list about this
and was waiting for an answer
to be worked out.

I agree with Satish that running two commands would be great. I could
rewrite the example to
both write and load it, but it would complicate it. Also, I am trying to
get the pattern I expect the
user to follow for checkpointing.

   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



--
Tech-X Corporation               [email protected]
5621 Arapahoe Ave, Suite A       Phone: (720) 974-1841
Boulder, CO 80303                Fax:   (303) 448-7756

Reply via email to