Great that you got it working. We would accept a merge request that made our infrastructure less PETSc-specific so long as it doesn't push more complexity on the end user. That would likely make it easier for you to pull updates in the future.
Daniele Prada <daniele.prad...@gmail.com> writes: > Dear Matthew, dear Jacob, > > Thank you very much for your useful remarks. I managed to use the PETSc > Testing System by doing as follows: > > 1. Redefined TESTDIR when running make > 2. Used a project tree similar to that of PETSc. For examples, tests for > 'package1' are in $MYLIB/src/package1/tests/ > 3. cp $PETSC_DIR/gmakefile.test $MYLIB/gmakefile.test > > Inside gmakefile.test: > > 4. Right AFTER "-include petscdir.mk" added "-include mylib.mk" to have > $MYLIB exported (note: this affects TESTSRCDIR) > 5. Redefined variable pkgs as "pkgs := package1" > 6. Introduced a few variables to make PETSC_COMPILE.c work: > > CFLAGS := -I$(MYLIB)/include > LDFLAGS = -L$(MYLIB)/lib > LDLIBS = -lmylib > > 7. Changed the call to gmakegentest.py as follows > > $(PYTHON) $(CONFIGDIR)/gmakegentest.py --petsc-dir=$(PETSC_DIR) > --petsc-arch=$(PETSC_ARCH) --testdir=$(TESTDIR) --srcdir=$(MYLIB)/src > --pkg-pkgs=$(pkgs) > > 8. Changed the rule $(testexe.c) as follows: > > $(call quiet,CLINKER) $(EXEFLAGS) $(LDFLAGS) -o $@ $^ $(PETSC_TEST_LIB) > $(LDLIBS) > > 9. Added the option --srcdir=$(TESTSRCDIR) and set --petsc-dir=$(MYLIB) > when calling query_tests.py, for example: > > TESTTARGETS := $(shell $(PYTHON) $(CONFIGDIR)/query_tests.py > --srcdir=$(TESTSRCDIR) --testdir=$(TESTDIR) --petsc-dir=$(MYLIB) > --petsc-arch=$(PETSC_ARCH) --searchin=$(searchin) 'name' '$(search)') > > > > What do you think? > > Best, > Daniele > > On Mon, Mar 27, 2023 at 4:38 PM Matthew Knepley <knep...@gmail.com> wrote: > >> On Mon, Mar 27, 2023 at 10:19 AM Jacob Faibussowitsch <jacob....@gmail.com> >> wrote: >> >>> 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... >>> >> >> 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 >> >> confg/gmakegentest.py >> >> and I think we can get away with just changing paths here and everything >> will work. >> >> Thanks! >> >> Matt >> >> >>> 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 >>> ``` >>> # TESTSRCDIR is always relative to gmakefile.test >>> # This must be before includes >>> mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) >>> TESTSRCDIR := $(dir $(mkfile_path))src >>> ``` >>> You should start by changing this to >>> ``` >>> # TESTSRCDIR is always relative to gmakefile.test >>> # This must be before includes >>> mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) >>> TESTSRCDIR ?= $(dir $(mkfile_path))src >>> ``` >>> That way you could run your tests via >>> ``` >>> $ make test TESTSRCDIR=/path/to/your/src/dir >>> ``` >>> I am sure there are many other modifications you will need to make. >>> >>> Best regards, >>> >>> Jacob Faibussowitsch >>> (Jacob Fai - booss - oh - vitch) >>> >>> > On Mar 27, 2023, at 06:14, Daniele Prada <daniele.prad...@gmail.com> >>> wrote: >>> > >>> > Hello everyone, >>> > >>> > I would like to use the PETSc Testing System for testing a package that >>> I am developing. >>> > >>> > 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. >>> > >>> > Any suggestions? >>> > >>> > Thanks in advance >>> > Daniele >>> >>> >> >> -- >> 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://www.cse.buffalo.edu/~knepley/ >> <http://www.cse.buffalo.edu/~knepley/> >>