<div dir="ltr">Dear Matthew, dear Jacob,<div><br></div><div>Thank you very much for your useful remarks. I managed to use the PETSc Testing System by doing as follows:</div><div><br></div><div>1. Redefined TESTDIR when running make</div><div>2. Used a project tree similar to that of PETSc. For examples, tests for 'package1' are in $MYLIB/src/package1/tests/</div><div>3. cp $PETSC_DIR/gmakefile.test $MYLIB/gmakefile.test</div><div><br></div><div>Inside gmakefile.test:</div><div><br></div><div>4. Right AFTER "-include <a href="http://petscdir.mk">petscdir.mk</a>" added "-include <a href="http://mylib.mk">mylib.mk</a>" to have $MYLIB exported (note: this affects TESTSRCDIR)</div><div>5. Redefined variable pkgs as "pkgs := package1"</div><div>6. Introduced a few variables to make PETSC_COMPILE.c work:</div><div><br></div><div>CFLAGS := -I$(MYLIB)/include<br>LDFLAGS = -L$(MYLIB)/lib<br>LDLIBS = -lmylib<br></div><div><br></div><div>7. Changed the call to gmakegentest.py as follows</div><div><br></div><div>$(PYTHON) $(CONFIGDIR)/gmakegentest.py --petsc-dir=$(PETSC_DIR) --petsc-arch=$(PETSC_ARCH) --testdir=$(TESTDIR) --srcdir=$(MYLIB)/src --pkg-pkgs=$(pkgs)<br></div><div><br></div><div>8. Changed the rule $(testexe.c) as follows:</div><div><br></div><div>$(call quiet,CLINKER) $(EXEFLAGS) $(LDFLAGS) -o $@ $^ $(PETSC_TEST_LIB) $(LDLIBS)</div><div><br></div><div>9. Added the option --srcdir=$(TESTSRCDIR) and set --petsc-dir=$(MYLIB) when calling query_tests.py, for example:</div><div><br></div><div>TESTTARGETS := $(shell $(PYTHON) $(CONFIGDIR)/query_tests.py --srcdir=$(TESTSRCDIR) --testdir=$(TESTDIR) --petsc-dir=$(MYLIB) --petsc-arch=$(PETSC_ARCH) --searchin=$(searchin) 'name' '$(search)')<br></div><div><br></div><div><br></div><div><br></div><div>What do you think?</div><div><br></div><div>Best,</div><div>Daniele</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Mar 27, 2023 at 4:38 PM Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">On Mon, Mar 27, 2023 at 10:19 AM Jacob Faibussowitsch <<a href="mailto:jacob.fai@gmail.com" target="_blank">jacob.fai@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Our testing framework was pretty much tailor-made for the PETSc src tree and as such has many hard-coded paths and decisions. I’m going to go out on a limb and say you probably won’t get this to work...<br></blockquote><div><br></div><div>I think we can help you get this to work. I have wanted to generalize the test framework for a long time. Everything is build by</div><div><br></div><div>  confg/gmakegentest.py</div><div><br></div><div>and I think we can get away with just changing paths here and everything will work.</div><div><br></div><div>  Thanks!</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
That being said, one of the “base” paths that the testing harness uses to initially find tests is the `TESTSRCDIR` variable in `${PETSC_DIR}/gmakefile.test`. It is currently defined as <br>
```<br>
# TESTSRCDIR is always relative to gmakefile.test<br>
#  This must be before includes<br>
mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))<br>
TESTSRCDIR := $(dir $(mkfile_path))src<br>
```<br>
You should start by changing this to<br>
```<br>
# TESTSRCDIR is always relative to gmakefile.test<br>
#  This must be before includes<br>
mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST)))<br>
TESTSRCDIR ?= $(dir $(mkfile_path))src<br>
```<br>
That way you could run your tests via<br>
```<br>
$ make test TESTSRCDIR=/path/to/your/src/dir<br>
```<br>
I am sure there are many other modifications you will need to make.<br>
<br>
Best regards,<br>
<br>
Jacob Faibussowitsch<br>
(Jacob Fai - booss - oh - vitch)<br>
<br>
> On Mar 27, 2023, at 06:14, Daniele Prada <<a href="mailto:daniele.prada85@gmail.com" target="_blank">daniele.prada85@gmail.com</a>> wrote:<br>
> <br>
> Hello everyone,<br>
> <br>
> I would like to use the PETSc Testing System for testing a package that I am developing.<br>
> <br>
> I have read the PETSc developer documentation and have written some tests using the PETSc Test Description Language. I am going through the files in ${PETSC_DIR}/config but I am not able to make the testing system look into the directory tree of my project.<br>
> <br>
> Any suggestions?<br>
> <br>
> Thanks in advance<br>
> Daniele<br>
<br>
</blockquote></div><br clear="all"><div><br></div><span>-- </span><br><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>
</blockquote></div>