# Contract tests with dependencies

**URL:** https://discourse.kitware.com/t/contract-tests-with-dependencies/419
**Category:** Software Process
**Created:** [March 12, 2020, 5:11pm UTC](https://discourse.kitware.com/t/contract-tests-with-dependencies/419 "2020-03-12T17:11:19Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![dcthomp](https://discourse.kitware.com/user_avatar/discourse.kitware.com/dcthomp/32/10_2.png) [@dcthomp](https://discourse.kitware.com/u/dcthomp)
#### Post date: [March 12, 2020, 5:11pm UTC](https://discourse.kitware.com/t/contract-tests-with-dependencies/419/1 "2020-03-12T17:11:19Z")

</div>

@ben.boeckel We have some external repositories ([aeva/session](https://gitlab.kitware.com/aeva/session)) that need third-party libraries (ITK, ITKVtkGlue) beyond what SMTK provides. The superbuild which SMTK uses may optionally provide the third-party libraries, but…

1. how do we get the contract test to find them reliably?
2. If a platform could install these as packages provided by the platform instead of relying on a superbuild, would that change the way the contract test should be configured?

---

<div class="post-metadata">

### Author: ![ben.boeckel](https://discourse.kitware.com/letter_avatar_proxy/v4/letter/b/ea5d25/32.png) [@ben.boeckel](https://discourse.kitware.com/u/ben.boeckel)
#### Post date: [March 13, 2020, 10:34pm UTC](https://discourse.kitware.com/t/contract-tests-with-dependencies/419/2 "2020-03-13T22:34:35Z")

</div>

> [@dcthomp](#):
>
> how do we get the contract test to find them reliably?

Contract tests are basically a set of `ExternalProject_add` calls. You can add more than one and have dependencies between them.

> [@dcthomp](#):
>
> If a platform could install these as packages provided by the platform instead of relying on a superbuild

“platform”?

> [@dcthomp](#):
>
> would that change the way the contract test should be configured?

If the aeva session ends up building ITK as part of its build, we’ll want to forward `sccache` to them (if set). We’ll also likely need to increase test timeout limits there.

Another alternative may be to trigger an aeva session pipeline with an SMTK hash to test. Utkarsh has done this between ParaView and its superbuild.
