With the new driver structure introduced in PR #86, it's likely that straightforward source analysis could be used to generate the drier program automatically in a manner similar to the Veggies companion Cart. Referring to Julienne's test suite as an example, write a program that does the following:
- Find all modules in the test suite that contain a non-abstract derived type that extends Julienne's
test_t type.
- Create a driver program containing one
use statement for each such module and one corresponding only clause for each test_t child type.
- Add a
use julienne_m, only : test_harness_t, test_fixture_t statement.
- Invoke the
test_harness_t user-defined structure constructor with an actual argument that is an array of elements defined by invoking the test_fixture_t user-defined structure constructor.
- Pass each
test_t child type's structure constructor as the lone argument to each invocation of the test_fixture_t user-defined structure constructor.
- Call the
report_results type-bound subroutine on the constructed test_harness_t object.
With the new driver structure introduced in PR #86, it's likely that straightforward source analysis could be used to generate the drier program automatically in a manner similar to the Veggies companion Cart. Referring to Julienne's test suite as an example, write a program that does the following:
test_ttype.usestatement for each such module and one correspondingonlyclause for eachtest_tchild type.use julienne_m, only : test_harness_t, test_fixture_tstatement.test_harness_tuser-defined structure constructor with an actual argument that is an array of elements defined by invoking thetest_fixture_tuser-defined structure constructor.test_tchild type's structure constructor as the lone argument to each invocation of thetest_fixture_tuser-defined structure constructor.report_resultstype-bound subroutine on the constructedtest_harness_tobject.