On 1/18/17 1:10 PM, Matthew Knepley wrote:
On Wed, Jan 18, 2017 at 2:05 PM, Scott Kruger <[email protected]
<mailto:[email protected]>> wrote:



        This does not work

        knepley/fix-configure-pragmatic *+$:/PETSc3/petsc/petsc-dev$ make -f
        gmakefile test search=plex%ex1_2
        make -f gmakefile test search=plex%ex1_2
        # No tests run



    If you replace test with "echo_test" as a target it will echo all of
    the targets.  This is useful for debugging.

    make -f gmakefile echo_test search=plex%

    and then make sure you see it.

    Then do an echo_test to see the match.

    Here is an example with the current version:
    --------------------------------------------------
    > make -f gmakefile echo_test search=sys%
    sys_tests-runex19 sys_tests-runex10 sys_tests-runex11
    sys_tests-runex12 sys_tests-runex14 sys_tests-runex31
    sys_tests-runex31_2 sys_tests-runex20_2 sys_tests-runex20_3
    sys_tutorials-runex9_2 ...

    > make -f gmakefile echo_test search=sys%ex9_2
    sys_tutorials-runex9_2


Okay, the problem seems to be that you can only use one % in the pattern


Yes, it's a limit of gmake syntax.  We also have the searchin argument.
In gmakefile itself:
# Tests can be generated by searching
# Percent is a wildcard (only one allowed):
#    make -f gmakefile test search=sys%ex2
# To match internal substrings (matches *ex2*):
#    make -f gmakefile test searchin=ex2
# For args:
#    make -f gmakefile test argsearch=cuda


However, the searchin does not take wildcard.

For what you want: dm%plex%
perhaps this could work:
--------------------------------------------------
--- a/gmakefile
+++ b/gmakefile
@@ -323,6 +323,10 @@ $(alltest.d) : ;
 #    make -f gmakefile test argsearch=cuda
 ifdef search
   TESTTARGETS := $(filter $(search),$(alltesttargets))
+  ifdef searchin
+ TESTTARGETS2 := $(foreach v,$(TESTTARGETS),$(if $(findstring $(searchin),$(v)),$(v)))
+    TESTTARGETS := $(TESTTARGETS2)
+  endif
 else ifdef searchin
--------------------------------------------------

Such that:

--------------------------------------------------
> make -f gmakefile echo_test search=sys% searchin=ex2
sys_tests-runex20_2 sys_tests-runex20_3 sys_tests-runex24 sys_tests-runex28 sys_tests-runex25 sys_tests-runex21 sys_tests-runex20 sys_tests-runex23 sys_tests-runex22 sys_tutorials-runex2 sys_tests-runex2
--------------------------------------------------


This still isn't as nice as true regex searching, but it probably gets one a lot of they way there.

It may also be possible to use shell for true regex.
Looking at that now.

Scott





knepley/fix-configure-pragmatic *+$:/PETSc3/petsc/petsc-dev$ make -f
gmakefile echo_test search=dm%
make -f gmakefile echo_test search=dm%
dm_impls_plex_tests-runex1_2 dm_impls_plex_tests-runex1_3
dm_impls_plex_tests-runex1_0 dm_impls_plex_tests-runex1_1
dm_impls_plex_tests-runex1_6 dm_impls_plex_tests-runex1_7
dm_impls_plex_tests-runex1_4 dm_impls_plex_tests-runex1_5
dm_impls_plex_tests-runex1_8 dm_impls_plex_tests-runex1_9
dm_impls_plex_tests-runex1_cgns_1 dm_impls_plex_tests-runex1_cgns_0
dm_impls_plex_tests-runex1_refine_overlap_1
dm_impls_plex_tests-runex1_refine_overlap_0
dm_impls_plex_tests-runex1_med_1 dm_impls_plex_tests-runex1_med_0
dm_impls_plex_tests-runex1_med_3 dm_impls_plex_tests-runex1_med_2
dm_impls_plex_tests-runex1_gmsh_3 dm_impls_plex_tests-runex1_gmsh_2
dm_impls_plex_tests-runex1_gmsh_1 dm_impls_plex_tests-runex1_gmsh_0
dm_impls_plex_tests-runex1_gmsh_6 dm_impls_plex_tests-runex1_gmsh_5
dm_impls_plex_tests-runex1_gmsh_4 dm_impls_plex_tests-runex1_fluent_2
dm_impls_plex_tests-runex1_fluent_3 dm_impls_plex_tests-runex1_fluent_0
dm_impls_plex_tests-runex1_fluent_1
dm_impls_plex_tests-runex1_part_simple_1
dm_impls_plex_tests-runex1_part_simple_0

knepley/fix-configure-pragmatic *+$:/PETSc3/petsc/petsc-dev$ make -f
gmakefile echo_test search=dm%plex%
make -f gmakefile echo_test search=dm%plex%

I do not think this is going to be flexible enough.

   Matt


    --------------------------------------------------



            >   3) How do I give extra arguments with the make
        interface, rather than
            > test_harness?

            That is, run some modification of the test and still do the
        diff, but
            don't change the reference output?  I have used
        PETSC_OPTIONS for that.

              make .... PETSC_OPTIONS=-more_magic


    I'm not sure I 100% understand what is being asked (perhaps it's my
    cold medicine), but I think TESTFLAGS does what you want; e.g.,

    --------------------------------------------------
    > make -f gmakefile test search=sys%ex9_2 TESTFLAGS="-h"
            TEST sys_tutorials-runex9_2
    Usage:
    arch-osx-xsdk-opt/tests/src/sys/examples/tutorials/runex9_2.sh [options]

    OPTIONS
      -a <args> ......... Override default arguments
      -c <cleanup> ...... Cleanup (remove generated files)
      -e <args> ......... Add extra arguments to default
      -h ................ help: print this message
      -n <integer> ...... Override the number of processors to use
      -o <output file> .. Override default output file to diff with
      -t <testname> ..... Override test name
      -v ................ Verbose: Print commands
    # No tests run
    --------------------------------------------------


            > Once I have all the functionality of my Python stuff,  I will
            throw it away.




        --
        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]
    <mailto:[email protected]>
    5621 Arapahoe Ave, Suite A       Phone: (720) 974-1841
    <tel:%28720%29%20974-1841>
    Boulder, CO 80303                Fax:   (303) 448-7756
    <tel:%28303%29%20448-7756>




--
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